21 params.addRequiredParam<MaterialPropertyName>(
22 "velocity",
"The cell-interior velocity material property used in the volume advection term");
23 params.addRequiredParam<
Real>(
24 "coeff",
"Constant coefficient multiplying the advected scalar, such as density");
35 const std::set<SubdomainID> & block_ids,
36 const std::set<BoundaryID> & boundary_ids)
38 moose_obj, mvdi, ti, sys, assembly, tid, block_ids, boundary_ids),
40 _coeff(moose_obj->getParam<
Real>(
"coeff"))
50 const auto qp_term =
_JxW[qp] *
_velocity[qp] * advected_quantity;
60 const auto face_phi =
_coeff * face_value;
63 return 0.5 * vdotn * (internal_phi + face_phi) + 0.5 *
abs(vdotn) * (internal_phi - face_phi);
93 const auto dirichlet_value = dirichlet_functor(
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
const MooseArray< Point > & _normals
Outward unit normals on the current face.
const MooseArray< std::vector< Real > > & _lm_phi_face
Facet trace test functions evaluated on a face.
Keeps track of stuff related to assembling.
AdvectionHDGAssemblyHelper(const MooseObject *moose_obj, MooseVariableDependencyInterface *mvdi, const TransientInterface *ti, SystemBase &sys, const Assembly &assembly, THREAD_ID tid, const std::set< SubdomainID > &block_ids, const std::set< BoundaryID > &boundary_ids)
virtual void scalarFace() override
Assembles the element-interior equation's face contribution.
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< Real > & _JxW_face
Face quadrature weights including the transformed Jacobian.
static InputParameters validParams()
virtual void scalarVolume() override
Assembles the element-interior equation's volume contribution.
const ADMaterialProperty< RealVectorValue > & _velocity
Cell-interior velocity used in the volume advection term.
const MooseArray< ADReal > & _lm_u_sol
Facet trace values at face quadrature points.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Base class for a system (of equations)
DualNumber< Real, DNDerivativeType, true > ADReal
Interface for objects that needs transient capabilities.
virtual ADRealVectorValue faceVelocity(unsigned int qp) const =0
Every object that can be built by the factory should be derived from this class.
void lmOutflow()
Prescribes an outflow condition for the facet scalar.
const Real _coeff
Constant coefficient multiplying the advected scalar, such as density.
unsigned int n_points() const
ADReal computeFlux(unsigned int qp, const ADReal &face_value) const
Computes the upwind face flux.
const MooseArray< Point > & _q_point_face
Physical face quadrature points.
Method-neutral assembly data and operations for an element-and-trace scalar hybridized DG discretizat...
const MooseArray< ADReal > & _u_sol
Element-interior scalar values at quadrature points.
const libMesh::QBase *const & _qrule
Element quadrature rule.
const Elem *const & _current_elem
Current element.
static InputParameters validParams()
const unsigned int & _current_side
Current element-side index.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DenseVector< ADReal > _scalar_re
Residual for the element-interior scalar equation.
virtual void lmFace() override
Assembles the facet equation's interior-face contribution.
IntRange< T > make_range(T beg, T end)
const TransientInterface & _ti
Transient state used to evaluate boundary functors.
const libMesh::QBase *const & _qrule_face
Face quadrature rule.
const MooseArray< std::vector< Real > > & _scalar_phi_face
Element-interior scalar test functions evaluated on a face.
auto index_range(const T &sizable)
Argument for requesting functor evaluation at quadrature point locations on an element side...
const MooseArray< Real > & _JxW
Element quadrature weights including the transformed Jacobian.
virtual void scalarDirichlet(const Moose::Functor< Real > &dirichlet_value) override
Assembles the element-interior equation on a Dirichlet boundary.
const MooseArray< std::vector< RealVectorValue > > & _grad_scalar_phi
Gradients of the element-interior scalar test functions.
DenseVector< ADReal > _lm_re
Residual for the facet trace equation.