version 3.11-dev
Loading...
Searching...
No Matches
Dumux::Experimental::FEGridDiscretization< GV, Traits > Class Template Reference

Default class for finite element grid discretizations. More...

#include <dumux/discretization/fem/fegriddiscretization.hh>

Inheritance diagram for Dumux::Experimental::FEGridDiscretization< GV, Traits >:

Description

template<class GV, class Traits>
class Dumux::Experimental::FEGridDiscretization< GV, Traits >
Template Parameters
GVthe grid view type
Traitsthe grid geometry traits; must provide FeCache and DofHelper

Public Types

using DiscretizationMethod = typename Traits::DiscretizationMethod
 export the discretization method this geometry belongs to
using BoundaryFace = Experimental::BoundaryFace<GV>
 export the boundary face type
using BasicGridGeometry = BasicGridGeometry_t<GV, Traits>
 export basic grid geometry type for the alternative constructor
using LocalView = typename Traits::template LocalView<ThisType, true>
 export the type of the element discretization (the local view type)
using Extrusion = Extrusion_t<Traits>
 export the type of extrusion
using DofMapper = typename Traits::DofMapper
 export dof mapper type
using FeCache = typename Traits::FeCache
 export the finite element cache type
using GridView = GV
 export the grid view type
using SupportsPeriodicity = typename PeriodicGridTraits<typename GV::Grid>::SupportsPeriodicity
 export whether the grid supports periodicity
using ElementQuadratureRule = typename Traits::ElementQuadratureRule
 the quadrature rule type for elements
using IntersectionQuadratureRule = typename Traits::IntersectionQuadratureRule
 the quadrature rule type for intersections
using BoundaryFaceQuadratureRule = typename Traits::BoundaryFaceQuadratureRule
 the quadrature rule type for boundary faces
using Cache = FEGridDiscretizationCache
using Grid = typename BaseImplementation::Grid
 export the grid type
using GlobalCoordinate = typename BaseImplementation::GlobalCoordinate
 export the global coordinate type
using ElementMapper = typename BaseImplementation::ElementMapper
 export the element mapper type
using VertexMapper = typename BaseImplementation::VertexMapper
 export the vertex mapper type

Public Member Functions

 FEGridDiscretization (std::shared_ptr< BasicGridGeometry > gg)
 Constructor.
 FEGridDiscretization (const GridView &gridView)
 Constructor.
const DofMapperdofMapper () const
 The dof mapper.
std::size_t numDofs () const
 The total number of degrees of freedom.
void update (const GridView &gridView)
 update all geometries (call this after grid adaption)
void update (GridView &&gridView)
 update all geometries (call this after grid adaption)
const FeCachefeCache () const
 The finite element cache for creating local FE bases.
bool dofOnBoundary (GridIndexType dofIdx) const
 If a d.o.f. is on the boundary.
bool dofOnPeriodicBoundary (GridIndexType dofIdx) const
 If a d.o.f. is on a periodic boundary.
GridIndexType periodicallyMappedDof (GridIndexType dofIdx) const
 The index of the d.o.f. on the other side of the periodic boundary.
const std::unordered_map< GridIndexType, GridIndexType > & periodicDofMap () const
 Returns the map between dofs across periodic boundaries.
void update (const GridView &gridView)
 Update all fvElementGeometries (call this after grid adaption).
void update (GridView &&gridView)
 Update all fvElementGeometries (call this after grid adaption).
const GridViewgridView () const
 Return the gridView this grid geometry object lives on.
const VertexMappervertexMapper () const
 Returns the mapper for vertices to indices for constant grids.
VertexMappervertexMapper ()
 Returns the mapper for vertices to indices for possibly adaptive grids.
const ElementMapperelementMapper () const
 Returns the mapper for elements to indices for constant grids.
ElementMapperelementMapper ()
 Returns the mapper for elements to indices for possibly adaptive grids.
decltype(auto) boundingBoxTree () const
 Returns the bounding box tree of the grid.
decltype(auto) elementMap () const
 Returns the element index to element map.
Element element (GridIndexType eIdx) const
 Get an element from a global element index.
const GlobalCoordinatebBoxMin () const
 The coordinate of the corner of the GridView's bounding box with the smallest values.
const GlobalCoordinatebBoxMax () const
 The coordinate of the corner of the GridView's bounding box with the largest values.
bool isPeriodic () const
 Returns if the grid geometry is periodic (at all).

Static Public Attributes

static constexpr DiscretizationMethod discMethod {}
static constexpr std::size_t maxNumElementDofs = Traits::maxNumElementDofs

Protected Member Functions

void setPeriodic (bool value=true)
 Set the periodicity of the grid geometry.

Friends

LocalView localView (const FEGridDiscretization &gg)
 local view of this object (constructed with the internal cache)

Member Typedef Documentation

◆ BasicGridGeometry

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::BasicGridGeometry = BasicGridGeometry_t<GV, Traits>

◆ BoundaryFace

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::BoundaryFace = Experimental::BoundaryFace<GV>

◆ BoundaryFaceQuadratureRule

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::BoundaryFaceQuadratureRule = typename Traits::BoundaryFaceQuadratureRule

◆ Cache

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::Cache = FEGridDiscretizationCache

the cache type (only the caching implementation has this) this alias should only be used by the local view implementation

◆ DiscretizationMethod

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::DiscretizationMethod = typename Traits::DiscretizationMethod

◆ DofMapper

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::DofMapper = typename Traits::DofMapper

◆ ElementMapper

template<class GV, class Traits>
using Dumux::BaseGridGeometry< GV, Traits >::ElementMapper = typename BaseImplementation::ElementMapper
inherited

◆ ElementQuadratureRule

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::ElementQuadratureRule = typename Traits::ElementQuadratureRule

◆ Extrusion

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::Extrusion = Extrusion_t<Traits>

◆ FeCache

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::FeCache = typename Traits::FeCache

◆ GlobalCoordinate

template<class GV, class Traits>
using Dumux::BaseGridGeometry< GV, Traits >::GlobalCoordinate = typename BaseImplementation::GlobalCoordinate
inherited

◆ Grid

template<class GV, class Traits>
using Dumux::BaseGridGeometry< GV, Traits >::Grid = typename BaseImplementation::Grid
inherited

◆ GridView

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::GridView = GV

◆ IntersectionQuadratureRule

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::IntersectionQuadratureRule = typename Traits::IntersectionQuadratureRule

◆ LocalView

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::LocalView = typename Traits::template LocalView<ThisType, true>

◆ SupportsPeriodicity

template<class GV, class Traits>
using Dumux::Experimental::FEGridDiscretization< GV, Traits >::SupportsPeriodicity = typename PeriodicGridTraits<typename GV::Grid>::SupportsPeriodicity

◆ VertexMapper

template<class GV, class Traits>
using Dumux::BaseGridGeometry< GV, Traits >::VertexMapper = typename BaseImplementation::VertexMapper
inherited

Constructor & Destructor Documentation

◆ FEGridDiscretization() [1/2]

template<class GV, class Traits>
Dumux::Experimental::FEGridDiscretization< GV, Traits >::FEGridDiscretization ( std::shared_ptr< BasicGridGeometry > gg)
inline

◆ FEGridDiscretization() [2/2]

template<class GV, class Traits>
Dumux::Experimental::FEGridDiscretization< GV, Traits >::FEGridDiscretization ( const GridView & gridView)
inline

Member Function Documentation

◆ bBoxMax()

template<class GV, class Traits>
const GlobalCoordinate & Dumux::BaseGridGeometry< GV, Traits >::bBoxMax ( ) const
inlineinherited

◆ bBoxMin()

template<class GV, class Traits>
const GlobalCoordinate & Dumux::BaseGridGeometry< GV, Traits >::bBoxMin ( ) const
inlineinherited

◆ boundingBoxTree()

template<class GV, class Traits>
decltype(auto) Dumux::BaseGridGeometry< GV, Traits >::boundingBoxTree ( ) const
inlineinherited

◆ dofMapper()

template<class GV, class Traits>
const DofMapper & Dumux::Experimental::FEGridDiscretization< GV, Traits >::dofMapper ( ) const
inline

◆ dofOnBoundary()

template<class GV, class Traits>
bool Dumux::Experimental::FEGridDiscretization< GV, Traits >::dofOnBoundary ( GridIndexType dofIdx) const
inline

◆ dofOnPeriodicBoundary()

template<class GV, class Traits>
bool Dumux::Experimental::FEGridDiscretization< GV, Traits >::dofOnPeriodicBoundary ( GridIndexType dofIdx) const
inline

◆ element()

template<class GV, class Traits>
Element Dumux::BaseGridGeometry< GV, Traits >::element ( GridIndexType eIdx) const
inlineinherited

◆ elementMap()

template<class GV, class Traits>
decltype(auto) Dumux::BaseGridGeometry< GV, Traits >::elementMap ( ) const
inlineinherited

◆ elementMapper() [1/2]

template<class GV, class Traits>
ElementMapper & Dumux::BaseGridGeometry< GV, Traits >::elementMapper ( )
inlineinherited

◆ elementMapper() [2/2]

template<class GV, class Traits>
const ElementMapper & Dumux::BaseGridGeometry< GV, Traits >::elementMapper ( ) const
inlineinherited

◆ feCache()

template<class GV, class Traits>
const FeCache & Dumux::Experimental::FEGridDiscretization< GV, Traits >::feCache ( ) const
inline

◆ gridView()

template<class GV, class Traits>
const GridView & Dumux::BaseGridGeometry< GV, Traits >::gridView ( ) const
inlineinherited

◆ isPeriodic()

template<class GV, class Traits>
bool Dumux::BaseGridGeometry< GV, Traits >::isPeriodic ( ) const
inlineinherited

◆ numDofs()

template<class GV, class Traits>
std::size_t Dumux::Experimental::FEGridDiscretization< GV, Traits >::numDofs ( ) const
inline

◆ periodicallyMappedDof()

template<class GV, class Traits>
GridIndexType Dumux::Experimental::FEGridDiscretization< GV, Traits >::periodicallyMappedDof ( GridIndexType dofIdx) const
inline

◆ periodicDofMap()

template<class GV, class Traits>
const std::unordered_map< GridIndexType, GridIndexType > & Dumux::Experimental::FEGridDiscretization< GV, Traits >::periodicDofMap ( ) const
inline

◆ setPeriodic()

template<class GV, class Traits>
void Dumux::BaseGridGeometry< GV, Traits >::setPeriodic ( bool value = true)
inlineprotectedinherited

◆ update() [1/4]

template<class GV, class Traits>
void Dumux::BaseGridGeometry< GV, Traits >::update ( const GridView & gridView)
inlineinherited

◆ update() [2/4]

template<class GV, class Traits>
void Dumux::BaseGridGeometry< GV, Traits >::update ( GridView && gridView)
inlineinherited

◆ update() [3/4]

template<class GV, class Traits>
void Dumux::Experimental::FEGridDiscretization< GV, Traits >::update ( const GridView & gridView)
inline

◆ update() [4/4]

template<class GV, class Traits>
void Dumux::Experimental::FEGridDiscretization< GV, Traits >::update ( GridView && gridView)
inline

◆ vertexMapper() [1/2]

template<class GV, class Traits>
VertexMapper & Dumux::BaseGridGeometry< GV, Traits >::vertexMapper ( )
inlineinherited

◆ vertexMapper() [2/2]

template<class GV, class Traits>
const VertexMapper & Dumux::BaseGridGeometry< GV, Traits >::vertexMapper ( ) const
inlineinherited

◆ localView

template<class GV, class Traits>
LocalView localView ( const FEGridDiscretization< GV, Traits > & gg)
friend

Member Data Documentation

◆ discMethod

template<class GV, class Traits>
DiscretizationMethod Dumux::Experimental::FEGridDiscretization< GV, Traits >::discMethod {}
staticconstexpr

◆ maxNumElementDofs

template<class GV, class Traits>
std::size_t Dumux::Experimental::FEGridDiscretization< GV, Traits >::maxNumElementDofs = Traits::maxNumElementDofs
staticconstexpr

The documentation for this class was generated from the following file: