https://mooseframework.inl.gov
ADRadiativeHeatFluxBC.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 "ADRadiativeHeatFluxBC.h"
11 
12 registerMooseObject("ThermalHydraulicsApp", ADRadiativeHeatFluxBC);
13 
16 {
18 
19  params.addRequiredParam<MooseFunctorName>("T_ambient", "Ambient temperature functor");
20  params.addRequiredParam<MooseFunctorName>("emissivity", "Emissivity functor");
21  params.addParam<MooseFunctorName>("view_factor", 1.0, "View factor functor");
22  params.addParam<MooseFunctorName>(
23  "scale", 1.0, "Functor by which to scale the boundary condition");
24  params.addParam<Real>("stefan_boltzmann_constant", 5.670367e-8, "Stefan-Boltzmann constant");
25 
26  params.addClassDescription(
27  "Radiative heat transfer boundary condition for a plate heat structure");
28 
29  return params;
30 }
31 
33  : ADIntegratedBC(parameters),
34  _T_ambient(getFunctor<ADReal>("T_ambient")),
35  _emissivity(getFunctor<ADReal>("emissivity")),
36  _view_factor(getFunctor<ADReal>("view_factor")),
37  _scale(getFunctor<ADReal>("scale")),
38  _sigma(getParam<Real>("stefan_boltzmann_constant"))
39 {
40 }
41 
42 ADReal
44 {
46  const auto scale = _scale(space_arg, Moose::currentState());
47  const auto emissivity = _emissivity(space_arg, Moose::currentState());
48  const auto view_factor = _view_factor(space_arg, Moose::currentState());
49  const auto T_ambient = _T_ambient(space_arg, Moose::currentState());
50 
51  const auto T4 = MathUtils::pow(_u[_qp], 4);
52  const auto T4inf = MathUtils::pow(T_ambient, 4);
53 
54  return _test[_i][_qp] * _sigma * scale * emissivity * view_factor * (T4 - T4inf);
55 }
const ADTemplateVariableValue< T > & _u
virtual ADReal computeQpResidual() override
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
const Moose::Functor< ADReal > & _scale
Functor by which to scale the boundary condition.
void scale(MeshBase &mesh, const Real xs, const Real ys=0., const Real zs=0.)
const Elem *const & _current_elem
registerMooseObject("ThermalHydraulicsApp", ADRadiativeHeatFluxBC)
const Moose::Functor< ADReal > & _emissivity
Emissivity.
static InputParameters validParams()
DualNumber< Real, DNDerivativeType, false > ADReal
void addRequiredParam(const std::string &name, const std::string &doc_string)
unsigned int _qp
const MooseArray< Point > & _q_point
static const std::string T_ambient
Radiative heat transfer boundary condition for a plate heat structure.
const Moose::Functor< ADReal > & _T_ambient
Ambient temperature.
const Real _sigma
Stefan-Boltzmann constant.
ADRadiativeHeatFluxBC(const InputParameters &parameters)
const QBase *const & _qrule
const unsigned int & _current_side
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const ADTemplateVariableTestValue< T > & _test
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()
T pow(T x, int e)
const Moose::Functor< ADReal > & _view_factor
View factor.
StateArg currentState()
static const std::string emissivity