dune-grid 2.9.0
|
[ provides Dune::Grid ] More...
#include <dune/grid/yaspgrid.hh>
Public Types | |
typedef Coordinates::ctype | ctype |
Type used for coordinates. More... | |
using | Communication = typename Base::Communication |
using | CollectiveCommunicationType = typename Base::Communication |
typedef ReservedVector< YGridLevel, 32 >::const_iterator | YGridLevelIterator |
Iterator over the grid levels. More... | |
typedef bigunsignedint< dim *yaspgrid_dim_bits+yaspgrid_level_bits+dim > | PersistentIndexType |
typedef YaspGridFamily< dim, Coordinates > | GridFamily |
the GridFamily of this grid More... | |
typedef YaspGridFamily< dim, Coordinates >::Traits | Traits |
typedef YaspIndexSet< YaspGrid< dim, Coordinates >, false > | LevelIndexSetType |
typedef YaspIndexSet< YaspGrid< dim, Coordinates >, true > | LeafIndexSetType |
typedef YaspGlobalIdSet< YaspGrid< dim, Coordinates > > | GlobalIdSetType |
Public Member Functions | |
const Torus< Communication, dim > & | torus () const |
return reference to torus More... | |
int | globalSize (int i) const |
return number of cells on finest level in given direction on all processors More... | |
iTupel | globalSize () const |
return number of cells on finest level on all processors More... | |
int | levelSize (int l, int i) const |
return size of the grid (in cells) on level l in direction i More... | |
iTupel | levelSize (int l) const |
return size vector of the grid (in cells) on level l More... | |
bool | isPeriodic (int i) const |
return whether the grid is periodic in direction i More... | |
bool | getRefineOption () const |
YGridLevelIterator | begin () const |
return iterator pointing to coarsest level More... | |
YGridLevelIterator | begin (int i) const |
return iterator pointing to given level More... | |
YGridLevelIterator | end () const |
return iterator pointing to one past the finest level More... | |
YaspGrid (const Coordinates &coordinates, std::bitset< dim > periodic=std::bitset< dim >(0ULL), int overlap=1, Communication comm=Communication(), const Yasp::Partitioning< dim > *partitioner=defaultPartitioner()) | |
template<class C = Coordinates, typename std::enable_if_t< std::is_same_v< C, EquidistantCoordinates< ctype, dim > >, int > = 0> | |
YaspGrid (Dune::FieldVector< ctype, dim > L, std::array< int, std::size_t{dim}> s, std::bitset< std::size_t{dim}> periodic=std::bitset< std::size_t{dim}>{0ULL}, int overlap=1, Communication comm=Communication(), const Yasp::Partitioning< dim > *partitioner=defaultPartitioner()) | |
template<class C = Coordinates, typename std::enable_if_t< std::is_same_v< C, EquidistantOffsetCoordinates< ctype, dim > >, int > = 0> | |
YaspGrid (Dune::FieldVector< ctype, dim > lowerleft, Dune::FieldVector< ctype, dim > upperright, std::array< int, std::size_t{dim}> s, std::bitset< std::size_t{dim}> periodic=std::bitset< std::size_t{dim}>(0ULL), int overlap=1, Communication comm=Communication(), const Yasp::Partitioning< dim > *partitioner=defaultPartitioner()) | |
template<class C = Coordinates, typename std::enable_if_t< std::is_same_v< C, TensorProductCoordinates< ctype, dim > >, int > = 0> | |
YaspGrid (std::array< std::vector< ctype >, std::size_t{dim}> coords, std::bitset< std::size_t{dim}> periodic=std::bitset< std::size_t{dim}>(0ULL), int overlap=1, Communication comm=Communication(), const Yasp::Partitioning< dim > *partitioner=defaultPartitioner()) | |
Standard constructor for a tensorproduct YaspGrid. More... | |
int | maxLevel () const |
void | globalRefine (int refCount) |
refine the grid refCount times. More... | |
void | refineOptions (bool keepPhysicalOverlap) |
set options for refinement More... | |
bool | mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e) |
Marks an entity to be refined/coarsened in a subsequent adapt. More... | |
int | getMark (const typename Traits::template Codim< 0 >::Entity &e) const |
returns adaptation mark for given entity More... | |
bool | adapt () |
map adapt to global refine More... | |
bool | preAdapt () |
returns true, if the grid will be coarsened More... | |
void | postAdapt () |
clean up some markers More... | |
template<int cd, PartitionIteratorType pitype> | |
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator | lbegin (int level) const |
one past the end on this level More... | |
template<int cd, PartitionIteratorType pitype> | |
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator | lend (int level) const |
Iterator to one past the last entity of given codim on level for partition type. More... | |
template<int cd> | |
Traits::template Codim< cd >::template Partition< All_Partition >::LevelIterator | lbegin (int level) const |
version without second template parameter for convenience More... | |
template<int cd> | |
Traits::template Codim< cd >::template Partition< All_Partition >::LevelIterator | lend (int level) const |
version without second template parameter for convenience More... | |
template<int cd, PartitionIteratorType pitype> | |
Traits::template Codim< cd >::template Partition< pitype >::LeafIterator | leafbegin () const |
return LeafIterator which points to the first entity in maxLevel More... | |
template<int cd, PartitionIteratorType pitype> | |
Traits::template Codim< cd >::template Partition< pitype >::LeafIterator | leafend () const |
return LeafIterator which points behind the last entity in maxLevel More... | |
template<int cd> | |
Traits::template Codim< cd >::template Partition< All_Partition >::LeafIterator | leafbegin () const |
return LeafIterator which points to the first entity in maxLevel More... | |
template<int cd> | |
Traits::template Codim< cd >::template Partition< All_Partition >::LeafIterator | leafend () const |
return LeafIterator which points behind the last entity in maxLevel More... | |
template<typename Seed > | |
Traits::template Codim< Seed::codimension >::Entity | entity (const Seed &seed) const |
int | overlapSize (int level, int codim) const |
return size (= distance in graph) of overlap region More... | |
int | overlapSize (int odim) const |
return size (= distance in graph) of overlap region More... | |
int | ghostSize (int level, int codim) const |
return size (= distance in graph) of ghost region More... | |
int | ghostSize (int codim) const |
return size (= distance in graph) of ghost region More... | |
int | size (int level, int codim) const |
number of entities per level and codim in this process More... | |
int | size (int codim) const |
number of leaf entities per codim in this process More... | |
int | size (int level, GeometryType type) const |
number of entities per level and geometry type in this process More... | |
int | size (GeometryType type) const |
number of leaf entities per geometry type in this process More... | |
size_t | numBoundarySegments () const |
returns the number of boundary segments within the macro grid More... | |
const Dune::FieldVector< ctype, dim > & | domainSize () const |
returns the size of the physical domain More... | |
template<class DataHandleImp , class DataType > | |
void | communicate (CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir, int level) const |
template<class DataHandleImp , class DataType > | |
void | communicate (CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir) const |
template<class DataHandle , int codim> | |
void | communicateCodim (DataHandle &data, InterfaceType iftype, CommunicationDirection dir, int level) const |
const Traits::GlobalIdSet & | globalIdSet () const |
const Traits::LocalIdSet & | localIdSet () const |
const Traits::LevelIndexSet & | levelIndexSet (int level) const |
const Traits::LeafIndexSet & | leafIndexSet () const |
const Communication & | comm () const |
return a communication object More... | |
Traits::LevelGridView | levelGridView (int level) const |
View for a grid level for All_Partition. More... | |
Traits::LeafGridView | leafGridView () const |
View for the leaf grid for All_Partition. More... | |
bool | mark (int refCount, const typename Traits ::template Codim< 0 >::Entity &e) |
Marks an entity to be refined/coarsened in a subsequent adapt. More... | |
bool | loadBalance () |
default implementation of load balance does nothing and returns false More... | |
bool | loadBalance (DataHandle &data) |
default implementation of load balance does nothing and returns false More... | |
Adaptivity and grid refinement | |
bool | mark (int refCount, const typename Codim< 0 >::Entity &e) |
Marks an entity to be refined/coarsened in a subsequent adapt. More... | |
int | getMark (const typename Codim< 0 >::Entity &e) const |
returns adaptation mark for given entity More... | |
Static Public Member Functions | |
static const YLoadBalanceDefault< dim > * | defaultLoadbalancer () |
static const Yasp::Partitioning< dim > * | defaultPartitioner () |
Static Public Attributes | |
Exported constants | |
static constexpr int | dimension |
The dimension of the grid. More... | |
static constexpr int | dimensionworld |
The dimension of the world the grid lives in. More... | |
Protected Types | |
typedef const YaspGrid< dim, Coordinates > | GridImp |
Protected Member Functions | |
void | makelevel (const Coordinates &coords, std::bitset< dim > periodic, iTupel o_interior, int overlap) |
Make a new YGridLevel structure. More... | |
void | intersections (const YGridComponent< Coordinates > &sendgrid, const YGridComponent< Coordinates > &recvgrid, std::deque< Intersection > &sendlist, std::deque< Intersection > &recvlist) |
Construct list of intersections with neighboring processors. More... | |
void | init () |
void | boundarysegmentssize () |
Exported types | |
typedef GridFamily::Traits::LeafGridView | LeafGridView |
type of view for leaf grid More... | |
typedef GridFamily::Traits::LevelGridView | LevelGridView |
type of view for level grid More... | |
typedef GridFamily::Traits::LeafIntersection | LeafIntersection |
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in the leaf view. More... | |
typedef GridFamily::Traits::LevelIntersection | LevelIntersection |
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in a level view. More... | |
typedef GridFamily::Traits::LeafIntersectionIterator | LeafIntersectionIterator |
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an leaf element (entity of codimension 0) with other leaf elements. More... | |
typedef GridFamily::Traits::LevelIntersectionIterator | LevelIntersectionIterator |
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an element (entity of codimension 0) with other elements on the same level. More... | |
typedef GridFamily::Traits::HierarchicIterator | HierarchicIterator |
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine, but not to modify, entities of codimension 0 that result from refinement of an entity of codimension 0. More... | |
typedef GridFamily::Traits::LevelIndexSet | LevelIndexSet |
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent, numbering for entities on a grid level. More... | |
typedef GridFamily::Traits::LeafIndexSet | LeafIndexSet |
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent, numbering for entities in the leaf grid. More... | |
typedef GridFamily::Traits::GlobalIdSet | GlobalIdSet |
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entities in the grid. The numbering is unique over all processes over which the grid is partitioned. The numbering is not necessarily consecutive. More... | |
typedef GridFamily::Traits::LocalIdSet | LocalIdSet |
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entities in the grid. The numbering is only unique in a single process and it is not necessarily consecutive. More... | |
using | CollectiveCommunication = Communication |
using | Communication_t = typename T::Communication |
using | DeprecatedCollectiveCommunication_t = typename T::CollectiveCommunication |
Parallel data distribution and communication | |
Codim< EntitySeed::codimension >::Entity | entity (const EntitySeed &seed) const |
obtain Entity from EntitySeed. More... | |
GridImp & | asImp () |
Barton-Nackman trick. More... | |
const GridImp & | asImp () const |
Barton-Nackman trick. More... | |
[ provides Dune::Grid ]
Provides a distributed structured cube mesh.
YaspGrid stands for yet another structured parallel grid. It implements the dune grid interface for structured grids with arbitrary overlap (including zero), periodic boundaries, and a fast implementation allowing on-the-fly computations.
YaspGrid supports three coordinate modes: EquidistantCoordinates, EquidistantOffsetCoordinates, and Dune::TensorProductCoordinates.
dim | The dimension of the grid and its surrounding world |
Coordinates | The coordinate mode of the grid. |
|
inherited |
using Dune::YaspGrid< dim, Coordinates >::CollectiveCommunicationType = typename Base::Communication |
using Dune::YaspGrid< dim, Coordinates >::Communication = typename Base::Communication |
|
protectedinherited |
typedef Coordinates::ctype Dune::YaspGrid< dim, Coordinates >::ctype |
Type used for coordinates.
|
protectedinherited |
|
inherited |
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entities in the grid. The numbering is unique over all processes over which the grid is partitioned. The numbering is not necessarily consecutive.
typedef YaspGlobalIdSet<YaspGrid<dim, Coordinates> > Dune::YaspGrid< dim, Coordinates >::GlobalIdSetType |
typedef YaspGridFamily<dim, Coordinates> Dune::YaspGrid< dim, Coordinates >::GridFamily |
the GridFamily of this grid
|
protected |
|
inherited |
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine, but not to modify, entities of codimension 0 that result from refinement of an entity of codimension 0.
|
inherited |
type of view for leaf grid
|
inherited |
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent, numbering for entities in the leaf grid.
typedef YaspIndexSet<YaspGrid<dim, Coordinates>, true > Dune::YaspGrid< dim, Coordinates >::LeafIndexSetType |
|
inherited |
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in the leaf view.
|
inherited |
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an leaf element (entity of codimension 0) with other leaf elements.
|
inherited |
type of view for level grid
|
inherited |
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent, numbering for entities on a grid level.
typedef YaspIndexSet<YaspGrid<dim, Coordinates>, false > Dune::YaspGrid< dim, Coordinates >::LevelIndexSetType |
|
inherited |
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in a level view.
|
inherited |
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an element (entity of codimension 0) with other elements on the same level.
|
inherited |
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entities in the grid. The numbering is only unique in a single process and it is not necessarily consecutive.
typedef bigunsignedint<dim*yaspgrid_dim_bits+yaspgrid_level_bits+dim> Dune::YaspGrid< dim, Coordinates >::PersistentIndexType |
typedef YaspGridFamily<dim,Coordinates>::Traits Dune::YaspGrid< dim, Coordinates >::Traits |
typedef ReservedVector<YGridLevel,32>::const_iterator Dune::YaspGrid< dim, Coordinates >::YGridLevelIterator |
Iterator over the grid levels.
|
inline |
Standard constructor for a YaspGrid with a given Coordinates object
coordinates | Object that stores or computes the vertex coordinates |
periodic | tells if direction is periodic or not |
overlap | size of overlap on coarsest grid (same in all directions) |
comm | the communication object for this grid. An MPI communicator can be given here. |
partitioner | pointer to an overloaded Yasp::Partitioning instance |
|
inline |
Standard constructor for an equidistant YaspGrid
L | extension of the domain |
s | number of cells on coarse mesh in each direction |
periodic | tells if direction is periodic or not |
overlap | size of overlap on coarsest grid (same in all directions) |
comm | the communication object for this grid. An MPI communicator can be given here. |
partitioner | pointer to an overloaded Yasp::Partitioning instance |
|
inline |
Constructor for an equidistant YaspGrid with non-trivial origin
lowerleft | Lower left corner of the domain |
upperright | Upper right corner of the domain |
s | number of cells on coarse mesh in each direction |
periodic | tells if direction is periodic or not |
overlap | size of overlap on coarsest grid (same in all directions) |
comm | the communication object for this grid. An MPI communicator can be given here. |
partitioner | pointer to an overloaded Yasp::Partitioning instance |
|
inline |
Standard constructor for a tensorproduct YaspGrid.
coords | coordinate vectors to be used for coarse grid |
periodic | tells if direction is periodic or not |
overlap | size of overlap on coarsest grid (same in all directions) |
comm | the communication object for this grid. An MPI communicator can be given here. |
partitioner | pointer to an overloaded Yasp::Partitioning instance |
|
inline |
map adapt to global refine
|
inlineprotectedinherited |
Barton-Nackman trick.
|
inlineprotectedinherited |
Barton-Nackman trick.
|
inline |
return iterator pointing to coarsest level
|
inline |
return iterator pointing to given level
|
inlineprotected |
|
inline |
return a communication object
|
inline |
The new communication interface
communicate objects for all codims on the leaf grid
|
inline |
The new communication interface
communicate objects for all codims on a given level
|
inline |
The new communication interface
communicate objects for one codim
|
inlinestatic |
|
inlinestatic |
|
inline |
returns the size of the physical domain
|
inline |
return iterator pointing to one past the finest level
|
inlineinherited |
obtain Entity from EntitySeed.
|
inline |
|
inlineinherited |
|
inline |
returns adaptation mark for given entity
[in] | e | Entity for which adaptation mark should be determined |
|
inline |
|
inline |
return size (= distance in graph) of ghost region
|
inline |
return size (= distance in graph) of ghost region
|
inline |
|
inline |
refine the grid refCount times.
|
inline |
return number of cells on finest level on all processors
|
inline |
return number of cells on finest level in given direction on all processors
|
inlineprotected |
|
inlineprotected |
Construct list of intersections with neighboring processors.
recvgrid | the grid stored in this processor |
sendgrid | the subgrid to be sent to neighboring processors |
sendlist | the deque to fill with send intersections |
recvlist | the deque to fill with recv intersections |
|
inline |
return whether the grid is periodic in direction i
|
inline |
one past the end on this level
|
inline |
version without second template parameter for convenience
|
inline |
return LeafIterator which points to the first entity in maxLevel
|
inline |
return LeafIterator which points to the first entity in maxLevel
|
inline |
return LeafIterator which points behind the last entity in maxLevel
|
inline |
return LeafIterator which points behind the last entity in maxLevel
|
inlineinherited |
View for the leaf grid for All_Partition.
|
inline |
|
inline |
Iterator to one past the last entity of given codim on level for partition type.
|
inline |
version without second template parameter for convenience
|
inlineinherited |
View for a grid level for All_Partition.
|
inline |
|
inline |
return size vector of the grid (in cells) on level l
|
inline |
return size of the grid (in cells) on level l in direction i
|
inlineinherited |
default implementation of load balance does nothing and returns false
|
inlineinherited |
default implementation of load balance does nothing and returns false
|
inline |
|
inlineprotected |
Make a new YGridLevel structure.
coords | the coordinate container |
periodic | indicate periodicity for each direction |
o_interior | origin of interior (non-overlapping) cell decomposition |
overlap | to be used on this grid level |
|
inlineinherited |
|
inlineinherited |
Marks an entity to be refined/coarsened in a subsequent adapt.
[in] | refCount | Number of subdivisions that should be applied. Negative value means coarsening. |
[in] | e | Entity to Entity that should be refined |
|
inline |
Marks an entity to be refined/coarsened in a subsequent adapt.
[in] | refCount | Number of subdivisions that should be applied. Negative value means coarsening. |
[in] | e | Entity to Entity that should be refined |
|
inline |
Return maximum level defined in this grid. Levels are numbered 0 ... maxlevel with 0 the coarsest level.
|
inline |
returns the number of boundary segments within the macro grid
|
inline |
return size (= distance in graph) of overlap region
|
inline |
return size (= distance in graph) of overlap region
|
inline |
clean up some markers
|
inline |
returns true, if the grid will be coarsened
|
inline |
set options for refinement
keepPhysicalOverlap | [true] keep the physical size of the overlap, [false] keep the number of cells in the overlap. Default is [true]. |
|
inline |
number of leaf entities per geometry type in this process
|
inline |
number of leaf entities per codim in this process
|
inline |
number of entities per level and geometry type in this process
|
inline |
number of entities per level and codim in this process
|
inline |
return reference to torus
|
staticconstexprinherited |
The dimension of the grid.
|
staticconstexprinherited |
The dimension of the world the grid lives in.