21 params.addRequiredParam<MaterialPropertyName>(
"velocity",
"Velocity vector");
22 params.addParam<
Real>(
23 "coeff", 1,
"A constant coefficient. This could be something like a density");
24 params.addParam<
bool>(
"self_advection",
26 "Whether this kernel should advect its variables, e.g. its " 27 "variable/side_variable pair. If false, we will advect " 28 "unity (possibly multiplied by the 'coeff' parameter");
39 const std::set<SubdomainID> & block_ids,
40 const std::set<BoundaryID> & boundary_ids)
44 _coeff(moose_obj->getParam<
Real>(
"coeff")),
45 _self_advection(moose_obj->getParam<bool>(
"self_advection"))
72 const auto qp_term =
_ip_JxW_face[qp] * vdotn * adv_quant;
87 const auto qp_term =
_ip_JxW_face[qp] * vdotn * adv_quant;
99 mooseAssert(
_self_advection,
"This shouldn't be called if we are not self-advecting");
100 const auto dirichlet_value = dirichlet_functor(
104 const auto adv_quant = dirichlet_value *
_coeff;
105 const auto qp_term =
_ip_JxW_face[qp] * vdotn * adv_quant;
119 mooseAssert(
_self_advection,
"This shouldn't be called if we are not self-advecting");
virtual void scalarDirichlet(const Moose::Functor< Real > &dirichlet_value) override
Weakly imposes a Dirichlet condition for the scalar field in the scalar field equation.
DenseVector< ADReal > _scalar_re
Keeps track of stuff related to assembling.
const bool _self_advection
Whether this kernel should advect itself, e.g.
DenseVector< ADReal > _lm_re
const unsigned int & _ip_current_side
The current element side.
const MooseArray< std::vector< RealVectorValue > > & _grad_scalar_phi
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
This is a wrapper that forwards calls to the implementation, which can be switched out at any time wi...
const MooseArray< std::vector< Real > > & _lm_phi_face
void lmOutflow()
prescribes an outflow condition
virtual void lmFace() override
Computes a local residual vector for the weak form: -<Dq*n, > + < * (u - {u}) * n * n...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Base class for a system (of equations)
const QBase *const & _ip_qrule_face
The face qrule.
const TransientInterface & _ti
DualNumber< Real, DNDerivativeType, true > ADReal
const Elem *const & _ip_current_elem
The current element.
const MooseArray< Real > & _ip_JxW
The element JxW.
Base class that declares all the methods for assembling a hybridized interior penalty discontinuous G...
Interface for objects that needs transient capabilities.
virtual void scalarVolume() override
Computes a local residual vector for the weak form: (Dq, grad(w)) - (f, w) where D is the diffusivity...
Every object that can be built by the factory should be derived from this class.
const MooseArray< Point > & _ip_normals
The normal vector on the face.
const QBase *const & _ip_qrule
The element qrule.
const ADMaterialProperty< RealVectorValue > & _velocity
The velocity in the element interior.
AdvectionIPHDGAssemblyHelper(const MooseObject *const moose_obj, MooseVariableDependencyInterface *const mvdi, const TransientInterface *const ti, SystemBase &sys, const Assembly &assembly, const THREAD_ID tid, const std::set< SubdomainID > &block_ids, const std::set< BoundaryID > &boundary_ids)
const MooseArray< Point > & _ip_q_point_face
The physical quadrature point locations on the face.
unsigned int n_points() const
const ADMaterialProperty< RealVectorValue > & _face_velocity
The velocity on the element faces.
const MooseArray< ADReal > & _lm_u_sol
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void scalarFace() override
Computes a local residual vector for the weak form: -<Dq*n, w> + < * (u - {u}) * n * n...
const MooseArray< ADReal > & _u_sol
const MooseArray< Real > & _ip_JxW_face
The face JxW.
const MooseArray< std::vector< Real > > & _scalar_phi_face
IntRange< T > make_range(T beg, T end)
static InputParameters validParams()
auto index_range(const T &sizable)
Argument for requesting functor evaluation at quadrature point locations on an element side...
const Real _coeff
The quantity we are advecting, e.g.