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.addDeprecatedParam<PostprocessorName>(
23  "scale_pp",
24  "1.0",
25  "Post-processor by which to scale boundary condition",
26  "The 'scale' parameter is replacing the 'scale_pp' parameter. 'scale' is a function "
27  "parameter instead of a post-processor parameter. If you need to scale from a post-processor "
28  "value, use a PostprocessorFunction.");
29  params.addParam<MooseFunctorName>(
30  "scale", 1.0, "Functor by which to scale the boundary condition");
31  params.addParam<Real>("stefan_boltzmann_constant", 5.670367e-8, "Stefan-Boltzmann constant");
32 
33  params.addClassDescription(
34  "Radiative heat transfer boundary condition for a plate heat structure");
35 
36  return params;
37 }
38 
40  : ADIntegratedBC(parameters),
41  _T_ambient(getFunctor<ADReal>("T_ambient")),
42  _emissivity(getFunctor<ADReal>("emissivity")),
43  _view_factor(getFunctor<ADReal>("view_factor")),
44  _scale_pp(getPostprocessorValue("scale_pp")),
45  _scale(getFunctor<ADReal>("scale")),
46  _sigma(getParam<Real>("stefan_boltzmann_constant"))
47 {
48 }
49 
50 ADReal
52 {
54  const auto scale = _scale(space_arg, Moose::currentState());
55  const auto emissivity = _emissivity(space_arg, Moose::currentState());
56  const auto view_factor = _view_factor(space_arg, Moose::currentState());
57  const auto T_ambient = _T_ambient(space_arg, Moose::currentState());
58 
59  const auto T4 = MathUtils::pow(_u[_qp], 4);
60  const auto T4inf = MathUtils::pow(T_ambient, 4);
61 
62  return _test[_i][_qp] * _sigma * _scale_pp * scale * emissivity * view_factor * (T4 - T4inf);
63 }
const ADTemplateVariableValue< T > & _u
virtual ADReal computeQpResidual() override
void addDeprecatedParam(const std::string &name, const T &value, const std::string &doc_string, const std::string &deprecation_message)
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.
DualNumber< Real, DNDerivativeType, true > ADReal
static InputParameters validParams()
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 PostprocessorValue & _scale_pp
Post-processor by which to scale boundary condition.
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