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",
"churchill");
28 params.
addParam<
MooseEnum>(
"wall_ff_closure", wall_ff_closure,
"Friction factor closure");
64 if (n_ht_connections > 0)
67 for (
unsigned int i = 0; i < n_ht_connections; i++)
87 const std::string class_name =
"ADWallFrictionChurchillMaterial";
96 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
103 const std::string class_name =
"ADWallFrictionChengMaterial";
111 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 112 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 113 "FlowChannel1Phase component"));
117 mooseError(
"The Cheng-Todreas correlation was made to be used in rod bundles, your " 119 "PIPE, please change heat_transfer_geom to ROD_BUNDLE or HEX_ROD_BUNDLE, or " 120 "choose a correlation valid for PIPES");
123 FlowChannelBase::EConvHeatTransGeom::ROD_BUNDLE)
128 FlowChannelBase::EConvHeatTransGeom::HEX_ROD_BUNDLE)
132 if (flow_channel.
getPipeLocation() == FlowChannelBase::EPipeLocation::INTERIOR)
136 else if (flow_channel.
getPipeLocation() == FlowChannelBase::EPipeLocation::EDGE)
140 else if (flow_channel.
getPipeLocation() == FlowChannelBase::EPipeLocation::CORNER)
144 const std::string obj_name =
genName(flow_channel.
name(),
"wall_friction_mat");
161 const std::string class_name =
"ADWallHeatTransferCoefficient3EqnDittusBoelterMaterial";
170 params.
set<MaterialPropertyName>(
"cp") =
180 const std::string class_name =
"ADWallHeatTransferCoefficientWolfMcCarthyMaterial";
192 const std::string class_name =
"ADWallHeatTransferCoefficientWeismanMaterial";
201 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 202 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 203 "FlowChannel1Phase component"));
208 mooseError(
"Weiman's correlation was made to be used in rod bundles, your geometry type is " 209 "PIPE, please change heat_transfer_geom to ROD_BUNDLE or HEX_ROD_BUNDLE, or " 210 "choose a correlation valid for PIPES");
213 FlowChannelBase::EConvHeatTransGeom::ROD_BUNDLE)
218 FlowChannelBase::EConvHeatTransGeom::HEX_ROD_BUNDLE)
227 const std::string class_name =
"ADWallHeatTransferCoefficientLyonMaterial";
238 const std::string class_name =
"ADWallHeatTransferCoefficientKazimiMaterial";
247 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 248 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 249 "FlowChannel1Phase component"));
257 const std::string class_name =
"ADWallHeatTransferCoefficientMikityukMaterial";
266 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 267 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 268 "FlowChannel1Phase component"));
276 const std::string class_name =
"ADWallHeatTransferCoefficientSchadMaterial";
285 "You are using a rod bundle correlation with the default Pitch-to-Diameter " 286 "ratio value, P/D=1.0. It can be set using the PoD parameter in the corresponding " 287 "FlowChannel1Phase component"));
295 const std::string class_name =
"ADWallHeatTransferCoefficientGnielinskiMaterial";
309 unsigned int i)
const 311 const std::string class_name =
"TemperatureWallFromHeatFlux3EqnTHMMaterial";
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.
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
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.
std::vector< MaterialPropertyName > getWallHeatFluxNames() const
Gets wall heat flux names for connected heat transfers.
virtual const std::string & name() const
void mooseWarning(Args &&... args) const
bool isParamValid(const std::string &name) const
void addWallTemperatureFromAuxMaterial(const FlowChannelBase &flow_channel, unsigned int i=0) const
Adds a material for wall temperature from an aux variable.
A class representing a 1-phase flow channel.
WallFFClosureType
Fluid friction factor closure type.
void addTemperatureWallFromHeatFluxMaterial(const FlowChannel1Phase &flow_channel, unsigned int i) const
Adds computation of wall temperature when heat flux is specified.
const T & getParam(const std::string &name) const
Closures1PhaseTHM(const InputParameters ¶ms)
Base class for heat transfer connections.
static const std::string FRICTION_FACTOR_DARCY
Base class for 1-phase closures.
Factory & _factory
Factory associated with the MooseApp.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void connectObject(const InputParameters ¶ms, const std::string &mooseName, const std::string &name) const
Connect with control logic.
WallHTCClosureType
Fluid heat transfer coefficient closure type.
static const std::string HYDRAULIC_DIAMETER
void mooseError(Args &&... args) const
registerMooseObject("ThermalHydraulicsApp", Closures1PhaseTHM)
const WallHTCClosureType _wall_htc_closure
Wall heat transfer coefficient closure.
std::vector< MaterialPropertyName > getWallHTCNames1Phase() const
Gets 1-phase wall heat transfer coefficient names for connected heat transfers.
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()