3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Attributes | List of all members
Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits > Class Template Reference

Base class for the finite volume geometry vector for box schemes that consider extra connectivity between grid vertices on marked codim one entities. More...

#include <dumux/porousmediumflow/boxdfm/fvgridgeometry.hh>

Inheritance diagram for Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >:
Inheritance graph

Description

template<class Scalar, class GV, class Traits>
class Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >

Base class for the finite volume geometry vector for box schemes that consider extra connectivity between grid vertices on marked codim one entities.

On these, an additional scvf is created accounting for the additional exchange fluxes between these degrees of freedom.

Note
For caching enabled we store the fv geometries for the whole grid view which is memory intensive but faster

Public Types

using LocalView = typename Traits::template LocalView< ThisType, true >
 Export the type of the fv element geometry (the local view type) More...
 
using SubControlVolume = typename Traits::SubControlVolume
 Export the type of sub control volume. More...
 
using SubControlVolumeFace = typename Traits::SubControlVolumeFace
 Export the type of sub control volume. More...
 
using DofMapper = typename Traits::VertexMapper
 Export dof mapper type. More...
 
using FeCache = Dune::PQkLocalFiniteElementCache< CoordScalar, Scalar, dim, 1 >
 Export the finite element cache type. More...
 
using GridView = GV
 Export the grid view type. More...
 
using Grid = typename GV::Grid
 export the grid type More...
 
using GlobalCoordinate = typename Element::Geometry::GlobalCoordinate
 export the global coordinate type More...
 
using ElementMapper = typename Traits::ElementMapper
 export the element mapper type More...
 
using VertexMapper = typename Traits::VertexMapper
 export the vertex mapper type More...
 

Public Member Functions

 BoxDfmFVGridGeometry (const GridView gridView)
 Constructor. More...
 
const DofMapperdofMapper () const
 
std::size_t numScv () const
 The total number of sub control volumes. More...
 
std::size_t numScvf () const
 The total number of sun control volume faces. More...
 
std::size_t numBoundaryScvf () const
 
std::size_t numDofs () const
 The total number of degrees of freedom. More...
 
template<class FractureGridAdapter >
void update (const FractureGridAdapter &fractureGridAdapter)
 Update all fvElementGeometries (do this again after grid adaption) More...
 
const FeCachefeCache () const
 The finite element cache for creating local FE bases. More...
 
const std::vector< SubControlVolume > & scvs (GridIndexType eIdx) const
 Get the local scvs for an element. More...
 
const std::vector< SubControlVolumeFace > & scvfs (GridIndexType eIdx) const
 Get the local scvfs for an element. More...
 
bool dofOnBoundary (unsigned int dofIdx) const
 If a vertex / d.o.f. is on the boundary. More...
 
bool dofOnFracture (unsigned int dofIdx) const
 If a vertex / d.o.f. is on a fracture. More...
 
bool dofOnPeriodicBoundary (std::size_t dofIdx) const
 Periodic boundaries are not supported for the box-dfm scheme. More...
 
std::size_t periodicallyMappedDof (std::size_t dofIdx) const
 The index of the vertex / d.o.f. on the other side of the periodic boundary. More...
 
std::unordered_map< std::size_t, std::size_t > periodicVertexMap () const
 Returns the map between dofs across periodic boundaries. More...
 
void update ()
 Update all fvElementGeometries (do this again after grid adaption) More...
 
const GridViewgridView () const
 Return the gridView this grid geometry object lives on. More...
 
const VertexMappervertexMapper () const
 Returns the mapper for vertices to indices for constant grids. More...
 
VertexMappervertexMapper ()
 Returns the mapper for vertices to indices for possibly adaptive grids. More...
 
const ElementMapperelementMapper () const
 Returns the mapper for elements to indices for constant grids. More...
 
ElementMapperelementMapper ()
 Returns the mapper for elements to indices for possibly adaptive grids. More...
 
const BoundingBoxTreeboundingBoxTree () const
 Returns the bounding box tree of the grid. More...
 
const ElementMapelementMap () const
 Returns the element index to element map. More...
 
template<class Scv , std::enable_if_t<!std::is_arithmetic< Scv >::value, int > = 0>
Element element (const Scv &scv) const
 Get an element from a sub-control volume. More...
 
Element element (GridIndexType eIdx) const
 Get an element from a global element index. More...
 
const GlobalCoordinatebBoxMin () const
 The coordinate of the corner of the GridView's bounding box with the smallest values. More...
 
const GlobalCoordinatebBoxMax () const
 The coordinate of the corner of the GridView's bounding box with the largest values. More...
 
bool isPeriodic () const
 Returns if the grid geometry is periodic (at all) More...
 
void setPeriodic (bool value=true)
 Set the periodicity of the grid geometry. More...
 

Static Public Attributes

static constexpr DiscretizationMethod discMethod = DiscretizationMethod::box
 Export discretization method. More...
 

Member Typedef Documentation

◆ DofMapper

template<class Scalar , class GV , class Traits >
using Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::DofMapper = typename Traits::VertexMapper

Export dof mapper type.

◆ ElementMapper

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

export the element mapper type

◆ FeCache

template<class Scalar , class GV , class Traits >
using Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::FeCache = Dune::PQkLocalFiniteElementCache<CoordScalar, Scalar, dim, 1>

Export the finite element cache type.

◆ GlobalCoordinate

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

export the global coordinate type

◆ Grid

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

export the grid type

◆ GridView

template<class Scalar , class GV , class Traits >
using Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::GridView = GV

Export the grid view type.

◆ LocalView

template<class Scalar , class GV , class Traits >
using Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::LocalView = typename Traits::template LocalView<ThisType, true>

Export the type of the fv element geometry (the local view type)

◆ SubControlVolume

template<class Scalar , class GV , class Traits >
using Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::SubControlVolume = typename Traits::SubControlVolume

Export the type of sub control volume.

◆ SubControlVolumeFace

template<class Scalar , class GV , class Traits >
using Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::SubControlVolumeFace = typename Traits::SubControlVolumeFace

Export the type of sub control volume.

◆ VertexMapper

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

export the vertex mapper type

Constructor & Destructor Documentation

◆ BoxDfmFVGridGeometry()

template<class Scalar , class GV , class Traits >
Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::BoxDfmFVGridGeometry ( const GridView  gridView)
inline

Constructor.

Member Function Documentation

◆ bBoxMax()

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

The coordinate of the corner of the GridView's bounding box with the largest values.

◆ bBoxMin()

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

The coordinate of the corner of the GridView's bounding box with the smallest values.

◆ boundingBoxTree()

template<class GV , class Traits >
const BoundingBoxTree & Dumux::BaseGridGeometry< GV, Traits >::boundingBoxTree ( ) const
inlineinherited

Returns the bounding box tree of the grid.

◆ dofMapper()

template<class Scalar , class GV , class Traits >
const DofMapper & Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::dofMapper ( ) const
inline

The vertex mapper is the dofMapper This is convenience to have better chance to have the same main files for box/tpfa/mpfa...

◆ dofOnBoundary()

template<class Scalar , class GV , class Traits >
bool Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::dofOnBoundary ( unsigned int  dofIdx) const
inline

If a vertex / d.o.f. is on the boundary.

◆ dofOnFracture()

template<class Scalar , class GV , class Traits >
bool Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::dofOnFracture ( unsigned int  dofIdx) const
inline

If a vertex / d.o.f. is on a fracture.

◆ dofOnPeriodicBoundary()

template<class Scalar , class GV , class Traits >
bool Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::dofOnPeriodicBoundary ( std::size_t  dofIdx) const
inline

Periodic boundaries are not supported for the box-dfm scheme.

◆ element() [1/2]

template<class GV , class Traits >
template<class Scv , std::enable_if_t<!std::is_arithmetic< Scv >::value, int > = 0>
Element Dumux::BaseGridGeometry< GV, Traits >::element ( const Scv &  scv) const
inlineinherited

Get an element from a sub-control volume.

Note
This interface is deprecated

◆ element() [2/2]

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

Get an element from a global element index.

◆ elementMap()

template<class GV , class Traits >
const ElementMap & Dumux::BaseGridGeometry< GV, Traits >::elementMap ( ) const
inlineinherited

Returns the element index to element map.

◆ elementMapper() [1/2]

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

Returns the mapper for elements to indices for possibly adaptive grids.

◆ elementMapper() [2/2]

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

Returns the mapper for elements to indices for constant grids.

◆ feCache()

template<class Scalar , class GV , class Traits >
const FeCache & Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::feCache ( ) const
inline

The finite element cache for creating local FE bases.

◆ gridView()

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

Return the gridView this grid geometry object lives on.

◆ isPeriodic()

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

Returns if the grid geometry is periodic (at all)

◆ numBoundaryScvf()

template<class Scalar , class GV , class Traits >
std::size_t Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::numBoundaryScvf ( ) const
inline

The total number of boundary sub control volume faces For compatibility reasons with cc methods

◆ numDofs()

template<class Scalar , class GV , class Traits >
std::size_t Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::numDofs ( ) const
inline

The total number of degrees of freedom.

◆ numScv()

template<class Scalar , class GV , class Traits >
std::size_t Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::numScv ( ) const
inline

The total number of sub control volumes.

◆ numScvf()

template<class Scalar , class GV , class Traits >
std::size_t Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::numScvf ( ) const
inline

The total number of sun control volume faces.

◆ periodicallyMappedDof()

template<class Scalar , class GV , class Traits >
std::size_t Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::periodicallyMappedDof ( std::size_t  dofIdx) const
inline

The index of the vertex / d.o.f. on the other side of the periodic boundary.

◆ periodicVertexMap()

template<class Scalar , class GV , class Traits >
std::unordered_map< std::size_t, std::size_t > Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::periodicVertexMap ( ) const
inline

Returns the map between dofs across periodic boundaries.

◆ scvfs()

template<class Scalar , class GV , class Traits >
const std::vector< SubControlVolumeFace > & Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::scvfs ( GridIndexType  eIdx) const
inline

Get the local scvfs for an element.

◆ scvs()

template<class Scalar , class GV , class Traits >
const std::vector< SubControlVolume > & Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::scvs ( GridIndexType  eIdx) const
inline

Get the local scvs for an element.

◆ setPeriodic()

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

Set the periodicity of the grid geometry.

◆ update() [1/2]

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

Update all fvElementGeometries (do this again after grid adaption)

Update the mappers

Compute the bouding box of the entire domain, for e.g. setting boundary conditions

reset bounding box tree and the element map until requested the next time

◆ update() [2/2]

template<class Scalar , class GV , class Traits >
template<class FractureGridAdapter >
void Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::update ( const FractureGridAdapter &  fractureGridAdapter)
inline

Update all fvElementGeometries (do this again after grid adaption)

◆ vertexMapper() [1/2]

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

Returns the mapper for vertices to indices for possibly adaptive grids.

◆ vertexMapper() [2/2]

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

Returns the mapper for vertices to indices for constant grids.

Member Data Documentation

◆ discMethod

template<class Scalar , class GV , class Traits >
constexpr DiscretizationMethod Dumux::BoxDfmFVGridGeometry< Scalar, GV, true, Traits >::discMethod = DiscretizationMethod::box
staticconstexpr

Export discretization method.


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