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 NhsN_\text{hs} heat structure surfaces, with an optional coupling to an enclosing environment surface. The total number of surfaces in the exchange is denoted by NN; without an enclosing enironment surface, N=NhsN = N_\text{hs} and with an enclosing enironment surface, N=Nhs+1N = N_\text{hs} + 1.

As derived in Theory of Opaque, Gray, Diffuse Radiative Exchange, radiation exchange between opaque, gray, diffuse surfaces is described by the following equations:

j=1N[δi,j(1ϵi)Fi,j]Jj=Ei,\sum\limits^{N}_{j=1} \left[\delta_{i,j} - (1 - \epsilon_i) F_{i,j}\right] J_j = E_i \,,

where

  • ϵi\epsilon_i is the emissivity of surface ii,

  • Fi,jF_{i,j} is the view factor from surface ii to surface jj,

  • JiJ_i is the radiosity of surface ii, and

  • EiE_i is the emittance of surface ii:

Ei=ϵiσTi4,E_i = \epsilon_i \sigma T_i^4 \,,

with σ\sigma being the Stefan-Boltzmann constant and TiT_i the temperature of the surface ii.

Enclosing surfaces with areas much greater than the other surfaces, such as the environment, are equivalent to blackbodies:

Ji=Eb,i=σTi4.J_i = E_{b,i} = \sigma T_i^4 \,.

Together, these equations form a linear system:

AJ=b,\mathbf{A} \mathbf{J} = \mathbf{b} \,,Ai,j={δi,j(1ϵi)Fi,ji=1,,Nhsj=1,,N1i=Nhs+1j=Nhs+10i=Nhs+1jNhs+1A_{i,j} = \left\{\begin{array}{l l} \delta_{i,j} - (1 - \epsilon_i) F_{i,j} & i=1,\ldots,N_\text{hs} \quad j=1,\ldots,N \\ 1 & i = N_\text{hs} + 1 \quad j = N_\text{hs} + 1 \\ 0 & i = N_\text{hs} + 1 \quad j \neq N_\text{hs} + 1 \\ \end{array}\right.bi={Eii=1,,NhsEb,ii=Nhs+1b_i = \left\{\begin{array}{l l} E_i & i=1,\ldots,N_\text{hs} \\ E_{b,i} & i = N_\text{hs} + 1 \\ \end{array}\right.

Solving this system gives each radiosity ii, which is then used to compute the heat flux in the outward normal direction, qiq_i:

qi=ϵi1ϵi(σTi4Ji)i=1,,Nhs.q_i = \frac{\epsilon_i}{1 - \epsilon_i}\left(\sigma T_i^4 - J_i\right) \qquad i=1,\ldots,N_\text{hs} \,.

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 F1,1=0F_{1,1}=0, F1,2=1F_{1,2}=1, F2,1=0.3F_{2,1}=0.3, F2,2=0.7F_{2,2}=0.7, the following should be specified:

view_factors = '0 1; 0.3 0.7'

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:

jFi,j=1i.\sum\limits_j F_{i,j} = 1 \qquad \forall i \,.

Also note that Fi,i=0F_{i,i}=0 for any convex surface ii, e.g., the outer surface of a cylinder.

schooltip:Rule of reciprocity

To help with derivation of view factors, use the rule of reciprocity:

AiFi,j=AjFj,i.A_i F_{i,j} = A_j F_{j,i} \,.

Input Parameters

  • 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.

Required 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.

References

No citations exist within this document.