Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial.h" 11 : #include "SinglePhaseFluidProperties.h" 12 : #include "FlowModelSinglePhase.h" 13 : #include "Numerics.h" 14 : 15 : registerMooseObject("ThermalHydraulicsApp", ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial); 16 : 17 : InputParameters 18 775 : ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial::validParams() 19 : { 20 775 : InputParameters params = Material::validParams(); 21 1550 : params.addParam<MaterialPropertyName>("Hw", 22 : FlowModelSinglePhase::HEAT_TRANSFER_COEFFICIENT_WALL, 23 : "Heat transfer coefficient material property"); 24 1550 : params.addRequiredParam<MaterialPropertyName>("rho", "Density of the liquid"); 25 1550 : params.addRequiredParam<MaterialPropertyName>("vel", "x-component of the liquid velocity"); 26 1550 : params.addRequiredParam<MaterialPropertyName>("D_h", "Hydraulic diameter"); 27 1550 : params.addRequiredParam<MaterialPropertyName>("cp", "Specific heat of the fluid"); 28 1550 : params.addRequiredParam<MaterialPropertyName>("mu", "Dynamic viscosity of the fluid"); 29 1550 : params.addRequiredParam<MaterialPropertyName>("k", "Heat conductivity of the fluid"); 30 1550 : params.addRequiredParam<MaterialPropertyName>("T", "Fluid temperature"); 31 1550 : params.addRequiredParam<MaterialPropertyName>("T_wall", "Wall temperature"); 32 775 : params.addClassDescription( 33 : "Computes wall heat transfer coefficient using Dittus-Boelter equation"); 34 775 : return params; 35 0 : } 36 : 37 606 : ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial:: 38 606 : ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial(const InputParameters & parameters) 39 : : Material(parameters), 40 606 : _Hw(declareADProperty<Real>("Hw")), 41 1212 : _rho(getADMaterialProperty<Real>("rho")), 42 1212 : _vel(getADMaterialProperty<Real>("vel")), 43 1212 : _D_h(getADMaterialProperty<Real>("D_h")), 44 1212 : _k(getADMaterialProperty<Real>("k")), 45 1212 : _mu(getADMaterialProperty<Real>("mu")), 46 1212 : _cp(getADMaterialProperty<Real>("cp")), 47 1212 : _T(getADMaterialProperty<Real>("T")), 48 1818 : _T_wall(getADMaterialProperty<Real>("T_wall")) 49 : { 50 606 : } 51 : 52 : void 53 914236 : ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial::computeQpProperties() 54 : { 55 914236 : ADReal Pr = THM::Prandtl(_cp[_qp], _mu[_qp], _k[_qp]); 56 914236 : ADReal Re = std::max(1.0, THM::Reynolds(1., _rho[_qp], _vel[_qp], _D_h[_qp], _mu[_qp])); 57 1222627 : ADReal n = (_T[_qp] < _T_wall[_qp]) ? 0.4 : 0.3; 58 914236 : ADReal Nu = 0.023 * std::pow(Re, 4. / 5.) * std::pow(Pr, n); 59 : 60 914236 : _Hw[_qp] = THM::wallHeatTransferCoefficient(Nu, _k[_qp], _D_h[_qp]); 61 914236 : }