version 3.11-dev
Loading...
Searching...
No Matches

Finite volume geometry for the pq3 hybrid CVFE scheme (order-3 Lagrange elements). More...

#include <dumux/discretization/pq3/fvgridgeometry.hh>

Inheritance diagram for Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >:

Description

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
class Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >

Control volumes are defined only for vertex DOFs (box dual mesh). Edge, face, and element interior DOFs are non-CV ("hybrid") DOFs.

Public Types

using DiscretizationMethod = DiscretizationMethods::PQ3
 export the discretization method this geometry belongs to
using BasicGridGeometry = BasicGridGeometry_t<GV, Traits>
 export basic grid geometry type
using LocalView = typename Traits::template LocalView<ThisType, true>
 export the type of the fv element geometry (the local view type)
using SubControlVolume = typename Traits::SubControlVolume
 export the type of sub control volume
using SubControlVolumeFace = typename Traits::SubControlVolumeFace
 export the type of sub control volume face
using BoundaryFace = Experimental::BoundaryFace<GV>
 export the boundary face type
using Extrusion = Extrusion_t<Traits>
 export the type of extrusion
using DofMapper = typename Traits::DofMapper
 export dof mapper type
using FeCache = Dune::LagrangeLocalFiniteElementCache<CoordScalar, Scalar, dim, 3>
 export the finite element cache type (order 3)
using GridView = GV
 export the grid view type
using SupportsPeriodicity = typename PeriodicGridTraits<typename GV::Grid>::SupportsPeriodicity
 export whether the grid supports periodicity
using ScvQuadratureRule = typename Traits::ScvQuadratureRule
 quadrature rule types
using ScvfQuadratureRule = typename Traits::ScvfQuadratureRule
using ElementQuadratureRule = typename Traits::ElementQuadratureRule
using IntersectionQuadratureRule = typename Traits::IntersectionQuadratureRule
using BoundaryFaceQuadratureRule = typename Traits::BoundaryFaceQuadratureRule
using Cache = PQ3GridGeometryCache
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

 PQ3FVGridGeometry (std::shared_ptr< BasicGridGeometry > gg)
 Constructor with shared basic grid geometry.
 PQ3FVGridGeometry (const GridView &gridView)
 Constructor.
const DofMapperdofMapper () const
std::size_t numScv () const
std::size_t numScvf () const
std::size_t numBoundaryScvf () const
std::size_t numDofs () const
void update (const GridView &gridView)
void update (GridView &&gridView)
const FeCachefeCache () const
template<class LocalKey>
auto dofIndex (const Element &element, const LocalKey &localKey) const
bool dofOnBoundary (GridIndexType dofIdx) const
bool dofOnPeriodicBoundary (GridIndexType dofIdx) const
GridIndexType periodicallyMappedDof (GridIndexType dofIdx) const
const std::unordered_map< GridIndexType, GridIndexType > & periodicDofMap () const
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 bool enableHybridCVFE = Detail::enablesHybridCVFE<Traits>
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 PQ3FVGridGeometry &gg)

Member Typedef Documentation

◆ BasicGridGeometry

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::BasicGridGeometry = BasicGridGeometry_t<GV, Traits>

◆ BoundaryFace

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::BoundaryFace = Experimental::BoundaryFace<GV>

◆ BoundaryFaceQuadratureRule

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::BoundaryFaceQuadratureRule = typename Traits::BoundaryFaceQuadratureRule

◆ Cache

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::Cache = PQ3GridGeometryCache

◆ DiscretizationMethod

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::DiscretizationMethod = DiscretizationMethods::PQ3

◆ DofMapper

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::DofMapper = typename Traits::DofMapper

◆ ElementMapper

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

◆ ElementQuadratureRule

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::ElementQuadratureRule = typename Traits::ElementQuadratureRule

◆ Extrusion

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::Extrusion = Extrusion_t<Traits>

◆ FeCache

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::FeCache = Dune::LagrangeLocalFiniteElementCache<CoordScalar, Scalar, dim, 3>

◆ 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 Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::GridView = GV

◆ IntersectionQuadratureRule

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::IntersectionQuadratureRule = typename Traits::IntersectionQuadratureRule

◆ LocalView

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::LocalView = typename Traits::template LocalView<ThisType, true>

◆ ScvfQuadratureRule

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::ScvfQuadratureRule = typename Traits::ScvfQuadratureRule

◆ ScvQuadratureRule

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::ScvQuadratureRule = typename Traits::ScvQuadratureRule

◆ SubControlVolume

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::SubControlVolume = typename Traits::SubControlVolume

◆ SubControlVolumeFace

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::SubControlVolumeFace = typename Traits::SubControlVolumeFace

◆ SupportsPeriodicity

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
using Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, 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

◆ PQ3FVGridGeometry() [1/2]

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::PQ3FVGridGeometry ( std::shared_ptr< BasicGridGeometry > gg)
inline

◆ PQ3FVGridGeometry() [2/2]

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::PQ3FVGridGeometry ( 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

◆ dofIndex()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
template<class LocalKey>
auto Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::dofIndex ( const Element & element,
const LocalKey & localKey ) const
inline

Flip-aware global DOF index for a local key. Used by CVFEElementSolution::update to correctly extract the solution for simplex edge DOFs where Dune::LagrangeLocalFiniteElementCache returns unflipped keys but the globally-consistent ordering requires a flip.

◆ dofMapper()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
const DofMapper & Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::dofMapper ( ) const
inline

◆ dofOnBoundary()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
bool Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::dofOnBoundary ( GridIndexType dofIdx) const
inline

◆ dofOnPeriodicBoundary()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
bool Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, 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 Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
const FeCache & Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, 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

◆ numBoundaryScvf()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
std::size_t Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::numBoundaryScvf ( ) const
inline

◆ numDofs()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
std::size_t Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::numDofs ( ) const
inline

◆ numScv()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
std::size_t Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::numScv ( ) const
inline

◆ numScvf()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
std::size_t Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::numScvf ( ) const
inline

◆ periodicallyMappedDof()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
GridIndexType Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::periodicallyMappedDof ( GridIndexType dofIdx) const
inline

◆ periodicDofMap()

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
const std::unordered_map< GridIndexType, GridIndexType > & Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, 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 Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
void Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::update ( const GridView & gridView)
inline

◆ update() [4/4]

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
void Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, 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 Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
LocalView localView ( const PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits > & gg)
friend

Member Data Documentation

◆ discMethod

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
DiscretizationMethod Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::discMethod {}
staticconstexpr

◆ enableHybridCVFE

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
bool Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::enableHybridCVFE = Detail::enablesHybridCVFE<Traits>
staticconstexpr

◆ maxNumElementDofs

template<class Scalar, class GV, bool enableCaching = true, class Traits = PQ3DefaultGridGeometryTraits<GV>>
std::size_t Dumux::PQ3FVGridGeometry< Scalar, GV, enableCaching, Traits >::maxNumElementDofs = Traits::maxNumElementDofs
staticconstexpr

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