22 MooseEnum wall_htc_closure(
"dittus_boelter=0 kazimi_carelli=1 lyon=2 mikityuk=3 schad=4 " 23 "weisman=5 wolf_mccarthy=6 gnielinski=7",
26 "wall_htc_closure", wall_htc_closure,
"Heat transfer coefficient closure");
27 MooseEnum wall_ff_closure(
"cheng_todreas=0 churchill=1 colebrook_white=2",
"churchill");
28 params.
addParam<
MooseEnum>(
"wall_ff_closure", wall_ff_closure,
"Friction factor closure");
66 for (
unsigned int i = 0; i < n_ht_connections; i++)
83 const std::string class_name =
"ADWallFrictionChurchillMaterial";
92 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
99 const std::string class_name =
"ADWallFrictionChengMaterial";
107 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 108 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 109 "FlowChannel1Phase component"));
113 mooseError(
"The Cheng-Todreas correlation was made to be used in rod bundles, your " 115 "PIPE, please change heat_transfer_geom to ROD_BUNDLE or HEX_ROD_BUNDLE, or " 116 "choose a correlation valid for PIPES");
119 FlowChannelBase::EConvHeatTransGeom::ROD_BUNDLE)
124 FlowChannelBase::EConvHeatTransGeom::HEX_ROD_BUNDLE)
128 if (flow_channel.
getPipeLocation() == FlowChannelBase::EPipeLocation::INTERIOR)
132 else if (flow_channel.
getPipeLocation() == FlowChannelBase::EPipeLocation::EDGE)
136 else if (flow_channel.
getPipeLocation() == FlowChannelBase::EPipeLocation::CORNER)
140 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
146 const std::string class_name =
"ADWallFrictionColebrookWhiteMaterial";
155 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
173 const std::string class_name =
"ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial";
182 params.
set<MaterialPropertyName>(
"cp") =
192 const std::string class_name =
"ADWallHeatTransferCoefficientWolfMcCarthyMaterial";
204 const std::string class_name =
"ADWallHeatTransferCoefficientWeismanMaterial";
213 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 214 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 215 "FlowChannel1Phase component"));
220 mooseError(
"Weiman's correlation was made to be used in rod bundles, your geometry type is " 221 "PIPE, please change heat_transfer_geom to ROD_BUNDLE or HEX_ROD_BUNDLE, or " 222 "choose a correlation valid for PIPES");
225 FlowChannelBase::EConvHeatTransGeom::ROD_BUNDLE)
230 FlowChannelBase::EConvHeatTransGeom::HEX_ROD_BUNDLE)
239 const std::string class_name =
"ADWallHeatTransferCoefficientLyonMaterial";
250 const std::string class_name =
"ADWallHeatTransferCoefficientKazimiMaterial";
259 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 260 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 261 "FlowChannel1Phase component"));
269 const std::string class_name =
"ADWallHeatTransferCoefficientMikityukMaterial";
278 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 279 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 280 "FlowChannel1Phase component"));
288 const std::string class_name =
"ADWallHeatTransferCoefficientSchadMaterial";
297 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 298 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 299 "FlowChannel1Phase component"));
307 const std::string class_name =
"ADWallHeatTransferCoefficientGnielinskiMaterial";
virtual void addMooseObjectsFlowChannel(const FlowChannelBase &flow_channel) override
Adds MOOSE objects associated with a flow channel component.
void addWallHTCMaterial(const FlowChannel1Phase &flow_channel, unsigned int i) const
Adds wall heat transfer coefficient material.
void connectObject(const InputParameters &obj_params, const std::string &obj_name, const std::string ¶m) const
Connects a controllable parameter of the component to a controllable parameter of a constituent objec...
THMProblem & _sim
Simulation.
static const std::string SPECIFIC_HEAT_CONSTANT_PRESSURE
virtual void checkFlowChannel(const FlowChannelBase &flow_channel) const override
Checks for errors associated with a flow channel component.
const WallFFClosureType _wall_ff_closure
Wall friction factor closure.
virtual void checkHeatTransfer(const HeatTransferBase &heat_transfer, const FlowChannelBase &flow_channel) const override
Checks for errors associated with a heat transfer component.
std::string genName(const std::string &prefix, unsigned int id, const std::string &suffix="") const
Build a name from a prefix, number and possible suffix.
static const std::string DYNAMIC_VISCOSITY
const T & getParam(const std::string &name) const
void addWallFFMaterial(const FlowChannel1Phase &flow_channel) const
Adds material that computes wall friction factor.
static const std::string TEMPERATURE
EConvHeatTransGeom getHeatTransferGeometry() const
Gets heat transfer geometry.
static const std::string VELOCITY
unsigned int getNumberOfHeatTransferConnections() const
Gets the number of heat transfer connections.
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters)
static InputParameters validParams()
InputParameters getValidParams(const std::string &name) const
static const std::string THERMAL_CONDUCTIVITY
static MooseEnum getPipeLocation(const std::string &name)
Gets a MooseEnum for pipe location.
static const std::string DENSITY
A base class for flow channels.
std::vector< VariableName > getWallTemperatureNames() const
Gets wall temperature names for connected heat transfers.
void addWallTemperatureFromAuxMaterial(const FlowChannelBase &flow_channel, unsigned int i=0) const
Adds a material for wall temperature from an aux variable.
const std::string & name() const
Single-component, single-phase flow channel.
WallFFClosureType
Fluid friction factor closure type.
Closures1PhaseTHM(const InputParameters ¶ms)
Base class for heat transfer connections.
static const std::string FRICTION_FACTOR_DARCY
Base class for 1-phase closures.
std::vector< MaterialPropertyName > getWallHTCNames1Phase() const
Gets 1-phase wall heat transfer coefficient names for connected heat transfers.
Factory & _factory
Factory associated with the MooseApp.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
WallHTCClosureType
Fluid heat transfer coefficient closure type.
void mooseWarning(Args &&... args) const
void mooseError(Args &&... args) const
static const std::string HYDRAULIC_DIAMETER
registerMooseObject("ThermalHydraulicsApp", Closures1PhaseTHM)
const WallHTCClosureType _wall_htc_closure
Wall heat transfer coefficient closure.
bool isParamValid(const std::string &name) const
void addWallFrictionFunctionMaterial(const FlowChannel1Phase &flow_channel) const
Adds material that computes wall friction factor from a specified function.
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
bool getTemperatureMode() const
Gets temperature mode flag.
static InputParameters validParams()