25#ifndef DUMUX_DISCRETIZATION_FE_GRID_GEOMETRY_HH
26#define DUMUX_DISCRETIZATION_FE_GRID_GEOMETRY_HH
28#include <unordered_map>
47template<
class FEBasis,
class MapperTraits = DefaultMapperTraits<
typename FEBasis::Gr
idView>>
50 template<
class Gr
idGeometry>
61template<
class FEB,
class Traits = DefaultFEGr
idGeometryTraits<FEB>>
92 DUNE_THROW(Dune::InvalidStateException,
"The finite element discretization method only works with zero overlap for parallel computations. "
93 <<
" Set the parameter \"Grid.Overlap\" in the input file.");
98 {
return feBasis_->size(); }
102 {
return *feBasis_; }
106 { DUNE_THROW(Dune::NotImplemented,
"Periodic BC support for FEM schemes"); }
110 { DUNE_THROW(Dune::NotImplemented,
"Periodic BC support for FEM schemes"); }
114 { DUNE_THROW(Dune::NotImplemented,
"Periodic BC support for FEM schemes"); }
117 std::shared_ptr<FEBasis> feBasis_;
Defines the default element and vertex mapper types.
Defines the index types used for grid and local indices.
Grid geometry local view, which is a wrapper around a finite element basis local view.
Helper classes to compute the integration elements.
Base class for grid geometries.
Check the overlap size for different discretization methods.
The available discretization methods in Dumux.
typename Extrusion< T >::type Extrusion_t
Convenience alias for obtaining the extrusion type.
Definition: extrusion.hh:177
typename GridView::IndexSet::IndexType GridIndex
Definition: indextraits.hh:39
unsigned int LocalIndex
Definition: indextraits.hh:40
Base class for all finite volume grid geometries.
Definition: basegridgeometry.hh:51
const GridView & gridView() const
Return the gridView this grid geometry object lives on.
Definition: basegridgeometry.hh:120
Check if the overlap size is valid for a given discretization method.
Definition: checkoverlapsize.hh:40
Grid geometry local view, which is a wrapper around a finite element basis local view.
Definition: feelementgeometry.hh:41
Default Traits class for the fem grid geometry.
Definition: fegridgeometry.hh:49
The grid geometry class for models using finite element schemes. This is basically a wrapper around a...
Definition: fegridgeometry.hh:64
GridIndexType periodicallyMappedDof(GridIndexType dofIdx) const
The index of the vertex / d.o.f. on the other side of the periodic boundary.
Definition: fegridgeometry.hh:109
const FEBasis & feBasis() const
The total number of degrees of freedom.
Definition: fegridgeometry.hh:101
auto numDofs() const
The total number of degrees of freedom.
Definition: fegridgeometry.hh:97
typename Traits::template LocalView< ThisType > LocalView
export local view
Definition: fegridgeometry.hh:83
FEB FEBasis
export the type of finite element basis
Definition: fegridgeometry.hh:81
bool dofOnPeriodicBoundary(GridIndexType dofIdx) const
If a vertex / d.o.f. is on a periodic boundary.
Definition: fegridgeometry.hh:105
Extrusion_t< Traits > Extrusion
export the type of extrusion
Definition: fegridgeometry.hh:79
typename FEB::GridView GridView
export the grid view type
Definition: fegridgeometry.hh:77
const std::unordered_map< GridIndexType, GridIndexType > & periodicVertexMap() const
Returns the map between dofs across periodic boundaries.
Definition: fegridgeometry.hh:113
static constexpr DiscretizationMethod discMethod
Definition: fegridgeometry.hh:74
FEGridGeometry(std::shared_ptr< FEBasis > feBasis)
Constructor.
Definition: fegridgeometry.hh:86