Dune::PolyhedralGrid< dim, dimworld, coord_t > Class Template Reference

identical grid wrapper More...

#include <grid.hh>

Classes

struct  Codim
 traits structure containing types for a codimension More...
 
struct  Partition
 Types for GridView. More...
 
struct  UnstructuredGridDeleter
 

Public Types

typedef UnstructuredGrid UnstructuredGridType
 
typedef std::unique_ptr< UnstructuredGridType, UnstructuredGridDeleterUnstructuredGridPtr
 

Public Member Functions

template<int codim>
Codim< codim >::LeafIterator leafbegin () const
 
template<int codim>
Codim< codim >::LeafIterator leafend () const
 
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LeafIterator leafbegin () const
 
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LeafIterator leafend () const
 
template<int codim>
Codim< codim >::LevelIterator lbegin (const int) const
 
template<int codim>
Codim< codim >::LevelIterator lend (const int) const
 
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LevelIterator lbegin (const int) const
 
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LevelIterator lend (const int) const
 
const GlobalIdSetglobalIdSet () const
 
const LocalIdSetlocalIdSet () const
 
const LevelIndexSetlevelIndexSet (int) const
 
const LeafIndexSetleafIndexSet () const
 
void globalRefine (int)
 
bool mark (int, const typename Codim< 0 >::Entity &)
 
int getMark (const typename Codim< 0 >::Entity &) const
 
bool preAdapt ()
 
bool adapt ()
 
template<class DataHandle >
bool adapt (DataHandle &)
 
void postAdapt ()
 
const std::array< int, 3 > & logicalCartesianSize () const
 
const int * globalCell () const
 
const int * globalCellPtr () const
 
void getIJK (const int c, std::array< int, 3 > &ijk) const
 

Static Public Member Functions

static UnstructuredGridPtr allocateGrid (std::size_t nCells, std::size_t nFaces, std::size_t nFaceNodes, std::size_t nCellFaces, std::size_t nNodes)
 
static void computeGeometry (UnstructuredGridPtr &ug)
 

Traits

typedef GridFamily::Traits Traits
 type of the grid traits More...
 

Iterator Types

typedef Traits::HierarchicIterator HierarchicIterator
 iterator over the grid hierarchy More...
 
typedef Traits::LeafIntersectionIterator LeafIntersectionIterator
 iterator over intersections with other entities on the leaf level More...
 
typedef Traits::LevelIntersectionIterator LevelIntersectionIterator
 iterator over intersections with other entities on the same level More...
 

Grid View Types

typedef Partition< All_Partition >::LevelGridView LevelGridView
 View types for All_Partition. More...
 
typedef Partition< All_Partition >::LeafGridView LeafGridView
 

Index and Id Set Types

typedef Traits::LeafIndexSet LeafIndexSet
 type of leaf index set More...
 
typedef Traits::LevelIndexSet LevelIndexSet
 type of level index set More...
 
typedef Traits::GlobalIdSet GlobalIdSet
 type of global id set More...
 
typedef Traits::LocalIdSet LocalIdSet
 type of local id set More...
 

Miscellaneous Types

typedef Traits::ctype ctype
 type of vector coordinates (e.g., double) More...
 
using Communication = typename Traits::Communication
 communicator with all other processes having some part of the grid More...
 
using CommunicationType = Communication
 
typedef Traits::GlobalCoordinate GlobalCoordinate
 

Parallel grid extensions.

Methods extending the DUNE's parallel grid interface. These are basically for scattering/gathering data to/from distributed views.

typedef Traits::ExtraData ExtraData
 
UnstructuredGridPtr gridPtr_
 
const UnstructuredGridTypegrid_
 
CommunicationType comm_
 
std::array< int, 3 > cartDims_
 
std::vector< std::vector< GeometryType > > geomTypes_
 
std::vector< std::vector< int > > cellVertices_
 
std::vector< GlobalCoordinateunitOuterNormals_
 
LeafIndexSet leafIndexSet_
 
GlobalIdSet globalIdSet_
 
LocalIdSet localIdSet_
 
size_t nBndSegments_
 
template<class DataHandle >
void scatterData (DataHandle &handle) const
 Moves data from the global (all data on process) view to the distributed view. More...
 
ExtraData extraData () const
 
template<class EntitySeed >
int corners (const EntitySeed &seed) const
 
template<class EntitySeed >
GlobalCoordinate corner (const EntitySeed &seed, const int i) const
 
template<class EntitySeed >
int subEntities (const EntitySeed &seed, const int codim) const
 
template<int codim, class EntitySeedArg >
Codim< codim >::EntitySeed subEntitySeed (const EntitySeedArg &baseSeed, const int i) const
 
template<int codim>
Codim< codim >::EntitySeed subEntitySeed (const typename Codim< 1 >::EntitySeed &faceSeed, const int i) const
 
bool hasBoundaryIntersections (const typename Codim< 0 >::EntitySeed &seed) const
 
bool isBoundaryFace (const int face) const
 
bool isBoundaryFace (const typename Codim< 1 >::EntitySeed &faceSeed) const
 
int boundarySegmentIndex (const typename Codim< 0 >::EntitySeed &seed, const int face) const
 
const std::vector< GeometryType > & geomTypes (const unsigned int codim) const
 
template<class Seed >
GeometryType geometryType (const Seed &seed) const
 
int indexInInside (const typename Codim< 0 >::EntitySeed &seed, const int i) const
 
int cartesianIndexInInside (const typename Codim< 0 >::EntitySeed &seed, const int i) const
 
Codim< 0 >::EntitySeed neighbor (const typename Codim< 0 >::EntitySeed &seed, const int i) const
 
int indexInOutside (const typename Codim< 0 >::EntitySeed &seed, const int i) const
 
template<class EntitySeed >
GlobalCoordinate outerNormal (const EntitySeed &seed, const int i) const
 
template<class EntitySeed >
GlobalCoordinate unitOuterNormal (const EntitySeed &seed, const int i) const
 
template<class EntitySeed >
GlobalCoordinate centroids (const EntitySeed &seed) const
 
GlobalCoordinate copyToGlobalCoordinate (const double *coords) const
 
template<class EntitySeed >
double volumes (const EntitySeed &seed) const
 
UnstructuredGridTypecreateGrid (const std::vector< int > &n, const std::vector< double > &dx) const
 
void init ()
 
void print (std::ostream &out, const UnstructuredGridType &grid) const
 

Construction and Destruction

 PolyhedralGrid (const std::vector< int > &n, const std::vector< double > &dx)
 constructor More...
 
 PolyhedralGrid (UnstructuredGridPtr &&gridPtr)
 constructor More...
 
 PolyhedralGrid (const UnstructuredGridType &grid)
 constructor More...
 

Casting operators

 operator const UnstructuredGridType & () const
 

Size Methods

int maxLevel () const
 obtain maximal grid level More...
 
int size (int, int codim) const
 obtain number of entites on a level More...
 
int size (int codim) const
 obtain number of leaf entities More...
 
int size (int, GeometryType type) const
 obtain number of entites on a level More...
 
int size (GeometryType type) const
 returns the number of boundary segments within the macro grid More...
 
size_t numBoundarySegments () const
 obtain number of leaf entities More...
 

Parallel Data Distribution and Communication Methods

int overlapSize (int) const
 obtain size of overlap region for the leaf grid More...
 
int ghostSize (int codim) const
 obtain size of ghost region for the leaf grid More...
 
int overlapSize (int, int) const
 obtain size of overlap region for a grid level More...
 
int ghostSize (int, int codim) const
 obtain size of ghost region for a grid level More...
 
template<class DataHandle >
void communicate (DataHandle &, InterfaceType, CommunicationDirection, int) const
 communicate information on a grid level More...
 
template<class DataHandle >
void communicate (DataHandle &, InterfaceType, CommunicationDirection) const
 communicate information on leaf entities More...
 
void switchToGlobalView ()
 Switch to the global view. More...
 
void switchToDistributedView ()
 Switch to the distributed view. More...
 
const CommunicationTypecomm () const
 obtain CollectiveCommunication object More...
 
bool loadBalance ()
 rebalance the load each process has to handle More...
 
template<class DataHandle , class Data >
bool loadBalance (CommDataHandleIF< DataHandle, Data > &)
 rebalance the load each process has to handle More...
 
template<class DofManager >
bool loadBalance (DofManager &)
 rebalance the load each process has to handle More...
 
template<PartitionIteratorType pitype>
Partition< pitype >::LevelGridView levelGridView (int) const
 View for a grid level. More...
 
template<PartitionIteratorType pitype>
Partition< pitype >::LeafGridView leafGridView () const
 View for the leaf grid. More...
 
LevelGridView levelGridView (int) const
 View for a grid level for All_Partition. More...
 
LeafGridView leafGridView () const
 View for the leaf grid for All_Partition. More...
 
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::EntityPointer entityPointer (const EntitySeed &seed) const
 obtain EntityPointer from EntitySeed. More...
 
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity entity (const EntitySeed &seed) const
 obtain EntityPointer from EntitySeed. More...
 

Miscellaneous Methods

void update ()
 update grid caches More...
 

Detailed Description

template<int dim, int dimworld, typename coord_t>
class Dune::PolyhedralGrid< dim, dimworld, coord_t >

identical grid wrapper

Template Parameters
HostGridDUNE grid to be wrapped (called host grid)

Member Typedef Documentation

◆ Communication

template<int dim, int dimworld, typename coord_t >
using Dune::PolyhedralGrid< dim, dimworld, coord_t >::Communication = typename Traits::Communication

communicator with all other processes having some part of the grid

◆ CommunicationType

template<int dim, int dimworld, typename coord_t >
using Dune::PolyhedralGrid< dim, dimworld, coord_t >::CommunicationType = Communication

◆ ctype

template<int dim, int dimworld, typename coord_t >
typedef Traits::ctype Dune::PolyhedralGrid< dim, dimworld, coord_t >::ctype

type of vector coordinates (e.g., double)

◆ ExtraData

template<int dim, int dimworld, typename coord_t >
typedef Traits::ExtraData Dune::PolyhedralGrid< dim, dimworld, coord_t >::ExtraData

◆ GlobalCoordinate

template<int dim, int dimworld, typename coord_t >
typedef Traits::GlobalCoordinate Dune::PolyhedralGrid< dim, dimworld, coord_t >::GlobalCoordinate

◆ GlobalIdSet

template<int dim, int dimworld, typename coord_t >
typedef Traits::GlobalIdSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::GlobalIdSet

type of global id set

The id set assigns a unique identifier to each entity within the grid. This identifier is unique over all processes sharing this grid.

Note
Id's are neither consecutive nor necessarily of an integral type.

The global id set is a model of Dune::IdSet.

◆ HierarchicIterator

template<int dim, int dimworld, typename coord_t >
typedef Traits::HierarchicIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::HierarchicIterator

iterator over the grid hierarchy

◆ LeafGridView

template<int dim, int dimworld, typename coord_t >
typedef Partition<All_Partition>::LeafGridView Dune::PolyhedralGrid< dim, dimworld, coord_t >::LeafGridView

◆ LeafIndexSet

template<int dim, int dimworld, typename coord_t >
typedef Traits::LeafIndexSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::LeafIndexSet

type of leaf index set

The index set assigns consecutive indices to the entities of the leaf grid. The indices are of integral type and can be used to access arrays.

The leaf index set is a model of Dune::IndexSet.

◆ LeafIntersectionIterator

template<int dim, int dimworld, typename coord_t >
typedef Traits::LeafIntersectionIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::LeafIntersectionIterator

iterator over intersections with other entities on the leaf level

◆ LevelGridView

template<int dim, int dimworld, typename coord_t >
typedef Partition<All_Partition>::LevelGridView Dune::PolyhedralGrid< dim, dimworld, coord_t >::LevelGridView

View types for All_Partition.

◆ LevelIndexSet

template<int dim, int dimworld, typename coord_t >
typedef Traits::LevelIndexSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::LevelIndexSet

type of level index set

The index set assigns consecutive indices to the entities of a grid level. The indices are of integral type and can be used to access arrays.

The level index set is a model of Dune::IndexSet.

◆ LevelIntersectionIterator

template<int dim, int dimworld, typename coord_t >
typedef Traits::LevelIntersectionIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::LevelIntersectionIterator

iterator over intersections with other entities on the same level

◆ LocalIdSet

template<int dim, int dimworld, typename coord_t >
typedef Traits::LocalIdSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::LocalIdSet

type of local id set

The id set assigns a unique identifier to each entity within the grid. This identifier needs only to be unique over this process.

Though the local id set may be identical to the global id set, it is often implemented more efficiently.

Note
Ids are neither consecutive nor necessarily of an integral type.
Local ids need not be compatible with global ids. Also, no mapping from local ids to global ones needs to exist.

The global id set is a model of Dune::IdSet.

◆ Traits

template<int dim, int dimworld, typename coord_t >
typedef GridFamily::Traits Dune::PolyhedralGrid< dim, dimworld, coord_t >::Traits

type of the grid traits

◆ UnstructuredGridPtr

template<int dim, int dimworld, typename coord_t >
typedef std::unique_ptr< UnstructuredGridType, UnstructuredGridDeleter > Dune::PolyhedralGrid< dim, dimworld, coord_t >::UnstructuredGridPtr

◆ UnstructuredGridType

template<int dim, int dimworld, typename coord_t >
typedef UnstructuredGrid Dune::PolyhedralGrid< dim, dimworld, coord_t >::UnstructuredGridType

Constructor & Destructor Documentation

◆ PolyhedralGrid() [1/3]

template<int dim, int dimworld, typename coord_t >
Dune::PolyhedralGrid< dim, dimworld, coord_t >::PolyhedralGrid ( const std::vector< int > &  n,
const std::vector< double > &  dx 
)
inlineexplicit

constructor

Parameters
[in]deckOpm Eclipse deck
[in]poreVolumesvector with pore volumes (default = empty)

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::init().

◆ PolyhedralGrid() [2/3]

template<int dim, int dimworld, typename coord_t >
Dune::PolyhedralGrid< dim, dimworld, coord_t >::PolyhedralGrid ( UnstructuredGridPtr &&  gridPtr)
inlineexplicit

constructor

Note
The grid will take ownership of the supplied grid pointer.
Parameters
[in]ugpointer to UnstructuredGrid

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::init().

◆ PolyhedralGrid() [3/3]

template<int dim, int dimworld, typename coord_t >
Dune::PolyhedralGrid< dim, dimworld, coord_t >::PolyhedralGrid ( const UnstructuredGridType grid)
inlineexplicit

constructor

The references to ug are stored in the grid. Therefore, they must remain valid until the grid is destroyed.

Parameters
[in]ugUnstructuredGrid reference

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::init().

Member Function Documentation

◆ adapt() [1/2]

template<int dim, int dimworld, typename coord_t >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::adapt ( )
inline

◆ adapt() [2/2]

template<int dim, int dimworld, typename coord_t >
template<class DataHandle >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::adapt ( DataHandle &  )
inline

Parameters
handlehandler for restriction and prolongation operations which is a Model of the AdaptDataHandleInterface class.

◆ allocateGrid()

template<int dim, int dimworld, typename coord_t >
static UnstructuredGridPtr Dune::PolyhedralGrid< dim, dimworld, coord_t >::allocateGrid ( std::size_t  nCells,
std::size_t  nFaces,
std::size_t  nFaceNodes,
std::size_t  nCellFaces,
std::size_t  nNodes 
)
inlinestatic

References allocate_grid().

◆ boundarySegmentIndex()

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::boundarySegmentIndex ( const typename Codim< 0 >::EntitySeed &  seed,
const int  face 
) const
inline

◆ cartesianIndexInInside()

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::cartesianIndexInInside ( const typename Codim< 0 >::EntitySeed &  seed,
const int  i 
) const
inline

◆ centroids()

◆ comm()

template<int dim, int dimworld, typename coord_t >
const CommunicationType & Dune::PolyhedralGrid< dim, dimworld, coord_t >::comm ( ) const
inline

obtain CollectiveCommunication object

The CollectiveCommunication object should be used to globally communicate information between all processes sharing this grid.

Note
The CollectiveCommunication object returned is identical to the one returned by the host grid.

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::comm_.

Referenced by Dune::PolyhedralGridView< dim, dimworld, coord_t, defaultpitype >::comm().

◆ communicate() [1/2]

template<int dim, int dimworld, typename coord_t >
template<class DataHandle >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::communicate ( DataHandle &  ,
InterfaceType  ,
CommunicationDirection   
) const
inline

communicate information on leaf entities

Parameters
dataHandlecommunication data handle (user defined)
[in]interfacecommunication interface (one of InteriorBorder_InteriorBorder_Interface, InteriorBorder_All_Interface, Overlap_OverlapFront_Interface, Overlap_All_Interface, All_All_Interface)
[in]directioncommunication direction (one of ForwardCommunication, BackwardCommunication)

◆ communicate() [2/2]

template<int dim, int dimworld, typename coord_t >
template<class DataHandle >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::communicate ( DataHandle &  ,
InterfaceType  ,
CommunicationDirection  ,
int   
) const
inline

communicate information on a grid level

Parameters
dataHandlecommunication data handle (user defined)
[in]interfacecommunication interface (one of InteriorBorder_InteriorBorder_Interface, InteriorBorder_All_Interface, Overlap_OverlapFront_Interface, Overlap_All_Interface, All_All_Interface)
[in]directioncommunication direction (one of ForwardCommunication or BackwardCommunication)
[in]levelgrid level to communicate

◆ computeGeometry()

template<int dim, int dimworld, typename coord_t >
static void Dune::PolyhedralGrid< dim, dimworld, coord_t >::computeGeometry ( UnstructuredGridPtr ug)
inlinestatic

References compute_geometry().

◆ copyToGlobalCoordinate()

◆ corner()

◆ corners()

template<int dim, int dimworld, typename coord_t >
template<class EntitySeed >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::corners ( const EntitySeed &  seed) const
inline

◆ createGrid()

template<int dim, int dimworld, typename coord_t >
UnstructuredGridType * Dune::PolyhedralGrid< dim, dimworld, coord_t >::createGrid ( const std::vector< int > &  n,
const std::vector< double > &  dx 
) const
inlineprotected

◆ entity()

template<int dim, int dimworld, typename coord_t >
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity Dune::PolyhedralGrid< dim, dimworld, coord_t >::entity ( const EntitySeed &  seed) const
inline

obtain EntityPointer from EntitySeed.

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::extraData().

◆ entityPointer()

template<int dim, int dimworld, typename coord_t >
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::EntityPointer Dune::PolyhedralGrid< dim, dimworld, coord_t >::entityPointer ( const EntitySeed &  seed) const
inline

obtain EntityPointer from EntitySeed.

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::extraData().

◆ extraData()

◆ geometryType()

template<int dim, int dimworld, typename coord_t >
template<class Seed >
GeometryType Dune::PolyhedralGrid< dim, dimworld, coord_t >::geometryType ( const Seed &  seed) const
inline

◆ geomTypes()

template<int dim, int dimworld, typename coord_t >
const std::vector< GeometryType > & Dune::PolyhedralGrid< dim, dimworld, coord_t >::geomTypes ( const unsigned int  codim) const
inline

◆ getIJK()

template<int dim, int dimworld, typename coord_t >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::getIJK ( const int  c,
std::array< int, 3 > &  ijk 
) const
inline

◆ getMark()

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::getMark ( const typename Codim< 0 >::Entity &  ) const
inline

◆ ghostSize() [1/2]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::ghostSize ( int  codim) const
inline

obtain size of ghost region for the leaf grid

Parameters
[in]codimcodimension for with the information is desired

Referenced by Dune::PolyhedralGridView< dim, dimworld, coord_t, defaultpitype >::ghostSize(), and Dune::PolyhedralGrid< dim, dimworld, coord_t >::ghostSize().

◆ ghostSize() [2/2]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::ghostSize ( int  ,
int  codim 
) const
inline

obtain size of ghost region for a grid level

Parameters
[in]levelgrid level (0, ..., maxLevel())
[in]codimcodimension (0, ..., dimension)

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::ghostSize().

◆ globalCell()

◆ globalCellPtr()

template<int dim, int dimworld, typename coord_t >
const int * Dune::PolyhedralGrid< dim, dimworld, coord_t >::globalCellPtr ( ) const
inline

◆ globalIdSet()

template<int dim, int dimworld, typename coord_t >
const GlobalIdSet & Dune::PolyhedralGrid< dim, dimworld, coord_t >::globalIdSet ( ) const
inline

◆ globalRefine()

template<int dim, int dimworld, typename coord_t >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::globalRefine ( int  )
inline

◆ hasBoundaryIntersections()

template<int dim, int dimworld, typename coord_t >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::hasBoundaryIntersections ( const typename Codim< 0 >::EntitySeed &  seed) const
inline

◆ indexInInside()

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::indexInInside ( const typename Codim< 0 >::EntitySeed &  seed,
const int  i 
) const
inline

◆ indexInOutside()

◆ init()

◆ isBoundaryFace() [1/2]

◆ isBoundaryFace() [2/2]

template<int dim, int dimworld, typename coord_t >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::isBoundaryFace ( const typename Codim< 1 >::EntitySeed &  faceSeed) const
inline

◆ lbegin() [1/2]

template<int dim, int dimworld, typename coord_t >
template<int codim>
Codim< codim >::LevelIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::lbegin ( const int  ) const
inline

◆ lbegin() [2/2]

template<int dim, int dimworld, typename coord_t >
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LevelIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::lbegin ( const int  ) const
inline

◆ leafbegin() [1/2]

template<int dim, int dimworld, typename coord_t >
template<int codim>
Codim< codim >::LeafIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafbegin ( ) const
inline

◆ leafbegin() [2/2]

template<int dim, int dimworld, typename coord_t >
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LeafIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafbegin ( ) const
inline

◆ leafend() [1/2]

template<int dim, int dimworld, typename coord_t >
template<int codim>
Codim< codim >::LeafIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafend ( ) const
inline

◆ leafend() [2/2]

template<int dim, int dimworld, typename coord_t >
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LeafIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafend ( ) const
inline

◆ leafGridView() [1/2]

template<int dim, int dimworld, typename coord_t >
template<PartitionIteratorType pitype>
Partition< pitype >::LeafGridView Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafGridView ( ) const
inline

View for the leaf grid.

◆ leafGridView() [2/2]

template<int dim, int dimworld, typename coord_t >
LeafGridView Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafGridView ( ) const
inline

View for the leaf grid for All_Partition.

◆ leafIndexSet()

◆ lend() [1/2]

template<int dim, int dimworld, typename coord_t >
template<int codim>
Codim< codim >::LevelIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::lend ( const int  ) const
inline

◆ lend() [2/2]

template<int dim, int dimworld, typename coord_t >
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::LevelIterator Dune::PolyhedralGrid< dim, dimworld, coord_t >::lend ( const int  ) const
inline

◆ levelGridView() [1/2]

template<int dim, int dimworld, typename coord_t >
template<PartitionIteratorType pitype>
Partition< pitype >::LevelGridView Dune::PolyhedralGrid< dim, dimworld, coord_t >::levelGridView ( int  ) const
inline

View for a grid level.

◆ levelGridView() [2/2]

template<int dim, int dimworld, typename coord_t >
LevelGridView Dune::PolyhedralGrid< dim, dimworld, coord_t >::levelGridView ( int  ) const
inline

View for a grid level for All_Partition.

◆ levelIndexSet()

template<int dim, int dimworld, typename coord_t >
const LevelIndexSet & Dune::PolyhedralGrid< dim, dimworld, coord_t >::levelIndexSet ( int  ) const
inline

◆ loadBalance() [1/3]

template<int dim, int dimworld, typename coord_t >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::loadBalance ( )
inline

rebalance the load each process has to handle

A parallel grid is redistributed such that each process has about the same load (e.g., the same number of leaf entites).

Note
DUNE does not specify, how the load is measured.
Returns
true, if the grid has changed.

◆ loadBalance() [2/3]

template<int dim, int dimworld, typename coord_t >
template<class DataHandle , class Data >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::loadBalance ( CommDataHandleIF< DataHandle, Data > &  )
inline

rebalance the load each process has to handle

A parallel grid is redistributed such that each process has about the same load (e.g., the same number of leaf entites).

The data handle is used to communicate the data associated with entities that move from one process to another.

Note
DUNE does not specify, how the load is measured.
Parameters
datahandlecommunication data handle (user defined)
Returns
true, if the grid has changed.

◆ loadBalance() [3/3]

template<int dim, int dimworld, typename coord_t >
template<class DofManager >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::loadBalance ( DofManager &  )
inline

rebalance the load each process has to handle

A parallel grid is redistributed such that each process has about the same load (e.g., the same number of leaf entites).

The data handle is used to communicate the data associated with entities that move from one process to another.

Note
DUNE does not specify, how the load is measured.
Parameters
dataHandledata handle following the ALUGrid interface
Returns
true, if the grid has changed.

◆ localIdSet()

template<int dim, int dimworld, typename coord_t >
const LocalIdSet & Dune::PolyhedralGrid< dim, dimworld, coord_t >::localIdSet ( ) const
inline

◆ logicalCartesianSize()

template<int dim, int dimworld, typename coord_t >
const std::array< int, 3 > & Dune::PolyhedralGrid< dim, dimworld, coord_t >::logicalCartesianSize ( ) const
inline

◆ mark()

template<int dim, int dimworld, typename coord_t >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::mark ( int  ,
const typename Codim< 0 >::Entity &   
)
inline

◆ maxLevel()

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::maxLevel ( ) const
inline

obtain maximal grid level

Grid levels are numbered 0, ..., L, where L is the value returned by this method.

Returns
maximal grid level

◆ neighbor()

template<int dim, int dimworld, typename coord_t >
Codim< 0 >::EntitySeed Dune::PolyhedralGrid< dim, dimworld, coord_t >::neighbor ( const typename Codim< 0 >::EntitySeed &  seed,
const int  i 
) const
inline

◆ numBoundarySegments()

template<int dim, int dimworld, typename coord_t >
size_t Dune::PolyhedralGrid< dim, dimworld, coord_t >::numBoundarySegments ( ) const
inline

obtain number of leaf entities

Parameters
[in]typegeometry type to consider
Returns
number of leaf entities with a geometry of type type

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::nBndSegments_.

◆ operator const UnstructuredGridType &()

template<int dim, int dimworld, typename coord_t >
Dune::PolyhedralGrid< dim, dimworld, coord_t >::operator const UnstructuredGridType & ( ) const
inline

◆ outerNormal()

template<int dim, int dimworld, typename coord_t >
template<class EntitySeed >
GlobalCoordinate Dune::PolyhedralGrid< dim, dimworld, coord_t >::outerNormal ( const EntitySeed &  seed,
const int  i 
) const
inline

◆ overlapSize() [1/2]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::overlapSize ( int  ) const
inline

obtain size of overlap region for the leaf grid

Parameters
[in]codimcodimension for with the information is desired

Referenced by Dune::PolyhedralGridView< dim, dimworld, coord_t, defaultpitype >::overlapSize().

◆ overlapSize() [2/2]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::overlapSize ( int  ,
int   
) const
inline

obtain size of overlap region for a grid level

Parameters
[in]levelgrid level (0, ..., maxLevel())
[in]codimcodimension (0, ..., dimension)

◆ postAdapt()

template<int dim, int dimworld, typename coord_t >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::postAdapt ( )
inline

◆ preAdapt()

template<int dim, int dimworld, typename coord_t >
bool Dune::PolyhedralGrid< dim, dimworld, coord_t >::preAdapt ( )
inline

◆ print()

◆ scatterData()

template<int dim, int dimworld, typename coord_t >
template<class DataHandle >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::scatterData ( DataHandle &  handle) const
inline

Moves data from the global (all data on process) view to the distributed view.

This method does not do communication but assumes that the global grid is present on every process and simply copies data to the distributed view.

Template Parameters
DataHandleThe type of the data handle describing the data and responsible for gathering and scattering the data.
Parameters
handleThe data handle describing the data and responsible for gathering and scattering the data.

◆ size() [1/4]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::size ( GeometryType  type) const
inline

returns the number of boundary segments within the macro grid

Returns
number of boundary segments within the macro grid

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::size().

◆ size() [2/4]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::size ( int  codim) const
inline

obtain number of leaf entities

Parameters
[in]codimcodimension to consider
Returns
number of leaf entities of codimension codim

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::grid_, UnstructuredGrid::number_of_cells, UnstructuredGrid::number_of_faces, and UnstructuredGrid::number_of_nodes.

◆ size() [3/4]

template<int dim, int dimworld, typename coord_t >
int Dune::PolyhedralGrid< dim, dimworld, coord_t >::size ( int  ,
GeometryType  type 
) const
inline

obtain number of entites on a level

Parameters
[in]levellevel to consider
[in]typegeometry type to consider
Returns
number of entities with a geometry of type type on grid level level.

References Dune::PolyhedralGrid< dim, dimworld, coord_t >::size().

◆ size() [4/4]

◆ subEntities()

◆ subEntitySeed() [1/2]

template<int dim, int dimworld, typename coord_t >
template<int codim, class EntitySeedArg >
Codim< codim >::EntitySeed Dune::PolyhedralGrid< dim, dimworld, coord_t >::subEntitySeed ( const EntitySeedArg &  baseSeed,
const int  i 
) const
inline

◆ subEntitySeed() [2/2]

template<int dim, int dimworld, typename coord_t >
template<int codim>
Codim< codim >::EntitySeed Dune::PolyhedralGrid< dim, dimworld, coord_t >::subEntitySeed ( const typename Codim< 1 >::EntitySeed &  faceSeed,
const int  i 
) const
inline

◆ switchToDistributedView()

template<int dim, int dimworld, typename coord_t >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::switchToDistributedView ( )
inline

Switch to the distributed view.

◆ switchToGlobalView()

template<int dim, int dimworld, typename coord_t >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::switchToGlobalView ( )
inline

Switch to the global view.

◆ unitOuterNormal()

template<int dim, int dimworld, typename coord_t >
template<class EntitySeed >
GlobalCoordinate Dune::PolyhedralGrid< dim, dimworld, coord_t >::unitOuterNormal ( const EntitySeed &  seed,
const int  i 
) const
inline

◆ update()

template<int dim, int dimworld, typename coord_t >
void Dune::PolyhedralGrid< dim, dimworld, coord_t >::update ( )
inline

update grid caches

This method has to be called whenever the underlying host grid changes.

Note
If you adapt the host grid through this geometry grid's adaptation or load balancing methods, update is automatically called.

◆ volumes()

template<int dim, int dimworld, typename coord_t >
template<class EntitySeed >
double Dune::PolyhedralGrid< dim, dimworld, coord_t >::volumes ( const EntitySeed &  seed) const
inline

Member Data Documentation

◆ cartDims_

template<int dim, int dimworld, typename coord_t >
std::array< int, 3 > Dune::PolyhedralGrid< dim, dimworld, coord_t >::cartDims_
protected

◆ cellVertices_

◆ comm_

template<int dim, int dimworld, typename coord_t >
CommunicationType Dune::PolyhedralGrid< dim, dimworld, coord_t >::comm_
protected

◆ geomTypes_

template<int dim, int dimworld, typename coord_t >
std::vector< std::vector< GeometryType > > Dune::PolyhedralGrid< dim, dimworld, coord_t >::geomTypes_
protected

◆ globalIdSet_

template<int dim, int dimworld, typename coord_t >
GlobalIdSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::globalIdSet_
mutableprotected

◆ grid_

◆ gridPtr_

template<int dim, int dimworld, typename coord_t >
UnstructuredGridPtr Dune::PolyhedralGrid< dim, dimworld, coord_t >::gridPtr_
protected

◆ leafIndexSet_

template<int dim, int dimworld, typename coord_t >
LeafIndexSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::leafIndexSet_
mutableprotected

◆ localIdSet_

template<int dim, int dimworld, typename coord_t >
LocalIdSet Dune::PolyhedralGrid< dim, dimworld, coord_t >::localIdSet_
mutableprotected

◆ nBndSegments_

template<int dim, int dimworld, typename coord_t >
size_t Dune::PolyhedralGrid< dim, dimworld, coord_t >::nBndSegments_
protected

◆ unitOuterNormals_

template<int dim, int dimworld, typename coord_t >
std::vector< GlobalCoordinate > Dune::PolyhedralGrid< dim, dimworld, coord_t >::unitOuterNormals_
protected

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