26 params.
addParam<MooseFunctorName>(
"scale", 1.0,
"Functor by which to scale the heat flux");
37 _mesh_alignment(constMesh())
59 for (
auto & elem_id : flow_channel.getElementIDs())
73 if (hasComponentByName<HeatStructureBase>(
_hs_name) &&
81 logError(
"The number of elements in component '",
84 flow_channel.getNumElems(),
85 ", but the number of axial elements in component '",
89 ". They must be the same.");
92 logError(
"The length of component '",
95 flow_channel.getLength(),
96 ", but the length of component '",
100 ". They must be the same.");
105 logError(
"The centers of the elements of flow channel '",
107 "' do not align with the centers of the specified heat structure side.");
138 const UserObjectName heat_flux_uo_name =
genName(
name(),
"heat_flux_uo");
140 const std::string class_name =
"ADHeatFluxFromHeatStructure3EqnUserObject";
144 params.
set<MaterialPropertyName>(
"T_wall") =
_T_wall_name +
"_coupled";
145 params.
set<std::vector<VariableName>>(
"P_hf") = {
_P_hf_name};
148 params.
set<MooseFunctorName>(
"scale") = getParam<MooseFunctorName>(
"scale");
154 const std::string class_name =
"ADOneD3EqnEnergyHeatFlux";
158 params.
set<UserObjectName>(
"q_uo") = heat_flux_uo_name;
163 const std::string class_name =
"ADHeatFlux3EqnBC";
167 params.
set<UserObjectName>(
"q_uo") = heat_flux_uo_name;
170 params.
set<
bool>(
"hs_coord_system_is_cylindrical") = is_cylindrical;
176 std::string class_name =
"MeshAlignmentVariableTransferMaterial";
179 params.
set<MaterialPropertyName>(
"property_name") =
_T_wall_name +
"_coupled";
187 std::string class_name =
"VariableValueTransferAux";
192 params.
set<std::vector<VariableName>>(
"paired_variable") =
const BoundaryName & getHeatStructureSideName() const
Gets the heat structure boundary name for this connection.
MeshAlignment _mesh_alignment
Mesh alignment.
registerMooseObject("ThermalHydraulicsApp", HeatTransferFromHeatStructure1Phase)
Real getNumberOfUnits() const
Gets the number of units that heat structure represents.
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 InputParameters validParams()
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
VariableName _T_wall_name
wall temperature name
const Component2D::ExternalBoundaryType _hs_side
Heat structure side.
virtual void addVariables() override
static const std::string TEMPERATURE
THMProblem & getTHMProblem() const
Gets the THM problem.
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters)
Connects a 1-phase flow channel and a heat structure.
FunctionName getInitialT() const
Gets the initial temperature function name.
InputParameters getValidParams(const std::string &name) const
Builds mapping between two aligned subdomains/boundaries.
void initialize(const std::vector< dof_id_type > &primary_elem_ids, const std::vector< std::tuple< dof_id_type, unsigned short int >> &secondary_boundary_info)
Extracts mesh information and builds the mapping.
virtual void addAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
virtual void addKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
virtual Real getLength() const
MaterialPropertyName _Hw_1phase_name
1-phase wall heat transfer coefficient name
const BoundaryName & getHSBoundaryName(const Component *const component) const
Gets the boundary name corresponding to the heat structure and side.
bool isRestarting() const
virtual const std::string & name() const
bool meshesAreAligned() const
Returns true if the primary and secondary meshes are aligned.
void addFunctionIC(const VariableName &var_name, const std::string &func_name, const std::vector< SubdomainName > &block_names)
virtual void addBoundaryCondition(const std::string &bc_name, const std::string &name, InputParameters ¶meters)
ExecFlagEnum getDefaultExecFlagEnum()
void logError(Args &&... args) const
Logs an error.
VariableName _P_hf_name
heated perimeter name
const dof_id_type & getCoupledElemID(const dof_id_type &elem_id) const
Gets the coupled element ID for a given element ID.
Base class for cylindrical heat structure components.
virtual void check() const override
Check the component integrity.
virtual void addMooseObjects() override
static const std::string TEMPERATURE
virtual void addMooseObjects() override
static InputParameters validParams()
const BoundaryName & getChannelSideName() const
Gets the flow channel nodeset name for this connection.
void check(const Component *const component) const
virtual Real getUnitPerimeter(const ExternalBoundaryType &side) const =0
Gets the perimeter of one unit of this heat structure on the specified side.
virtual void addVariables() override
Interface class for coupling to a heat structure boundary.
const ExecFlagType EXEC_LINEAR
virtual void check() const override
Check the component integrity.
const std::string _flow_channel_name
name of the connected flow channel
const bool _hs_side_valid
True if valid heat structure side was provided.
Base class for heat transfer connections from temperature for 1-phase flow.
const std::vector< std::tuple< dof_id_type, unsigned short int > > & getBoundaryInfo(const BoundaryName &boundary_name) const
Gets boundary info associated with the component boundary.
static const libMesh::FEType & feType()
Get the FE type used for heat conduction.
const BoundaryName & getNodesetName() const
Gets the 1D component nodeset name.
const ExecFlagType EXEC_NONLINEAR
const std::string & _hs_name
Heat structure name.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
HeatTransferFromHeatStructure1Phase(const InputParameters ¶meters)
Factory & _factory
The Factory associated with the MooseApp.
virtual std::vector< std::shared_ptr< UserObject > > addUserObject(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
Base class for 2D generated heat structures.
virtual Real getNumElems() const
static const std::string RHOEA
virtual const std::vector< SubdomainName > & getSubdomainNames() const
Gets the subdomain names for this component.
virtual const libMesh::FEType & getFEType() override
Get the FE type for wall temperature variable.
virtual void setupMesh() override
Performs mesh setup such as creating mesh or naming mesh sets.
std::vector< SubdomainName > _flow_channel_subdomains
Subdomains corresponding to the connected flow channel.
Base class for single-phase flow channels.
static InputParameters validParams()
virtual void augmentSparsity(const dof_id_type &elem_id1, const dof_id_type &elem_id2)
Hint how to augment sparsity pattern between two elements.
bool hasCoupledElemID(const dof_id_type &elem_id) const
Returns true if the element ID has a coupled element ID.
const ExecFlagType EXEC_INITIAL