Dune Core Modules (2.5.2)
grid wrapper replacing the geometries More...
#include <dune/grid/geometrygrid/grid.hh>
Classes | |
struct | Codim |
traits structure containing types for a codimension More... | |
Traits | |
typedef GridFamily::Traits | Traits |
type of the grid traits | |
Grid View Types | |
typedef GridFamily::Traits::LeafGridView | LeafGridView |
type of view for leaf grid | |
typedef GridFamily::Traits::LevelGridView | LevelGridView |
type of view for level grid | |
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... | |
Construction and Destruction | |
GeometryGrid (HostGrid &hostGrid, CoordFunction &coordFunction, const Allocator &allocator=Allocator()) | |
constructor More... | |
GeometryGrid (HostGrid *hostGrid, CoordFunction *coordFunction, const Allocator &allocator=Allocator()) | |
constructor More... | |
GeometryGrid (HostGrid *hostGrid, const Allocator &allocator=Allocator()) | |
constructor More... | |
~GeometryGrid () | |
destructor | |
Size Methods | |
int | maxLevel () const |
obtain maximal grid level More... | |
int | size (int level, 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 level, GeometryType type) const |
obtain number of entites on a level More... | |
int | size (GeometryType type) const |
obtain number of leaf entities More... | |
size_t | numBoundarySegments () const |
returns the number of boundary segments within the macro grid More... | |
Parallel Data Distribution and Communication Methods | |
int | overlapSize (int codim) 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 level, int codim) const |
obtain size of overlap region for a grid level More... | |
int | ghostSize (int level, int codim) const |
obtain size of ghost region for a grid level More... | |
template<class DataHandle , class Data > | |
void | communicate (CommDataHandleIF< DataHandle, Data > &dataHandle, InterfaceType interface, CommunicationDirection direction, int level) const |
communicate information on a grid level More... | |
template<class DataHandle , class Data > | |
void | communicate (CommDataHandleIF< DataHandle, Data > &dataHandle, InterfaceType interface, CommunicationDirection direction) const |
communicate information on leaf entities More... | |
const CollectiveCommunication & | comm () const |
obtain CollectiveCommunication object More... | |
template<class EntitySeed > | |
Traits::template Codim< EntitySeed::codimension >::Entity | entity (const EntitySeed &seed) const |
obtain Entity from EntitySeed More... | |
Grid Views | |
LevelGridView | levelGridView (int level) const |
View for a grid level. | |
LeafGridView | leafGridView () const |
View for the leaf grid. | |
Miscellaneous Methods | |
const HostGrid & | hostGrid () const |
obtain constant reference to the host grid | |
HostGrid & | hostGrid () |
obtain mutable reference to the host grid | |
void | update () |
update grid caches More... | |
const CoordFunction & | coordFunction () const |
obtain constant reference to the coordinate function | |
CoordFunction & | coordFunction () |
obtain mutable reference to the coordinate function. | |
template<class InterfaceType > | |
static std::conditional< std::is_reference< InterfaceType >::value, typenamestd::add_lvalue_reference< typenameReturnImplementationType< typenamestd::remove_reference< InterfaceType >::type >::ImplementationType >::type, typenamestd::remove_const< typenameReturnImplementationType< typenamestd::remove_reference< InterfaceType >::type >::ImplementationType >::type >::type | getRealImplementation (InterfaceType &&i) |
return real implementation of interface class | |
Detailed Description
class Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >
grid wrapper replacing the geometries
GeometryGrid wraps another DUNE grid and replaces its geometry by the generic geometries from dune-grid. These are linear (respectively n-linear) DUNE geometries interpolating some given corners. These corners are obtained by mapping the corners of the host grid's geometry (also called host geometry) by a coordinate function.
An example of a coordinate function is given by the following code:
- Note
- A dune-fem Function can be used as a coordinate function. The evaluation of discrete functions would be very expensive, though.
- Template Parameters
-
HostGrid DUNE grid to be wrapped (called host grid) CoordFunction coordinate function
Member Typedef Documentation
◆ GlobalIdSet
typedef Traits::GlobalIdSet Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::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.
◆ LeafIndexSet
typedef Traits::LeafIndexSet Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::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.
◆ LevelIndexSet
typedef Traits::LevelIndexSet Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::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.
◆ LocalIdSet
typedef Traits::LocalIdSet Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::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.
Constructor & Destructor Documentation
◆ GeometryGrid() [1/3]
|
inline |
constructor
The references to host grid and coordinate function are stored in the grid. Therefore, they must remain valid until the grid is destroyed.
- Parameters
-
[in] hostGrid reference to the grid to wrap [in] coordFunction reference to the coordinate function [in] allocator storage allocator
◆ GeometryGrid() [2/3]
|
inline |
constructor
The grid takes ownership of the pointers to host grid and coordinate function. They will be deleted when the grid is destroyed.
- Parameters
-
[in] hostGrid pointer to the grid to wrap [in] coordFunction pointer to the coordinate function [in] allocator storage allocator
◆ GeometryGrid() [3/3]
|
inline |
constructor
The grid takes ownership of the pointer to host grid and it will be deleted when the grid is destroyed. The coordinate function is automatically constructed.
- Parameters
-
[in] hostGrid pointer to the grid to wrap [in] allocator storage allocator
Member Function Documentation
◆ comm()
|
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::GeometryGrid< HostGrid, CoordFunction, Allocator >::hostGrid().
◆ communicate() [1/2]
|
inline |
communicate information on leaf entities
- Parameters
-
dataHandle communication data handle (user defined) [in] interface communication interface (one of InteriorBorder_InteriorBorder_Interface, InteriorBorder_All_Interface, Overlap_OverlapFront_Interface, Overlap_All_Interface, All_All_Interface) [in] direction communication direction (one of ForwardCommunication, BackwardCommunication)
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::leafGridView().
◆ communicate() [2/2]
|
inline |
communicate information on a grid level
- Parameters
-
dataHandle communication data handle (user defined) [in] interface communication interface (one of InteriorBorder_InteriorBorder_Interface, InteriorBorder_All_Interface, Overlap_OverlapFront_Interface, Overlap_All_Interface, All_All_Interface) [in] direction communication direction (one of ForwardCommunication or BackwardCommunication) [in] level grid level to communicate
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::levelGridView().
◆ entity()
|
inline |
obtain Entity from EntitySeed
EntitySeed survives to a grid modification which only changes the grid coordinates. Therefore it is consistent to use an EntitySeed to rebuild an Entity after this kind of grid modification.
An example of this is given by the following code:
◆ ghostSize() [1/2]
|
inline |
obtain size of ghost region for the leaf grid
- Parameters
-
[in] codim codimension for with the information is desired
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::leafGridView().
◆ ghostSize() [2/2]
|
inline |
obtain size of ghost region for a grid level
- Parameters
-
[in] level grid level (0, ..., maxLevel()) [in] codim codimension (0, ..., dimension)
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::levelGridView().
◆ maxLevel()
|
inline |
obtain maximal grid level
Grid levels are numbered 0, ..., L, where L is the value returned by this method.
- Returns
- maximal grid level
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::hostGrid().
Referenced by Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::update().
◆ numBoundarySegments()
|
inline |
returns the number of boundary segments within the macro grid
- Returns
- number of boundary segments within the macro grid
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::hostGrid().
◆ overlapSize() [1/2]
|
inline |
obtain size of overlap region for the leaf grid
- Parameters
-
[in] codim codimension for with the information is desired
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::leafGridView().
◆ overlapSize() [2/2]
|
inline |
obtain size of overlap region for a grid level
- Parameters
-
[in] level grid level (0, ..., maxLevel()) [in] codim codimension (0, ..., dimension)
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::levelGridView().
◆ size() [1/4]
|
inline |
obtain number of leaf entities
- Returns
- number of leaf entities with a geometry of type type
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::leafGridView().
◆ size() [2/4]
|
inline |
obtain number of leaf entities
- Parameters
-
[in] codim codimension to consider
- Returns
- number of leaf entities of codimension codim
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::leafGridView().
◆ size() [3/4]
|
inline |
obtain number of entites on a level
- Parameters
-
[in] level level to consider [in] type geometry type to consider
- Returns
- number of entities with a geometry of type type on grid level level.
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::levelGridView().
◆ size() [4/4]
|
inline |
obtain number of entites on a level
- Parameters
-
[in] level level to consider [in] codim codimension to consider
- Returns
- number of entities of codimension codim on grid level level.
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::levelGridView().
◆ 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.
References Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::coordFunction(), and Dune::GeometryGrid< HostGrid, CoordFunction, Allocator >::maxLevel().
The documentation for this class was generated from the following files:
- dune/grid/geometrygrid/declaration.hh
- dune/grid/geometrygrid/grid.hh