20 "use_two_term_expansion",
22 "If an approximate linear expansion should be used to compute the face value.");
29 _two_term_expansion(getParam<bool>(
"use_two_term_expansion"))
51 const auto cell_gradient =
_var.
gradSln(*elem_info, state);
55 const auto correction_vector = (d_cf - (d_cf * normal) * normal);
56 boundary_value += cell_gradient * correction_vector;
59 return boundary_value;
92 const auto correction_vector = (d_cf - (d_cf * normal) * normal);
93 const auto & cell_gradient =
_var.
gradSln(*elem_info, state);
95 return cell_gradient * correction_vector;
registerMooseObject("MooseApp", LinearFVAdvectionDiffusionScalarSymmetryBC)
const Point & normal() const
Returns the unit normal vector for the face oriented outward from the face's elem element.
const ElemInfo * elemInfo() const
const ElemInfo * neighborInfo() const
Base class for boundary conditions that are valid for advection diffusion problems.
static InputParameters validParams()
Class implementing a symmetry boundary condition for scalar quantities.
virtual Real computeBoundaryGradientRHSContribution() const override
Computes the boundary gradient's contribution to the linear system right hand side.
static InputParameters validParams()
virtual Real computeBoundaryValueRHSContribution() const override
Computes the boundary value's contribution to the linear system right hand side.
LinearFVAdvectionDiffusionScalarSymmetryBC(const InputParameters ¶meters)
Class constructor.
const bool _two_term_expansion
Switch for enabling linear extrapolation for the boundary face value.
virtual Real computeBoundaryGradientMatrixContribution() const override
Computes the boundary gradient's contribution to the linear system matrix.
virtual Real computeBoundaryValueMatrixContribution() const override
Computes the boundary value's contribution to the linear system matrix.
virtual Real computeBoundaryValue() const override
Computes the boundary value of this object.
virtual Real computeBoundaryNormalGradient() const override
Computes the normal gradient (often used in diffusion terms) on the boundary.
const FaceInfo * _current_face_info
Pointer to the face info we are operating on right now.
FaceInfo::VarFaceNeighbors _current_face_type
Face ownership information for the current face.
RealVectorValue computeCellToFaceVector() const
Computes the vector connecting the cell and boundary face centers.
MooseLinearVariableFV< Real > & _var
Reference to the linear finite volume variable object.
void computeCellGradients()
Switch to request cell gradient computations.
Real getElemValue(const ElemInfo &elem_info, const StateArg &state) const
Get the solution value for the provided element and seed the derivative for the corresponding dof ind...
VectorValue< Real > gradSln(const ElemInfo &elem_info, const StateArg &state) const
Get the variable gradient at a cell center.
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.