https://mooseframework.inl.gov
AdvectionHDGAssemblyHelper.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
21 {
22 public:
24 
25  AdvectionHDGAssemblyHelper(const MooseObject * moose_obj,
27  const TransientInterface * ti,
28  SystemBase & sys,
29  const Assembly & assembly,
30  THREAD_ID tid,
31  const std::set<SubdomainID> & block_ids,
32  const std::set<BoundaryID> & boundary_ids);
33 
34  virtual void scalarVolume() override;
35  virtual void scalarFace() override;
36  virtual void lmFace() override;
37  virtual void scalarDirichlet(const Moose::Functor<Real> & dirichlet_value) override;
38 
40  void lmOutflow();
41 
42 protected:
46  virtual ADRealVectorValue faceVelocity(unsigned int qp) const = 0;
47 
53  ADReal computeFlux(unsigned int qp, const ADReal & face_value) const;
54 
57 
59  const Real _coeff;
60 };
Keeps track of stuff related to assembling.
Definition: Assembly.h:109
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&#39;s face contribution.
This is a wrapper that forwards calls to the implementation, which can be switched out at any time wi...
static InputParameters validParams()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void scalarVolume() override
Assembles the element-interior equation&#39;s volume contribution.
const ADMaterialProperty< RealVectorValue > & _velocity
Cell-interior velocity used in the volume advection term.
Base class for a system (of equations)
Definition: SystemBase.h:85
DualNumber< Real, DNDerivativeType, true > ADReal
Definition: ADRealForward.h:42
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.
Definition: MooseObject.h:28
void lmOutflow()
Prescribes an outflow condition for the facet scalar.
const Real _coeff
Constant coefficient multiplying the advected scalar, such as density.
ADReal computeFlux(unsigned int qp, const ADReal &face_value) const
Computes the upwind face flux.
Method-neutral assembly data and operations for an element-and-trace scalar hybridized DG discretizat...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void lmFace() override
Assembles the facet equation&#39;s interior-face contribution.
Shared assembly for element-and-trace scalar hybridized DG discretizations of the advection equation...
virtual void scalarDirichlet(const Moose::Functor< Real > &dirichlet_value) override
Assembles the element-interior equation on a Dirichlet boundary.
unsigned int THREAD_ID
Definition: MooseTypes.h:237