22 "advection term in a partial differential equation.");
39 if (!dynamic_cast<const LinearFVAdvectionDiffusionBC *>(bc.second))
41 bc.second->type(),
" is not a compatible boundary condition with ", this->
type(),
"!");
48 const auto interp_coeffs =
57 const auto interp_coeffs =
78 mooseAssert(adv_bc,
"This should be a valid BC!");
80 const auto boundary_value_matrix_contrib = adv_bc->computeBoundaryValueMatrixContribution();
93 mooseAssert(adv_bc,
"This should be a valid BC!");
98 const auto boundary_value_rhs_contrib = adv_bc->computeBoundaryValueRHSContribution();
Base class for boundary conditions for linear FV systems.
const RealVectorValue _velocity
Constant advecting velocity vector.
Kernel that adds contributions from an advection term discretized using the finite volume method to a...
std::pair< Real, Real > interpCoeffs(const InterpMethod m, const FaceInfo &fi, const bool one_is_elem, const T &face_flux=0.0)
Produce the interpolation coefficients in the equation:
Finite volume kernel that contributes approximations of discretized face flux terms to the matrix and...
MooseLinearVariableFV< Real > & _var
Reference to the linear finite volume variable.
FaceInfo::VarFaceNeighbors _current_face_type
Face ownership information for the current face.
registerMooseObject("MooseApp", LinearFVAdvection)
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
LinearFVAdvection(const InputParameters ¶ms)
Class constructor.
Base class for boundary conditions that are valid for advection diffusion problems.
static InputParameters validParams()
const FaceInfo * _current_face_info
Pointer to the face info we are operating on right now.
virtual Real computeNeighborMatrixContribution() override
Computes the system matrix contribution from the neighbor side on an internal face.
InputParameters advectedInterpolationParameter()
virtual Real computeNeighborRightHandSideContribution() override
Computes the right hand side contribution from the neighbor side on an internal face.
const std::string & type() const
Get the type of this class.
virtual Real computeElemMatrixContribution() override
Computes the system matrix contribution from an element side on an internal face. ...
const Point & normal() const
Returns the unit normal vector for the face oriented outward from the face's elem element...
virtual Real computeBoundaryMatrixContribution(const LinearFVBoundaryCondition &bc) override
Computes the matrix contribution from a boundary face.
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
Computes the right hand side contribution from a boundary face.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
const std::unordered_map< BoundaryID, LinearFVBoundaryCondition * > & getBoundaryConditionMap()
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
Real _current_face_area
The current, coordinate system specific face area.
static InputParameters validParams()
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)
Sets one interpolation method.
virtual Real computeElemRightHandSideContribution() override
Computes the right hand side contribution from the element side on an internal face.