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>>
91 DUNE_THROW(Dune::InvalidStateException,
"The finite element discretization method only works with zero overlap for parallel computations. "
92 <<
" Set the parameter \"Grid.Overlap\" in the input file.");
97 {
return feBasis_->size(); }
101 {
return *feBasis_; }
105 { DUNE_THROW(Dune::NotImplemented,
"Periodic BC support for FEM schemes"); }
109 { DUNE_THROW(Dune::NotImplemented,
"Periodic BC support for FEM schemes"); }
113 { DUNE_THROW(Dune::NotImplemented,
"Periodic BC support for FEM schemes"); }
116 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.
Check the overlap size for different discretization methods.
The available discretization methods in Dumux.
Helper classes to compute the integration elements.
Base class for grid geometries.
BaseGridGeometry(const GridView &gridView)
Constructor computes the bouding box of the entire domain, for e.g. setting boundary conditions.
Definition basegridgeometry.hh:78
DiscretizationMethod
The available discretization methods in Dumux.
Definition method.hh:37
@ fem
Definition method.hh:38
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
const GridView & gridView() const
Definition basegridgeometry.hh:115
static bool isValid(const GridView &gridView) noexcept
Definition checkoverlapsize.hh:42
Grid geometry local view, which is a wrapper around a finite element basis local view.
Definition feelementgeometry.hh:39
Default Traits class for the fem grid geometry.
Definition fegridgeometry.hh:49
FEElementGeometry< GridGeometry > LocalView
Definition fegridgeometry.hh:51
GridIndexType periodicallyMappedDof(GridIndexType dofIdx) const
The index of the vertex / d.o.f. on the other side of the periodic boundary.
Definition fegridgeometry.hh:108
const FEBasis & feBasis() const
Definition fegridgeometry.hh:100
auto numDofs() const
The total number of degrees of freedom.
Definition fegridgeometry.hh:96
typename Traits::template LocalView< ThisType > LocalView
Definition fegridgeometry.hh:82
FEB FEBasis
Definition fegridgeometry.hh:80
bool dofOnPeriodicBoundary(GridIndexType dofIdx) const
If a vertex / d.o.f. is on a periodic boundary.
Definition fegridgeometry.hh:104
Extrusion_t< Traits > Extrusion
Definition fegridgeometry.hh:78
typename FEB::GridView GridView
Definition fegridgeometry.hh:76
const std::unordered_map< GridIndexType, GridIndexType > & periodicVertexMap() const
Returns the map between dofs across periodic boundaries.
Definition fegridgeometry.hh:112
static constexpr DiscretizationMethod discMethod
Definition fegridgeometry.hh:73
FEGridGeometry(std::shared_ptr< FEBasis > feBasis)
Constructor.
Definition fegridgeometry.hh:85