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