Go to the documentation of this file.
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
Manages consistently variables, degrees of freedom, and coefficient vectors.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_neighbor_subjacobians
void neighbor_side_fe_reinit()
Initialize neighbor side data needed to assemble DG terms.
std::vector< dof_id_type > _neighbor_dof_indices
Global Degree of freedom index lists for the neighbor element.
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.
const std::vector< dof_id_type > & get_neighbor_dof_indices() const
Accessor for neighbor dof indices.
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...
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.
DenseMatrix< Number > & get_neighbor_neighbor_jacobian()
Non-const accessor for element Jacobian.
DenseMatrix< Number > _elem_elem_jacobian
The DG Jacobian terms.
Defines a dense submatrix for use in Finite Element-type computations.
This class extends FEMContext in order to provide extra data required to perform local element residu...
The libMesh namespace provides an interface to certain functionality in the library.
DenseMatrix< Number > & get_elem_neighbor_jacobian()
Non-const accessor for element -neighborJacobian.
This class forms the foundation from which generic finite elements may be derived.
const DenseMatrix< Number > & get_neighbor_elem_jacobian() const
Const accessor for element-neighbor Jacobian.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_elem_subjacobians
const DenseMatrix< Number > & get_elem_elem_jacobian() const
Const accessor for element-element Jacobian.
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...
DenseVector< Number > & get_neighbor_residual()
Non-const accessor for neighbor residual.
std::vector< std::vector< dof_id_type > > _neighbor_dof_indices_var
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...
std::vector< FEAbstract * > _neighbor_side_fe_var
Pointers to the same finite element objects on the neighbor element, but indexed by variable number.
DenseMatrix< Number > _neighbor_neighbor_jacobian
DenseMatrix< Number > _elem_neighbor_jacobian
const DenseVector< Number > & get_neighbor_residual() const
Const accessor for neighbor residual.
DenseVector< Number > _neighbor_residual
Residual vector of the neighbor component.
const DenseMatrix< Number > & get_elem_neighbor_jacobian() const
Const accessor for element-neighbor Jacobian.
const Elem * _neighbor
Current neighbor element for assembling DG terms.
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...
DenseMatrix< Number > & get_elem_elem_jacobian()
Non-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...
DenseMatrix< Number > & get_neighbor_elem_jacobian()
Non-const accessor for element Jacobian.
DenseMatrix< Number > _neighbor_elem_jacobian
DenseSubVector< Number > & get_neighbor_residual(unsigned int var)
Non-const accessor for neighbor residual of a particular variable corresponding to the variable index...
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 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.
std::vector< std::unique_ptr< DenseSubVector< Number > > > _neighbor_subresiduals
Element residual subvectors and Jacobian submatrices.
bool dg_terms_are_active() const
Are the DG terms active, i.e.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_neighbor_subjacobians
std::map< FEType, std::unique_ptr< FEAbstract > > _neighbor_side_fe
Finite element objects for each variable's sides on the neighbor element.
const DenseMatrix< Number > & get_neighbor_neighbor_jacobian() const
Const accessor for element-neighbor Jacobian.
This is the base class from which all geometric element types are derived.
void set_neighbor(const Elem &neighbor)
Set the neighbor element which we will use to assemble DG terms.
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...
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 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...
DGFEMContext(const System &sys)
Constructor.
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 ~DGFEMContext()
Destructor.
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_elem_subjacobians
const Elem & get_neighbor() const
Accessor for current neighbor Elem object for assembling DG terms.
This class provides all data required for a physics package (e.g.