22 params.
addRequiredParam<Real>(
"primary_emissivity",
"Emissivity for the primary side");
23 params.
addRequiredParam<Real>(
"secondary_emissivity",
"Emissivity for the secondary side");
24 params.
addParam<Real>(
"stefan_boltzmann_constant",
26 "Stefan Boltzmann constant [W/(m^2-K^4)]. This constant is provided as a "
27 "parameter to allow different precisions.");
30 "Couples boundaries of two 2D cylindrical heat structures via radiation");
39 _emissivities({getParam<Real>(
"primary_emissivity"), getParam<Real>(
"secondary_emissivity")})
48 if (hasComponentByName<HeatStructureBase>(
_hs_names[0]) &&
71 logError(
"The primary and secondary heat structures must be of a type inherited from "
72 "'HeatStructureCylindricalBase'.");
75 logError(
"The primary and secondary boundaries must be aligned.");
77 if (hasComponentByName<HeatStructureBase>(
_hs_names[0]) &&
78 hasComponentByName<HeatStructureBase>(
_hs_names[1]))
88 logError(
"The primary and secondary boundaries must be radial boundaries.");
98 for (
unsigned int i = 0; i < 2; i++)
100 const unsigned int j = i == 0 ? 1 : 0;
102 const auto & hs_cyl = getComponentByName<HeatStructureCylindricalBase>(
_hs_names[i]);
104 const std::string class_name =
"HeatStructure2DRadiationCouplerRZBC";
114 params.
set<Real>(
"coupled_area") =
_areas[j];
115 params.
set<Real>(
"stefan_boltzmann_constant") = getParam<Real>(
"stefan_boltzmann_constant");
116 params.
set<Point>(
"axis_point") = hs_cyl.getPosition();
117 params.
set<RealVectorValue>(
"axis_dir") = hs_cyl.getDirection();
registerMooseObject("ThermalHydraulicsApp", HeatStructure2DRadiationCouplerRZ)
bool hasBoundary(const BoundaryName &boundary_name) const
Returns true if this component has the supplied boundary.
virtual void addMooseObjects()
void logError(Args &&... args) const
Logs an error.
THMProblem & getTHMProblem() const
Gets the THM problem.
Factory & _factory
The Factory associated with the MooseApp.
virtual void addBoundaryCondition(const std::string &bc_name, const std::string &name, InputParameters ¶meters)
InputParameters getValidParams(const std::string &name) const
static const std::string TEMPERATURE
Couples boundaries of two 2D heat structures.
std::vector< Component2D::ExternalBoundaryType > _hs_side_types
Heat structure side types for each boundary.
virtual void check() const override
Check the component integrity.
MeshAlignment _mesh_alignment
Mesh alignment.
const std::vector< std::string > _hs_names
Primary and secondary heat structure names.
static InputParameters validParams()
std::vector< bool > _is_cylindrical
Flag for each heat structure deriving from HeatStructureCylindricalBase.
const std::vector< BoundaryName > _hs_boundaries
Primary and secondary heat structure boundaries.
virtual void init() override
Initializes the component.
std::vector< Real > _areas
Areas for the primary and secondary sides.
Couples boundaries of two 2D cylindrical heat structures via radiation.
const std::vector< Real > _emissivities
Emissivities for the primary and secondary sides.
static InputParameters validParams()
virtual void init() override
Initializes the component.
virtual void addMooseObjects() override
virtual void check() const override
Check the component integrity.
HeatStructure2DRadiationCouplerRZ(const InputParameters ¶meters)
std::vector< Real > _view_factors
View factors for the primary and secondary sides.
Base class for 2D generated heat structures.
bool meshesAreAligned() const
Returns true if the primary and secondary meshes are aligned.
Builds mapping between two aligned subdomains/boundaries.
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.