https://mooseframework.inl.gov
Loading...
Searching...
No Matches
LinearFVP1RadiationMarshakBC.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
11#include "HeatConductionNames.h"
12
14
17{
19 params.addClassDescription("Marshak boundary condition for radiative heat flux.");
20 params.addRequiredParam<MooseFunctorName>("temperature_radiation", "The radiation temperature.");
21 params.addRequiredParam<MooseFunctorName>("coeff_diffusion",
22 "Radiative heat flux P1 diffusion coefficient.");
23 params.addParam<MooseFunctorName>("boundary_emissivity", 1.0, "Emissivity of the boundary.");
24 return params;
25}
26
29 _temperature_radiation(getFunctor<Real>("temperature_radiation")),
30 _coeff_diffusion(getFunctor<Real>("coeff_diffusion")),
31 _eps_boundary(getFunctor<Real>("boundary_emissivity"))
32{
33}
34
35Real
37{
38 const auto alpha = -_coeff_diffusion(face, state);
39 return alpha;
40}
41
42Real
44{
45 const auto beta = -_eps_boundary(face, state) / (2 * (2 - _eps_boundary(face, state)));
46 return beta;
47}
48
49Real
51{
52 const auto gamma = -_eps_boundary(face, state) * 4 * HeatConduction::Constants::sigma *
53 Utility::pow<4>(_temperature_radiation(face, state)) /
54 ((2 * (2 - _eps_boundary(face, state))));
55
56 return gamma;
57}
registerMooseObject("HeatTransferApp", LinearFVP1RadiationMarshakBC)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
Class implementing a Marshak boundary condition for P1 radiation model in linear finite volume variab...
const Moose::Functor< Real > & _temperature_radiation
Functor giving the alpha coefficient (multiplying normal gradient)
virtual Real getGamma(Moose::FaceArg face, Moose::StateArg state) const override
LinearFVP1RadiationMarshakBC(const InputParameters &parameters)
Class constructor.
const Moose::Functor< Real > & _coeff_diffusion
Functor giving the beta coefficient (multiplying value)
virtual Real getBeta(Moose::FaceArg face, Moose::StateArg state) const override
virtual Real getAlpha(Moose::FaceArg face, Moose::StateArg state) const override
const Moose::Functor< Real > & _eps_boundary
Functor giving the gamma coefficient (on right hand side, treated explicitly)