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";
91 params.
set<Real>(
"roughness") = flow_channel.
getParam<Real>(
"roughness");
92 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
99 const std::string class_name =
"ADWallFrictionChengMaterial";
103 params.
set<Real>(
"PoD") = flow_channel.
getParam<Real>(
"PoD");
104 if (flow_channel.
getParam<Real>(
"PoD") == 1.0)
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");
140 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
146 const std::string class_name =
"ADWallFrictionColebrookWhiteMaterial";
154 params.
set<Real>(
"roughness") = flow_channel.
getParam<Real>(
"roughness");
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";
209 params.
set<Real>(
"PoD") = flow_channel.
getParam<Real>(
"PoD");
210 if (flow_channel.
getParam<Real>(
"PoD") == 1.0)
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");
239 const std::string class_name =
"ADWallHeatTransferCoefficientLyonMaterial";
250 const std::string class_name =
"ADWallHeatTransferCoefficientKazimiMaterial";
255 params.
set<Real>(
"PoD") = flow_channel.
getParam<Real>(
"PoD");
256 if (flow_channel.
getParam<Real>(
"PoD") == 1.0)
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";
274 params.
set<Real>(
"PoD") = flow_channel.
getParam<Real>(
"PoD");
275 if (flow_channel.
getParam<Real>(
"PoD") == 1.0)
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";
293 params.
set<Real>(
"PoD") = flow_channel.
getParam<Real>(
"PoD");
294 if (flow_channel.
getParam<Real>(
"PoD") == 1.0)
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";
registerMooseObject("ThermalHydraulicsApp", Closures1PhaseTHM)
Base class for 1-phase closures.
static InputParameters validParams()
void addWallFrictionFunctionMaterial(const FlowChannel1Phase &flow_channel) const
Adds material that computes wall friction factor from a specified function.
const WallHTCClosureType _wall_htc_closure
Wall heat transfer coefficient closure.
virtual void checkHeatTransfer(const HeatTransferBase &heat_transfer, const FlowChannelBase &flow_channel) const override
Checks for errors associated with a heat transfer component.
void addWallFFMaterial(const FlowChannel1Phase &flow_channel) const
Adds material that computes wall friction factor.
Closures1PhaseTHM(const InputParameters ¶ms)
void addWallHTCMaterial(const FlowChannel1Phase &flow_channel, unsigned int i) const
Adds wall heat transfer coefficient material.
WallHTCClosureType
Fluid heat transfer coefficient closure type.
WallFFClosureType
Fluid friction factor closure type.
const WallFFClosureType _wall_ff_closure
Wall friction factor closure.
static InputParameters validParams()
virtual void addMooseObjectsFlowChannel(const FlowChannelBase &flow_channel) override
Adds MOOSE objects associated with a flow channel component.
virtual void checkFlowChannel(const FlowChannelBase &flow_channel) const override
Checks for errors associated with a flow channel component.
Factory & _factory
Factory associated with the MooseApp.
void addWallTemperatureFromAuxMaterial(const FlowChannelBase &flow_channel, unsigned int i=0) const
Adds a material for wall temperature from an aux variable.
THMProblem & _sim
Simulation.
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
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...
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters)
InputParameters getValidParams(const std::string &name) const
std::vector< MaterialPropertyName > getWallHTCNames1Phase() const
Gets 1-phase wall heat transfer coefficient names for connected heat transfers.
Single-component, single-phase flow channel.
A base class for flow channels.
static MooseEnum getPipeLocation(const std::string &name)
Gets a MooseEnum for pipe location.
@ ROD_BUNDLE
square array rod bundle geometry
@ HEX_ROD_BUNDLE
hexagonal array rod bundle geometry
unsigned int getNumberOfHeatTransferConnections() const
Gets the number of heat transfer connections.
std::vector< VariableName > getWallTemperatureNames() const
Gets wall temperature names for connected heat transfers.
EConvHeatTransGeom getHeatTransferGeometry() const
Gets heat transfer geometry.
bool getTemperatureMode() const
Gets temperature mode flag.
static const std::string DENSITY
static const std::string HYDRAULIC_DIAMETER
static const std::string VELOCITY
static const std::string DYNAMIC_VISCOSITY
static const std::string FRICTION_FACTOR_DARCY
static const std::string SPECIFIC_HEAT_CONSTANT_PRESSURE
static const std::string THERMAL_CONDUCTIVITY
static const std::string TEMPERATURE
Base class for heat transfer connections.
const std::string & name() const
void mooseError(Args &&... args) const
void mooseWarning(Args &&... args) const
const T & getParam(const std::string &name) const
bool isParamValid(const std::string &name) const
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.