20 #ifndef LIBMESH_DG_FEM_CONTEXT_H 21 #define LIBMESH_DG_FEM_CONTEXT_H 24 #include "libmesh/fem_context.h" 238 template<
typename OutputShape>
299 template<
typename OutputShape>
309 #endif // LIBMESH_FEM_CONTEXT_H std::vector< dof_id_type > _neighbor_dof_indices
Global Degree of freedom index lists for the neighbor element.
DenseMatrix< Number > & get_neighbor_neighbor_jacobian()
Non-const accessor for element Jacobian.
DenseVector< Number > _neighbor_residual
Residual vector of the neighbor component.
DenseMatrix< Number > _elem_elem_jacobian
The DG Jacobian terms.
void neighbor_side_fe_reinit()
Initialize neighbor side data needed to assemble DG terms.
DenseMatrix< Number > & get_neighbor_elem_jacobian()
Non-const accessor for element Jacobian.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_elem_subjacobians
DenseSubMatrix< Number > & get_elem_elem_jacobian(unsigned int var1, unsigned int var2)
Non-const accessor for element-element Jacobian of particular variables corresponding to the variable...
virtual void side_fe_reinit() override
Override side_fe_reinit to set a boolean flag so that by default DG terms are assumed to be inactive...
const std::vector< dof_id_type > & get_neighbor_dof_indices() const
Accessor for neighbor dof indices.
std::vector< std::vector< dof_id_type > > _neighbor_dof_indices_var
This is the base class from which all geometric element types are derived.
const DenseSubVector< Number > & get_neighbor_residual(unsigned int var) const
Const accessor for neighbor residual of a particular variable corresponding to the variable index arg...
std::vector< FEAbstract * > _neighbor_side_fe_var
Pointers to the same finite element objects on the neighbor element, but indexed by variable number...
const DenseMatrix< Number > & get_neighbor_neighbor_jacobian() const
Const accessor for element-neighbor Jacobian.
The libMesh namespace provides an interface to certain functionality in the library.
DenseMatrix< Number > & get_elem_elem_jacobian()
Non-const accessor for element-element Jacobian.
const DenseVector< Number > & get_neighbor_residual() const
Const accessor for neighbor residual.
Defines a dense subvector for use in finite element computations.
void get_neighbor_side_fe(unsigned int var, FEGenericBase< OutputShape > *&fe) const
Accessor for neighbor edge/face (2D/3D) finite element object for variable var.
DenseVector< Number > & get_neighbor_residual()
Non-const accessor for neighbor residual.
void set_neighbor(const Elem &neighbor)
Set the neighbor element which we will use to assemble DG terms.
Manages consistently variables, degrees of freedom, and coefficient vectors.
DenseMatrix< Number > & get_elem_neighbor_jacobian()
Non-const accessor for element -neighborJacobian.
Defines a dense submatrix for use in Finite Element-type computations.
DenseMatrix< Number > _neighbor_elem_jacobian
This class extends FEMContext in order to provide extra data required to perform local element residu...
This class provides all data required for a physics package (e.g.
DenseMatrix< Number > _elem_neighbor_jacobian
const std::vector< dof_id_type > & get_neighbor_dof_indices(unsigned int var) const
Accessor for element dof indices of a particular variable corresponding to the index argument...
const DenseMatrix< Number > & get_elem_neighbor_jacobian() const
Const accessor for element-neighbor Jacobian.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_neighbor_subjacobians
const DenseSubMatrix< Number > & get_elem_elem_jacobian(unsigned int var1, unsigned int var2) const
Const accessor for element-element Jacobian of particular variables corresponding to the variable ind...
bool dg_terms_are_active() const
Are the DG terms active, i.e.
bool _dg_terms_active
Boolean flag to indicate whether or not the DG terms have been assembled and should be used in the gl...
const Elem * _neighbor
Current neighbor element for assembling DG terms.
DenseSubMatrix< Number > & get_elem_neighbor_jacobian(unsigned int var1, unsigned int var2)
Non-const accessor for element-neighbor Jacobian of particular variables corresponding to the variabl...
const DenseMatrix< Number > & get_neighbor_elem_jacobian() const
Const accessor for element-neighbor Jacobian.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_elem_subjacobians
DenseSubMatrix< Number > & get_neighbor_elem_jacobian(unsigned int var1, unsigned int var2)
Non-const accessor for neighbor-element Jacobian of particular variables corresponding to the variabl...
DGFEMContext(const System &sys)
Constructor.
DenseMatrix< Number > _neighbor_neighbor_jacobian
const DenseSubMatrix< Number > & get_elem_neighbor_jacobian(unsigned int var1, unsigned int var2) const
Const accessor for element-neighbor Jacobian of particular variables corresponding to the variable in...
const DenseSubMatrix< Number > & get_neighbor_elem_jacobian(unsigned int var1, unsigned int var2) const
Const accessor for neighbor-element Jacobian of particular variables corresponding to the variable in...
const DenseSubMatrix< Number > & get_neighbor_neighbor_jacobian(unsigned int var1, unsigned int var2) const
Const accessor for neighbor-neighbor Jacobian of particular variables corresponding to the variable i...
std::vector< std::unique_ptr< DenseSubVector< Number > > > _neighbor_subresiduals
Element residual subvectors and Jacobian submatrices.
const DenseMatrix< Number > & get_elem_elem_jacobian() const
Const accessor for element-element Jacobian.
DenseSubMatrix< Number > & get_neighbor_neighbor_jacobian(unsigned int var1, unsigned int var2)
Non-const accessor for neighbor-neighbor Jacobian of particular variables corresponding to the variab...
virtual ~DGFEMContext()
Destructor.
std::map< FEType, std::unique_ptr< FEAbstract > > _neighbor_side_fe
Finite element objects for each variable's sides on the neighbor element.
const Elem & get_neighbor() const
Accessor for current neighbor Elem object for assembling DG terms.
DenseSubVector< Number > & get_neighbor_residual(unsigned int var)
Non-const accessor for neighbor residual of a particular variable corresponding to the variable index...
This class forms the foundation from which generic finite elements may be derived.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_neighbor_subjacobians