- boundariesThe boundaries of the heat structures to couple
C++ Type:std::vector<BoundaryName>
Unit:(no unit assumed)
Controllable:No
Description:The boundaries of the heat structures to couple
- emissivitiesEmissivities of each heat structure surface
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Emissivities of each heat structure surface
- heat_structuresThe heat structures to couple
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:The heat structures to couple
- include_environmentFalseWhether or not to include an environment surrounding all of the surfaces. If the heat structure surfaces themselves form an enclosure, then set this parameter to 'false'.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether or not to include an environment surrounding all of the surfaces. If the heat structure surfaces themselves form an enclosure, then set this parameter to 'false'.
- view_factorsThe view factors between each surface, as a matrix. The row/column ordering corresponds to the ordering in 'heat_structures', with an additional row and column if 'include_environment' is set to 'true'. Each row must sum to one.
C++ Type:std::vector<std::vector<double>>
Unit:(no unit assumed)
Controllable:No
Description:The view factors between each surface, as a matrix. The row/column ordering corresponds to the ordering in 'heat_structures', with an additional row and column if 'include_environment' is set to 'true'. Each row must sum to one.
HSCoupler2D2DRadiation
This component is used to apply radiative heat transfer between 2D heat structures with the following physical assumptions and approximations:
Surfaces are opaque, gray, and diffuse.
The infinite-length assumption is applied to simplify the formulation such that surfaces are only coupled at the same axial location.
This component couples heat structure surfaces, with an optional coupling to an enclosing environment surface. The total number of surfaces in the exchange is denoted by ; without an enclosing enironment surface, and with an enclosing enironment surface, .
As derived in Theory of Opaque, Gray, Diffuse Radiative Exchange, radiation exchange between opaque, gray, diffuse surfaces is described by the following equations:
where
is the emissivity of surface ,
is the view factor from surface to surface ,
is the radiosity of surface , and
is the emittance of surface :
with being the Stefan-Boltzmann constant and the temperature of the surface .
Enclosing surfaces with areas much greater than the other surfaces, such as the environment, are equivalent to blackbodies:
Together, these equations form a linear system:
Solving this system gives each radiosity , which is then used to compute the heat flux in the outward normal direction, :
By employing the infinite-length assumption, these relations hold at each axial quadrature point, so this solve is performed for each axial quadrature point.
Usage
The following restrictions apply for this component:
Only cylindrical heat structures such as HeatStructureCylindrical are supported.
The axial discretizations of the coupled heat structures must match exactly.
Exactly one boundary must be provided for each heat structure.
The heat structures are provided via "heat_structures", and their boundaries are provided via "boundaries", with their emissivities provided via "emissivities". If the heat structure surfaces form an enclosure, then "include_environment" should be set to false
and otherwise to true
, with the environment temperature set by "T_environment". The view factors between all of the surfaces are provided via "view_factors", which is provided in a matrix format. For example to give , , , , the following should be specified:
Each row/column corresponds to the ordering in the heat-structure-related parameters, with an additional last row/column if "include_environment" is true
. The sum of each row should equal one:
Also note that for any convex surface , e.g., the outer surface of a cylinder.
To help with derivation of view factors, use the rule of reciprocity:
Input Parameters
- T_environmentEnvironment temperature [K]. Only set if 'include_environment' is set to true.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Environment temperature [K]. Only set if 'include_environment' is set to true.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
Implementation
The implementation strategy for this component is as follows. The component first builds a mapping between the boundaries using MeshAlignment2D2D, where each element/face on the first 2D boundary is mapped to one element/face on each of the other 2D boundaries. Then for each iteration, a StoreVariableByElemIDSideUserObject is executed on all of the 2D boundaries to create a map of element IDs to the temperature values at each quadrature point on that element/face. Then a HSCoupler2D2DRadiationUserObject (a side user object) executes on the primary boundary and uses the MeshAlignment2D2D
object to get the coupled 2D boundary elements/faces and the StoreVariableByElemIDSideUserObject
to get the corresponding temperature values on the coupled elements. The heat fluxes are computed and stored by element ID. Finally, HSCoupler2D2DRadiationRZBC is used to apply the heat fluxes computed by HSCoupler2D2DRadiationUserObject
to each boundary.