40 const bool is_duct = (nusselt_args.
i_pin == std::numeric_limits<unsigned int>::max());
47 D = (*_Dpin_soln)(pin_node);
50 "The diameter of the pin is equal or smaller than zero, " 51 "please initialize the auxiliary variable Dpin.");
79 auto Dh_i = 4.0 * friction_args.
S / friction_args.
w_perim;
80 const auto htc = Nu *
k / Dh_i;
81 if (!std::isfinite(htc) || htc < 0.0)
82 mooseError(
name(),
": The heat transfer coefficient must be non-negative and finite.");
88 const Real turbulent_nusselt)
const 91 return info.laminar_Nu;
94 return turbulent_nusselt;
static InputParameters validParams()
virtual const Real & getPinDiameter() const
Return undeformed Pin diameter.
NusseltPreInfo computeNusseltNumberPreInfo(const NusseltStruct &nusselt_info) const
Computes all the data needed before computing the nusselt number. It's used by all closure models...
virtual const Real & getPitch() const
Return the undeformed pitch between 2 subchannels.
virtual EChannelType getSubchannelType(unsigned int index) const =0
Return the type of the subchannel for given subchannel index.
static const std::string PIN_DIAMETER
virtual Node * getPinNode(unsigned int i_pin, unsigned int iz) const =0
Get the pin mesh node for a given pin index and elevation index.
structure with the needed information to compute the friction factor at a specific subchannel cell ...
structure that holds the needed data to calculate intermediate data needed to calculate the Nusselt n...
const std::string & name() const
static InputParameters validParams()
static const std::string pitch
SCMHTCClosureBase(const InputParameters ¶meters)
virtual Real computeNusseltNumber(const FrictionStruct &friction_info, const NusseltStruct &nusselt_info) const =0
Computes the nusselt number for the local conditions.
std::unique_ptr< SolutionHandle > _Dpin_soln
virtual const MooseVariableFieldBase & getVariable(const THREAD_ID tid, const std::string &var_name, Moose::VarKindType expected_var_type=Moose::VarKindType::VAR_ANY, Moose::VarFieldType expected_var_field_type=Moose::VarFieldType::VAR_FIELD_ANY) const=0
virtual bool hasVariable(const std::string &var_name) const=0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const SubChannelMesh & _subchannel_mesh
Reference to the subchannel mesh.
Base class for SCM closures.
void mooseError(Args &&... args) const
Real computeHTC(const FrictionStruct &friction_info, const NusseltStruct &nusselt_info, const Real conduction_k) const
Computes the convective heat transfer coefficient for the local conditions.
MooseUnits pow(const MooseUnits &, int)
static const std::string k
Real blendTurbulentNusseltNumber(const NusseltPreInfo &nusselt_info, const Real turbulent_nusselt) const
Blends turbulent Nusselt number through the transition range using the base laminar value...
structure with the needed information to compute the Nusselt number at a specific subchannel cell and...