https://mooseframework.inl.gov
FVMarshakRadiativeBC.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "FVMarshakRadiativeBC.h"
11 #include "MathUtils.h"
12 #include "HeatConductionNames.h"
13 
14 registerMooseObject("HeatTransferApp", FVMarshakRadiativeBC);
15 
18 {
20  params.addClassDescription("Marshak boundary condition for radiative heat flux.");
21  params.addRequiredParam<MooseFunctorName>("temperature_radiation", "The radiation temperature.");
22  params.addRequiredParam<MooseFunctorName>("coeff_diffusion",
23  "Radiative heat flux P1 diffusion coefficient.");
24  params.addParam<Real>("boundary_emissivity", 1.0, "Emissivity of the boundary.");
25  return params;
26 }
27 
29  : FVFluxBC(parameters),
30  _temperature_radiation(getFunctor<ADReal>("temperature_radiation")),
31  _coeff_diffusion(getFunctor<ADReal>("coeff_diffusion")),
32  _eps_boundary(getParam<Real>("boundary_emissivity"))
33 {
34 }
35 
36 ADReal
38 {
39  const auto corrected_diff_coef =
41  (2.0 - _eps_boundary));
42  const auto ground_flux =
45  return -corrected_diff_coef *
46  (_var(singleSidedFaceArg(_face_info), determineState()) - ground_flux);
47 }
const FaceInfo * _face_info
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
static InputParameters validParams()
Moose::StateArg determineState() const
const Real _eps_boundary
Emissivity of the boundary.
Moose::FaceArg singleSidedFaceArg(const FaceInfo *fi=nullptr, Moose::FV::LimiterType limiter_type=Moose::FV::LimiterType::CentralDifference, bool correct_skewness=false, const Moose::StateArg *state_limiter=nullptr) const
MooseVariableFV< Real > & _var
DualNumber< Real, DNDerivativeType, true > ADReal
void addRequiredParam(const std::string &name, const std::string &doc_string)
FVMarshakRadiativeBC(const InputParameters &parameters)
registerMooseObject("HeatTransferApp", FVMarshakRadiativeBC)
const Moose::Functor< ADReal > & _temperature_radiation
The coupled functor applying the radiation temperature.
const Moose::Functor< ADReal > & _coeff_diffusion
Diffusion coefficient.
static InputParameters validParams()
Boundary condition for radiative heat flux where temperature and the temperature of a body in radiati...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
virtual ADReal computeQpResidual()