HSBoundaryExternalAppHeatFlux

This component is a heat structure boundary that is used to apply a heat flux variable transferred from another application in a Neumann boundary condition. Currently, this component may only be used with 2D, cylindrical heat structures, such as HeatStructureCylindrical.

Usage

This component creates a heat flux variable with the name given by "heat_flux_name". The other application is responsible for transferring into this variable, and this name will need to be supplied to the other application's input file. If "heat_flux_is_monomial" is set to true, then the finite element type of the variable will be CONSTANT MONOMIAL; otherwise, it will be FIRST LAGRANGE. The former is recommended whenever the other application uses a layered-average user object like NearestPointLayeredSideAverageFunctor to compute the heat flux, since in each axial division, there is only one value; there is not a value for each node. The latter is recommended whenever some kind of nodal transfer is used.

The parameter "heat_flux_is_inward" indicates whether the transferred heat flux corresponds to the inward direction, with respect to the heat structure boundary, i.e., if true, a positive value indicates heat is moving into the heat structure.

This component creates a Receiver post-processor to receive the discrete perimeter of the boundary from the other application, with the name given by the parameter "perimeter_ext". This perimeter is necessary to normalize the heat flux to achieve energy conservation. The other application is responsible for transferring into this post-processor using a MultiAppPostprocessorTransfer, or the perimeter may be simply specified as a constant if it is so.

This component creates the post-processor <heat_structure_boundary_name>_integral, which gives the heat rate found by integrating this heat flux over the boundary. This should be used to verify the conservation of the heat flux.

Formulation

The heat conduction equation is the following: ρcp\pdTt(kT)=q\eqc \rho c_p \pd{T}{t} - \nabla \cdot (k \nabla T) = q''' \eqc where

  • ρ\rho is density,

  • cpc_p is specific heat capacity,

  • kk is thermal conductivity,

  • TT is temperature, and

  • qq''' is a volumetric heat source.

Multiplying by a test function ϕi\phi_i and integrating by parts over the domain Ω\Omega gives \prρcp\pdTt,ϕiΩ+\prkT,ϕiΩkT,ϕinΩ=\prq,ϕiΩ\eqc \pr{\rho c_p \pd{T}{t}, \phi_i}_\Omega + \pr{k \nabla T, \nabla\phi_i}_\Omega - \left\langle k \nabla T, \phi_i\mathbf{n}\right\rangle_{\partial\Omega} = \pr{q''', \phi_i}_\Omega \eqc where Ω\partial\Omega is the boundary of the domain Ω\Omega.

For Neumann boundary conditions on the boundary Γ\Gamma, kTnk \nabla T \cdot \mathbf{n} is replaced with a known incoming heat flux function qbq_b:

kTn=qbxΓ\eqpk \nabla T \cdot \mathbf{n} = q_b \qquad \mathbf{x} \in \Gamma \eqp

This incoming boundary flux is computed from the transferred heat flux variable qq, the sign ±\pm determined by "heat_flux_is_inward", the external discrete perimeter PextP_\text{ext}, and the heat structure boundary perimeter PP:

qb=±qPextP\eqpq_b = \pm q \frac{P_\text{ext}}{P} \eqp

Input Parameters

  • boundaryList of boundary names for which this component applies

    C++ Type:std::vector<BoundaryName>

    Unit:(no unit assumed)

    Controllable:No

    Description:List of boundary names for which this component applies

  • heat_flux_is_inwardFalseSet to true if the transferred heat flux corresponds to the inward direction on the heat structure boundary; else the outward direction

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set to true if the transferred heat flux corresponds to the inward direction on the heat structure boundary; else the outward direction

  • heat_flux_nameName to give the heat flux variable transferred from the external application

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name to give the heat flux variable transferred from the external application

  • hsHeat structure name

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Heat structure name

  • perimeter_extName to give the external application perimeter post-processor

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name to give the external application perimeter post-processor

Required Parameters

  • heat_flux_is_monomialTrueIf true, makes the heat flux variable transferred from the external application to have the FE type 'CONSTANT MONOMIAL'. Else, the FE type is 'FIRST LAGRANGE'.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:If true, makes the heat flux variable transferred from the external application to have the FE type 'CONSTANT MONOMIAL'. Else, the FE type is 'FIRST LAGRANGE'.

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