21 "Applies a surface-to-surface Gray-Lambert radiation heat flux boundary "
22 "condition to a linear finite-volume energy equation.");
24 "temperature_radiation",
25 "Temperature functor used to reconstruct the local surface emission.");
28 "Diffusion coefficient used by the corresponding LinearFVDiffusion kernel.");
30 "Name of the GrayLambertSurfaceRadiationBase UO");
32 "reconstruct_emission",
34 "Flag to apply constant heat flux on sideset or reconstruct emission by T^4 law.");
41 _temperature_radiation(getFunctor<Real>(
"temperature_radiation")),
42 _coeff_diffusion(getFunctor<Real>(
"coeff_diffusion")),
44 _reconstruct_emission(getParam<bool>(
"reconstruct_emission"))
57 mooseAssert(elem,
"The boundary face must have an adjacent element.");
72 std::vector<BoundaryID> matching_boundary_ids;
76 matching_boundary_ids.push_back(boundary_id);
79 matching_boundary_ids.size() == 1,
80 "LinearFVGrayLambertBC expected exactly one matching boundary ID on the current face.");
82 const BoundaryID boundary_id = matching_boundary_ids.front();
91 mooseAssert(elem,
"The radiating boundary face must have an adjacent element.");
107 std::set<BoundaryID> current_bid;
108 set_intersection(all_face_bids.begin(),
112 std::inserter(current_bid, current_bid.begin()));
113 if (current_bid.size() != 1)
115 std::to_string(current_bid.size()) +
116 " boundaries overlap. This is not currently supported");
boundary_id_type BoundaryID
registerMooseObject("HeatTransferApp", LinearFVGrayLambertBC)
bool hasBoundary(const BoundaryName &name) const
virtual const std::set< BoundaryID > & boundaryIDs() const
const std::set< BoundaryID > & boundaryIDs() const
const Elem * neighborPtr() const
const Elem * elemPtr() const
Moose::ElemArg makeElemArg(const Elem *elem, bool correct_skewnewss=false) const
GrayLambertSurfaceRadiationBase computes the heat flux on a set of surfaces in radiative heat transfe...
Real getSurfaceHeatFluxDensity(BoundaryID id) const
Real getSurfaceEmissivity(BoundaryID id) const
Real getSurfaceIrradiation(BoundaryID id) const
public interface of this UserObject
static InputParameters validParams()
const FaceInfo * _current_face_info
FaceInfo::VarFaceNeighbors _current_face_type
MooseLinearVariableFV< Real > & _var
Applies a Gray-Lambert surface-to-surface radiative heat-flux boundary condition to a linear finite-v...
const GrayLambertSurfaceRadiationBase & _glsr_uo
User object providing surface emissivity, irradiation, and net radiative heat flux.
static InputParameters validParams()
virtual Real getAlpha(Moose::FaceArg face, Moose::StateArg state) const override
const Moose::Functor< Real > & _coeff_diffusion
Diffusion coefficient multiplying the outward normal temperature gradient.
const Moose::Functor< Real > & _temperature_radiation
Temperature variable used to reconstruct the local-lagged surface emission.
virtual Real getGamma(Moose::FaceArg face, Moose::StateArg state) const override
virtual Real getBeta(Moose::FaceArg face, Moose::StateArg state) const override
LinearFVGrayLambertBC(const InputParameters ¶meters)
Class constructor.
bool _reconstruct_emission
Whether to reconstruct the local emitted heat flux using the boundary-face temperature.
void paramError(const std::string ¶m, Args... args) const
virtual void needSolutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time, libMesh::ParallelType parallel_type=GHOSTED)
Moose::StateArg determineState() const