19 "Adds a fixed diffusive flux BC which can be used for the assembly of linear " 20 "finite volume system and whose normal face gradient values are determined " 21 "using a functor. This kernel is only designed to work with advection-diffusion problems.");
23 "functor",
"The diffusive flux functor for this boundary condition.");
24 params.
addParam<MooseFunctorName>(
"diffusion_coeff", 1.0,
"The diffusion coefficient.");
31 _functor(getFunctor<
Real>(
"functor")),
32 _diffusion_coeff(getFunctor<
Real>(
"diffusion_coeff"))
48 const auto correction_vector =
79 const auto correction_vector =
RealVectorValue computeCellToFaceVector() const
Computes the vector connecting the cell and boundary face centers.
static InputParameters validParams()
Real computeCellToFaceDistance() const
Compute the distance between the cell center and the face.
LinearFVAdvectionDiffusionFunctorNeumannBC(const InputParameters ¶meters)
Class constructor.
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
virtual Real computeBoundaryGradientMatrixContribution() const override
Computes the boundary gradient's contribution to the linear system matrix.
const ElemInfo * elemInfo() const
registerMooseObject("MooseApp", LinearFVAdvectionDiffusionFunctorNeumannBC)
Real distance(const Point &p)
Moose::ElemArg makeElemArg(const Elem *elem, bool correct_skewnewss=false) const
Helper method to create an elemental argument for a functor that includes whether to perform skewness...
Base class for boundary conditions that are valid for advection diffusion problems.
const Elem * neighborPtr() const
virtual Real computeBoundaryValueMatrixContribution() const override
Computes the boundary value's contribution to the linear system matrix.
virtual Real computeBoundaryNormalGradient() const override
Computes the normal gradient (often used in diffusion terms) on the boundary.
FaceInfo::VarFaceNeighbors _current_face_type
Face ownership information for the current face.
Class implementing a Neumann boundary condition for linear finite volume variables.
virtual Real computeBoundaryValue() const override
Computes the boundary value of this object.
const Point & normal() const
Returns the unit normal vector for the face oriented outward from the face's elem element...
MooseLinearVariableFV< Real > & _var
Reference to the linear finite volume variable object.
const Elem * elemPtr() const
virtual Real computeBoundaryValueRHSContribution() const override
Computes the boundary value's contribution to the linear system right hand side.
const Moose::Functor< Real > & _diffusion_coeff
The functor for the diffusion coefficient.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const FaceInfo * _current_face_info
Pointer to the face info we are operating on right now.
const Moose::Functor< Real > & _functor
The functor for this BC (can be variable, function, etc)
const VectorValue< Real > gradSln(const ElemInfo &elem_info) const
Get the variable gradient at a cell center.
virtual Real computeBoundaryGradientRHSContribution() const override
Computes the boundary gradient's contribution to the linear system right hand side.
Moose::FaceArg singleSidedFaceArg(const FaceInfo *fi, Moose::FV::LimiterType limiter_type=Moose::FV::LimiterType::CentralDifference, bool correct_skewness=false) const
Determine the single sided face argument when evaluating a functor on a face.
Moose::FaceArg makeCDFace(const FaceInfo &fi, const bool correct_skewness=false) const
Make a functor face argument with a central differencing limiter, e.g.
void computeCellGradients()
Switch to request cell gradient computations.
static InputParameters validParams()