19 "Adds a Robin BC of the form \\alpha * \\nabla \\phi*n + \\beta * \\phi = \\gamma, " 20 "which can be used for the assembly of linear " 21 "finite volume system and whose face values are determined using " 22 "three functors. This kernel is " 23 "only designed to work with advection-diffusion problems.");
25 "alpha", 1.0,
"Functor for the coefficient of the normal gradient term.");
26 params.
addParam<MooseFunctorName>(
"beta", 1.0,
"Functor for the coefficient of the scalar term.");
28 "gamma", 1.0,
"Functor for the constant term on the RHS of the Robin BC.");
35 _alpha(getFunctor<
Real>(
"alpha")),
36 _beta(getFunctor<
Real>(
"beta")),
37 _gamma(getFunctor<
Real>(
"gamma"))
44 std::istringstream ss(getParam<MooseFunctorName>(
"alpha"));
46 if (ss >> real_value && ss.eof())
47 if (MooseUtils::isZero(real_value))
49 "This value shall not be 0. Use a Dirichlet boundary condition instead!");
56 return _alpha(face, state);
62 return _beta(face, state);
68 return _gamma(face, state);
const Moose::Functor< Real > & _gamma
Functor giving the gamma coefficient (on right hand side, treated explicitly)
static InputParameters validParams()
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
const Moose::Functor< Real > & _beta
Functor giving the beta coefficient (multiplying value)
virtual Real getAlpha(Moose::FaceArg face, Moose::StateArg state) const override
Getter functions (consistent entry point for all derived classes)
Class implementing a Robin boundary condition for linear finite volume variables. ...
LinearFVAdvectionDiffusionFunctorRobinBC(const InputParameters ¶meters)
Class constructor.
virtual Real getGamma(Moose::FaceArg face, Moose::StateArg state) const override
A structure defining a "face" evaluation calling argument for Moose functors.
static InputParameters validParams()
const Moose::Functor< Real > & _alpha
Functor giving the alpha coefficient (multiplying normal gradient)
MooseLinearVariableFV< Real > & _var
Reference to the linear finite volume variable object.
virtual Real getBeta(Moose::FaceArg face, Moose::StateArg state) const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Class implementing the base for the Robin boundary condition for linear finite volume variables...
State argument for evaluating functors.
void computeCellGradients()
Switch to request cell gradient computations.
registerMooseObject("MooseApp", LinearFVAdvectionDiffusionFunctorRobinBC)