25 params.
set<
bool>(
"_residual_object") =
true;
33 this, false, false, true),
36 _u_neighbor(_var.adSlnNeighbor())
40 "There should not be a need to specify a flux " 41 "boundary condition for an auxiliary variable.");
68 mooseError(
"A FVFluxBC is being triggered on an internal face with centroid: ",
71 mooseError(
"A FVFluxBC is being triggered on a face which does not connect to a block ",
72 "with the relevant finite volume variable. Its centroid: ",
119 mooseAssert(dof_indices.size() == 1,
"We're currently built to use CONSTANT MONOMIALS");
127 mooseAssert(
_face_info,
"The face info has not been set");
132 <<
" should be defined on exactly one adjacent subdomain for FVFluxBC " 134 mooseAssert(
_qp == 0,
135 "At the time of writing, we only support one quadrature point, which should " 136 "correspond to the location of the cell centroid. If that changes, we should " 137 "probably change the body of FVFluxBC::uOnUSub");
148 mooseAssert(
_face_info,
"The face info has not been set");
153 <<
" should be defined on exactly one adjacent subdomain for FVFluxBC " 155 mooseAssert(
_qp == 0,
156 "At the time of writing, we only support one quadrature point, which should " 157 "correspond to the location of the cell centroid. If that changes, we should " 158 "probably change the body of FVFluxBC::uOnGhost");
virtual const std::vector< dof_id_type > & dofIndicesNeighbor() const final
Get neighbor DOF indices for currently selected element.
const FaceInfo * _face_info
Holds information for the face we are currently examining.
void computeResidualAndJacobian(const FaceInfo &fi) override
Compute the residual and Jacobian on the supplied face.
FaceInfo::VarFaceNeighbors _face_type
The variable face type.
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
Add the provided incoming residuals and derivatives for the Jacobian, corresponding to the provided d...
void accumulateTaggedLocalResidual()
Local residual blocks will be appended by adding the current local kernel residual.
Moose::ElemArg neighborArg(bool correct_skewness=false) const
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 ...
static InputParameters validParams()
unsigned int number() const
Get variable number coming from libMesh.
const ADReal & uOnUSub() const
Base class for creating new types of boundary conditions.
const Elem & elem() const
MaterialDataType
MaterialData types.
const ADVariableValue & _u_neighbor
const Point & faceCentroid() const
Returns the coordinates of the face centroid.
Assembly & _assembly
Reference to assembly.
MooseVariableFV< Real > & _var
Real & faceCoord()
Sets/gets the coordinate transformation factor (for e.g.
DualNumber< Real, DNDerivativeType, true > ADReal
FVFluxBC(const InputParameters ¶meters)
Real faceArea() const
Returns the face area of face id.
const ADVariableValue & _u
This data structure is used to store geometric and variable related metadata about each cell face in ...
const std::string & name() const
Get the name of the class.
const Elem * neighborPtr() const
void updateCurrentFace(const FaceInfo &fi)
Update internal structures (normal, face type, etc) for the given face.
const ADReal & uOnGhost() const
ADRealVectorValue _normal
A structure that is used to evaluate Moose functors logically at an element/cell center.
const Point & normal() const
Returns the unit normal vector for the face oriented outward from the face's elem element...
unsigned int number() const
Gets the number of this system.
void prepareVectorTagNeighbor(Assembly &assembly, unsigned int ivar)
Prepare data for computing element residual the according to active tags for DG and interface kernels...
const std::set< SubdomainID > EMPTY_BLOCK_IDS
static InputParameters validParams()
Moose::VarKindType kind() const
Kind of the variable (Nonlinear, Auxiliary, ...)
DenseVector< Number > _local_re
Holds local residual entries as they are accumulated by this Kernel.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
This interface is designed for DGKernel, InternalSideUserObject, InterfaceUserObject, where material properties on a side of both its primary side (face) and its secondary side (neighbor) all required.
Moose::ElemArg elemArg(bool correct_skewness=false) const
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
void prepareVectorTag(Assembly &assembly, unsigned int ivar)
Prepare data for computing element residual according to active tags.
static InputParameters validParams()
SystemBase & sys()
Get the system this variable is part of.
void computeJacobian(const FaceInfo &fi) override
Compute the jacobian on the supplied face.
virtual ADReal computeQpResidual()=0
void computeResidual(const FaceInfo &fi) override
Compute the residual on the supplied face.
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
virtual const std::vector< dof_id_type > & dofIndices() const final
Get local DoF indices.
VarFaceNeighbors faceType(const std::pair< unsigned int, unsigned int > &var_sys) const
Returns which side(s) the given variable-system number pair is defined on for this face...