dune-alugrid 2.8.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::ALU3dGrid< dim, dimworld, elType, Comm > Class Template Reference

[ provides Dune::Grid ] More...

#include <dune/alugrid/3d/grid.hh>

Inheritance diagram for Dune::ALU3dGrid< dim, dimworld, elType, Comm >:
Inheritance graph

Classes

struct  Codim
 
struct  Partition
 Types for GridView. More...
 

Public Types

enum  { refineStepsForHalf = 1 }
 
typedef ALU3dGridIntersectionIterator< const ThisTypeIntersectionIteratorImp
 
typedef ALU3dGridIntersectionIterator< const ThisTypeLeafIntersectionIteratorImp
 
typedef ALU3dGridLevelIntersectionIterator< const ThisTypeLevelIntersectionIteratorImp
 
typedef ALU3DSPACE GatherScatterType::ObjectStreamType ObjectStreamType
 
typedef ObjectStreamType InStreamType
 
typedef ObjectStreamType OutStreamType
 
typedef ALU3dGridFamily< dim, dimworld, elType, Comm > GridFamily
 
typedef GridFamily::Traits Traits
 
typedef Partition< All_Partition >::LevelGridView LevelGridView
 View types for All_Partition. More...
 
typedef Partition< All_Partition >::LeafGridView LeafGridView
 
typedef Partition< All_Partition >::MacroGridView MacroGridView
 
typedef ALU3dGridHierarchicIndexSet< dim, dimworld, elType, Comm > HierarchicIndexSet
 Type of the hierarchic index set. More...
 
typedef GridFamily::LevelIndexSetImp LevelIndexSetImp
 Type of the level index set, needed by data handle. More...
 
typedef GridFamily::LeafIndexSetImp LeafIndexSetImp
 Type of the leaf index set, needed by data handle. More...
 
typedef ReferenceElements< alu3d_ctype, dim > ReferenceElementContainerType
 
typedef ReferenceElements< alu3d_ctype, dim-1 > ReferenceFaceContainerType
 
typedef std::decay_t< decltype(ReferenceElementContainerType::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
 
typedef std::decay_t< decltype(ReferenceFaceContainerType::general(std::declval< const Dune::GeometryType & >())) > ReferenceFaceType
 
typedef Traits::DuneBoundaryProjectionType DuneBoundaryProjectionType
 boundary projection type More...
 
typedef ALU3DSPACE ProjectVertex ALUGridVertexProjectionType
 type of vertex projection More...
 
typedef ALU3DSPACE ProjectVertexPtr ALUGridVertexProjectionPointerType
 type of ALUGrid Vertex Projection Interface (shared_ptr) More...
 
typedef ALU3DSPACE ProjectVertexPtrPair ALUGridVertexProjectionPairType
 
typedef Traits::CollectiveCommunication CollectiveCommunication
 type of collective communication object More...
 
typedef ALULeafCommunication< dim, dimworld, elType, Comm > LeafCommunication
 
typedef ALULevelCommunication< dim, dimworld, elType, Comm > LevelCommunication
 
typedef Traits::GlobalIdSet GlobalIdSet
 Type of the global id set. More...
 
typedef Traits::LocalIdSet LocalIdSet
 Type of the local id set. More...
 
typedef Comm MPICommunicatorType
 
typedef ALU3dGridCommunications< dim, dimworld, elType, Comm > Communications
 
typedef LeafIntersectionIteratorWrapper< const ThisTypeLefInterItWrapperType
 
typedef LevelIntersectionIteratorWrapper< const ThisTypeLvlInterItWrapperType
 

Public Member Functions

 ALU3dGrid (const std::string &macroTriangFilename, const MPICommunicatorType mpiComm, const ALUGridVertexProjectionPairType &bndPrj, const ALUGridRefinementType refinementType)
 
virtual ~ALU3dGrid ()
 Desctructor. More...
 
int maxLevel () const
 Return maximum level defined in this grid. Levels are numbered maxLevel with 0 the coarsest level. More...
 
template<int cd, PartitionIteratorType pitype>
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator lbegin (int level) const
 Iterator to first entity of given codim on level. More...
 
template<int cd, PartitionIteratorType pitype>
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator lend (int level) const
 one past the end on this level More...
 
template<int cd>
Traits::template Codim< cd >::template Partition< All_Partition >::LevelIterator lbegin (int level) const
 Iterator to first entity of given codim on level. More...
 
template<int cd>
Traits::template Codim< cd >::template Partition< All_Partition >::LevelIterator lend (int level) const
 one past the end on this level More...
 
Traits::LeafIntersectionIterator ileafbegin (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LeafIntersectionIterator ileafend (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LevelIntersectionIterator ilevelbegin (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LevelIntersectionIterator ilevelend (const typename Traits::template Codim< 0 >::Entity &entity) const
 
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator leafbegin () const
 General definiton for a leaf iterator. More...
 
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator leafend () const
 General definition for an end iterator on leaf level. More...
 
template<int codim>
Traits::template Codim< codim >::LeafIterator leafbegin () const
 General definiton for a leaf iterator. More...
 
template<int codim>
Traits::template Codim< codim >::LeafIterator leafend () const
 General definition for an end iterator on leaf level. More...
 
int size (int level, int cd) const
 number of grid entities per level and codim 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...
 
size_t numBoundarySegments () const
 number of boundary segments More...
 
int size (GeometryType type) const
 number of leaf entities per geometry type in this process More...
 
int global_size (int cd) const
 number of grid entities on all levels for given codim More...
 
int hierSetSize (int cd) const
 
const GlobalIdSetglobalIdSet () const
 get global id set of grid More...
 
template<PartitionIteratorType pitype>
Partition< pitype >::MacroGridView macroGridView () const
 View for te macro grid with some alu specific methods. More...
 
MacroGridView macroGridView () const
 View for te macro grid with some alu specific methods (All_Partition) More...
 
const LocalIdSetlocalIdSet () const
 get global id set of grid More...
 
const Traits::LeafIndexSetleafIndexSet () const
 get leaf index set of the grid More...
 
const Traits::LevelIndexSetlevelIndexSet (int level) const
 get level index set of the grid More...
 
std::shared_ptr< LevelIndexSetImpaccessLevelIndexSet (int level) const
 return instance of level index set More...
 
template<int cd>
Codim< cd >::Twists twists (GeometryType type) const
 
bool loadBalance ()
 Calculates load of each process and repartition by using ALUGrid's default partitioning method. The specific load balancing algorithm is selected from a file alugrid.cfg. More...
 
template<class DataHandleImpl , class Data >
bool loadBalance (CommDataHandleIF< DataHandleImpl, Data > &dataHandleIF)
 Calculates load of each process and repartition by using ALUGrid's default partitioning method. The specific load balancing algorithm is selected from a file alugrid.cfg. More...
 
template<class LBWeights , class DataHandleImpl , class Data >
bool loadBalance (LBWeights &weights, CommDataHandleIF< DataHandleImpl, Data > &dataHandleIF)
 Calculates load of each process and repartition by using ALUGrid's default partitioning method, the partitioning can be optimized by providing weights for each element on the macro grid. The specific load balancing algorithm is selected from a file alugrid.cfg. More...
 
template<class LBWeights >
std::enable_if<!IsDataHandle< LBWeights >::value, bool >::type loadBalance (LBWeights &weights)
 Calculates load of each process and repartition by using ALUGrid's default partitioning method, the partitioning can be optimized by providing weights for each element on the macro grid. The specific load balancing algorithm is selected from a file alugrid.cfg. More...
 
template<class LBDestinations >
bool repartition (LBDestinations &destinations)
 Distribute the grid based on a user defined partitioning. More...
 
template<class LBDestinations , class DataHandleImpl , class Data >
bool repartition (LBDestinations &destinations, CommDataHandleIF< DataHandleImpl, Data > &dataHandleIF)
 Distribute the grid based on a user defined partitioning. More...
 
int ghostSize (int level, int codim) const
 ghostSize is one for codim 0 and zero otherwise for this grid
More...
 
int overlapSize (int level, int codim) const
 overlapSize is zero for this grid
More...
 
int ghostSize (int codim) const
 ghostSize is one for codim 0 and zero otherwise for this grid
More...
 
int overlapSize (int codim) const
 overlapSize is zero for this grid
More...
 
template<class DataHandle , class Data >
LevelCommunication communicate (CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir, int level) const
 
template<class DataHandle , class Data >
LeafCommunication communicate (CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
 Communicate information on distributed entities on the leaf grid. Template parameter is a model of Dune::CommDataHandleIF. More...
 
const CollectiveCommunicationcomm () const
 
bool preAdapt ()
 returns if a least one entity was marked for coarsening More...
 
void postAdapt ()
 clear all entity new markers if lockPostAdapt_ is set More...
 
bool adapt ()
 
template<class GridImp , class DataHandle >
bool adapt (AdaptDataHandleInterface< GridImp, DataHandle > &handle)
 
void globalRefine (int refCount)
 uses the interface, mark on entity and refineLocal More...
 
template<class GridImp , class DataHandle >
void globalRefine (int refCount, AdaptDataHandleInterface< GridImp, DataHandle > &handle)
 
bool writeMacroGrid (const std::string path, const std::string filename, const ALU3DSPACE MacroFileHeader::Format format=ALU3DSPACE MacroFileHeader::defaultFormat) const
 write macro grid in ALUGrid macro format to path/filename.rank More...
 
void backup (std::ostream &, const ALU3DSPACE MacroFileHeader::Format format) const
 backup to ostream More...
 
void restore (std::istream &)
 restore from istream More...
 
const HierarchicIndexSethierarchicIndexSet () const
 
void updateStatus ()
 
bool mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e)
 
int getMark (const typename Traits::template Codim< 0 >::Entity &e) const
 
const std::vector< GeometryType > & geomTypes (int codim) const
 deliver all geometry types used in this grid More...
 
GitterImplTypemyGrid () const
 
virtual GitterImplTypecreateALUGrid (const std::string &macroName)
 
virtual GitterImplTypecreateALUGrid (std::istream &stream)
 
ALUGridVertexProjectionPairType vertexProjections () const
 
virtual ALU3DSPACE Gitter::Geometric::BuilderIF & getBuilder () const
 
virtual void completeGrid ()
 
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::EntityPointer entityPointer (const EntitySeed &seed) const
 
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity entity (const EntitySeed &seed) const
 
int nlinks () const
 
LeafVertexListTypegetLeafVertexList () const
 
int getLevelOfLeafVertex (const typename ALU3dImplTraits< elType, Comm >::VertexType &vertex) const
 
VertexListTypegetVertexList (int level) const
 
ALU3dGridItemListTypegetGhostLeafList (int codim) const
 
ALU3dGridItemListTypegetGhostLevelList (int codim, int level) const
 
ALU3dGridItemListTypegetEdgeList (int level) const
 
bool conformingRefinement () const
 
bool ghostCellsEnabled () const
 
const BoundarySegmentIndexSetTypemacroBoundarySegmentIndexSet () const
 

Static Public Member Functions

static std::string name ()
 for grid identification More...
 
static void setLoadBalanceMethod (const int mthd, const double ldbUnder=0.0, const double ldbOver=1.2)
 Set load balancing method and lower and upper bound for decision on whether to load balance or not. More...
 
static MPICommunicatorType defaultCommunicator ()
 
static const ReferenceElementTypereferenceElement ()
 return reference to Dune reference element according to elType More...
 
static const ReferenceFaceTypefaceReferenceElement ()
 return reference to Dune face reference element according to elType More...
 

Static Public Attributes

static const ALU3dGridElementType elementType = elType
 
static const int dimension = BaseType::dimension
 
static const int dimensionworld = BaseType::dimensionworld
 

Protected Types

enum  { newElementsChunk_ = 128 }
 element chunk for refinement More...
 
enum  { refineEstimate_ = 8 }
 upper estimate on number of elements that could be created when a new element is created More...
 
enum  { numberOfGeomTypes = 1 }
 
typedef MakeableInterfaceObject< typename Traits::template Codim< 0 >::Geometry > GeometryObject
 
typedef GridFamily::LocalIdSetImp LocalIdSetImp
 Type of the local id set. More...
 
typedef GridFamily::GlobalIdSetImp GlobalIdSetImp
 
typedef ALU3dGridLeafIterator< 0, All_Partition, const ThisTypeLeafIteratorImp
 
typedef Traits::template Codim< 0 >::LeafIterator LeafIteratorType
 
typedef Traits::template Codim< 0 >::LeafIterator LeafIterator
 
typedef ALU3dGridHierarchicIterator< const ThisTypeHierarchicIteratorImp
 
typedef ALU3dImplTraits< elType, Comm >::GitterImplType GitterImplType
 
typedef ALU3dGridVertexList< Comm > VertexListType
 
typedef ALU3dGridLeafVertexList< Comm > LeafVertexListType
 
typedef DefaultBoundarySegmentIndexSet< ThisTypeBoundarySegmentIndexSetType
 
typedef ALU3DSPACE GatherScatter GatherScatterType
 
typedef SizeCache< MyTypeSizeCacheType
 

Protected Member Functions

std::shared_ptr< LevelIndexSetImpcreateLevelIndexSet (int level) const
 
bool loadBalance (GatherScatterType *lbData)
 Calculates load of each process and repartition the grid if neccessary. For parameters of the load balancing process see the README file of the ALUGrid package. More...
 
void finalizeGridCreation ()
 
void clearIsNewMarkers ()
 clear all entity new markers More...
 
 ALU3dGrid (const ThisType &)
 Copy constructor should not be used. More...
 
const ThisTypeoperator= (const ThisType &)
 assignment operator should not be used More...
 
void calcExtras ()
 reset size and global size, update Level- and LeafIndexSet, if they exist More...
 
void calcMaxLevel ()
 calculate maxlevel More...
 
void recalcGlobalSize ()
 make grid walkthrough and calc global size More...
 
void checkMacroGridFile (const std::string filename)
 check whether macro grid format is of our type More...
 
void checkMacroGrid ()
 check whether macro grid has the right element type More...
 
const Communicationscommunications () const
 
void makeGeometries ()
 

Protected Attributes

std::unique_ptr< GitterImplTypemygrid_
 
int maxlevel_
 
int coarsenMarked_
 
int refineMarked_
 
std::vector< std::vector< GeometryType > > geomTypes_
 
HierarchicIndexSet hIndexSet_
 
std::unique_ptr< GlobalIdSetImpglobalIdSet_
 
LocalIdSetImp localIdSet_
 
std::vector< std::shared_ptr< LevelIndexSetImp > > levelIndexVec_
 
std::unique_ptr< LeafIndexSetImpleafIndexSet_
 
std::vector< VertexListTypevertexList_
 
ALU3dGridItemListType ghostLeafList_ [3]
 
std::vector< ALU3dGridItemListTypeghostLevelList_ [3]
 
std::vector< ALU3dGridItemListTypelevelEdgeList_
 
LeafVertexListType leafVertexList_
 
std::unique_ptr< SizeCacheTypesizeCache_
 
BoundarySegmentIndexSetType macroBoundarySegmentIndexSet_
 
bool lockPostAdapt_
 
ALUGridVertexProjectionPairType vertexProjections_
 
std::unique_ptr< Communicationscommunications_
 
const ALUGridRefinementType refinementType_
 

Detailed Description

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm>
class Dune::ALU3dGrid< dim, dimworld, elType, Comm >

[ provides Dune::Grid ]

3D grid with support for hexahedrons and tetrahedrons. The ALU3dGrid implements the Dune GridInterface for 3d tetrahedral and hexahedral meshes. This grid can be locally adapted and used in parallel computations using dynamic load balancing.

Note
Adaptive parallel grid supporting dynamic load balancing, written mainly by Bernard Schupp. This grid supports hexahedrons and tetrahedrons.

(see ALUGrid homepage: http://www.mathematik.uni-freiburg.de/IAM/Research/alugrid/)

Two tools are available for partitioning :

For installation instructions see http://www.dune-project.org/external_libraries/install_alugrid.html .

Author
Robert Kloefkorn

Member Typedef Documentation

◆ ALUGridVertexProjectionPairType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3DSPACE ProjectVertexPtrPair Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ALUGridVertexProjectionPairType

◆ ALUGridVertexProjectionPointerType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3DSPACE ProjectVertexPtr Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ALUGridVertexProjectionPointerType

type of ALUGrid Vertex Projection Interface (shared_ptr)

◆ ALUGridVertexProjectionType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3DSPACE ProjectVertex Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ALUGridVertexProjectionType

type of vertex projection

◆ BoundarySegmentIndexSetType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef DefaultBoundarySegmentIndexSet< ThisType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::BoundarySegmentIndexSetType
protected

◆ CollectiveCommunication

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Traits::CollectiveCommunication Dune::ALU3dGrid< dim, dimworld, elType, Comm >::CollectiveCommunication

type of collective communication object

◆ Communications

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridCommunications< dim, dimworld, elType, Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::Communications

◆ DuneBoundaryProjectionType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Traits::DuneBoundaryProjectionType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::DuneBoundaryProjectionType

boundary projection type

◆ GatherScatterType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3DSPACE GatherScatter Dune::ALU3dGrid< dim, dimworld, elType, Comm >::GatherScatterType
protected

◆ GeometryObject

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef MakeableInterfaceObject< typename Traits::template Codim< 0 >::Geometry > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::GeometryObject
protected

◆ GitterImplType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dImplTraits<elType,Comm>::GitterImplType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::GitterImplType
protected

◆ GlobalIdSet

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Traits::GlobalIdSet Dune::ALU3dGrid< dim, dimworld, elType, Comm >::GlobalIdSet

Type of the global id set.

◆ GlobalIdSetImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef GridFamily::GlobalIdSetImp Dune::ALU3dGrid< dim, dimworld, elType, Comm >::GlobalIdSetImp
protected

◆ GridFamily

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridFamily< dim, dimworld, elType, Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::GridFamily

◆ HierarchicIndexSet

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridHierarchicIndexSet< dim, dimworld, elType, Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::HierarchicIndexSet

Type of the hierarchic index set.

◆ HierarchicIteratorImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridHierarchicIterator< const ThisType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::HierarchicIteratorImp
protected

◆ InStreamType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ObjectStreamType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::InStreamType

◆ IntersectionIteratorImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridIntersectionIterator<const ThisType> Dune::ALU3dGrid< dim, dimworld, elType, Comm >::IntersectionIteratorImp

◆ LeafCommunication

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALULeafCommunication< dim, dimworld, elType, Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafCommunication

◆ LeafGridView

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Partition<All_Partition>::LeafGridView Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafGridView

◆ LeafIndexSetImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef GridFamily::LeafIndexSetImp Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafIndexSetImp

Type of the leaf index set, needed by data handle.

◆ LeafIntersectionIteratorImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridIntersectionIterator<const ThisType> Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafIntersectionIteratorImp

◆ LeafIterator

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Traits::template Codim<0>::LeafIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafIterator
protected

◆ LeafIteratorImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridLeafIterator< 0, All_Partition, const ThisType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafIteratorImp
protected

◆ LeafIteratorType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Traits::template Codim<0>::LeafIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafIteratorType
protected

◆ LeafVertexListType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridLeafVertexList< Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LeafVertexListType
protected

◆ LefInterItWrapperType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef LeafIntersectionIteratorWrapper< const ThisType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LefInterItWrapperType

◆ LevelCommunication

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALULevelCommunication< dim, dimworld, elType, Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LevelCommunication

◆ LevelGridView

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Partition<All_Partition>::LevelGridView Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LevelGridView

View types for All_Partition.

◆ LevelIndexSetImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef GridFamily::LevelIndexSetImp Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LevelIndexSetImp

Type of the level index set, needed by data handle.

◆ LevelIntersectionIteratorImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridLevelIntersectionIterator<const ThisType> Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LevelIntersectionIteratorImp

◆ LocalIdSet

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Traits::LocalIdSet Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LocalIdSet

Type of the local id set.

◆ LocalIdSetImp

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef GridFamily::LocalIdSetImp Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LocalIdSetImp
protected

Type of the local id set.

◆ LvlInterItWrapperType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef LevelIntersectionIteratorWrapper< const ThisType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::LvlInterItWrapperType

◆ MacroGridView

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Partition<All_Partition>::MacroGridView Dune::ALU3dGrid< dim, dimworld, elType, Comm >::MacroGridView

◆ MPICommunicatorType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef Comm Dune::ALU3dGrid< dim, dimworld, elType, Comm >::MPICommunicatorType

◆ ObjectStreamType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3DSPACE GatherScatterType::ObjectStreamType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ObjectStreamType

◆ OutStreamType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ObjectStreamType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::OutStreamType

◆ ReferenceElementContainerType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ReferenceElements< alu3d_ctype, dim > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ReferenceElementContainerType

◆ ReferenceElementType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef std::decay_t< decltype( ReferenceElementContainerType::general( std::declval< const Dune::GeometryType & >() ) ) > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ReferenceElementType

◆ ReferenceFaceContainerType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ReferenceElements< alu3d_ctype, dim-1 > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ReferenceFaceContainerType

◆ ReferenceFaceType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef std::decay_t< decltype( ReferenceFaceContainerType::general( std::declval< const Dune::GeometryType & >() ) ) > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ReferenceFaceType

◆ SizeCacheType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef SizeCache<MyType> Dune::ALU3dGrid< dim, dimworld, elType, Comm >::SizeCacheType
protected

◆ Traits

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef GridFamily::Traits Dune::ALU3dGrid< dim, dimworld, elType, Comm >::Traits

◆ VertexListType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
typedef ALU3dGridVertexList< Comm > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::VertexListType
protected

Member Enumeration Documentation

◆ anonymous enum

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
anonymous enum
Enumerator
refineStepsForHalf 

◆ anonymous enum

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
anonymous enum
protected

element chunk for refinement

Enumerator
newElementsChunk_ 

normal default number of new elements for new adapt method

◆ anonymous enum

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
anonymous enum
protected

upper estimate on number of elements that could be created when a new element is created

Enumerator
refineEstimate_ 

if one element is refined then it causes apporximately not more than this number of new elements

◆ anonymous enum

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
anonymous enum
protected
Enumerator
numberOfGeomTypes 

Constructor & Destructor Documentation

◆ ALU3dGrid() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ALU3dGrid ( const std::string &  macroTriangFilename,
const MPICommunicatorType  mpiComm,
const ALUGridVertexProjectionPairType bndPrj,
const ALUGridRefinementType  refinementType 
)
inline

Constructor which reads an ALU3dGrid Macro Triang file or given GridFile

◆ ~ALU3dGrid()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
virtual Dune::ALU3dGrid< dim, dimworld, elType, Comm >::~ALU3dGrid ( )
inlinevirtual

Desctructor.

◆ ALU3dGrid() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ALU3dGrid ( const ThisType )
protected

Copy constructor should not be used.

Member Function Documentation

◆ accessLevelIndexSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp std::shared_ptr< typename ALU3dGrid< dim, dimworld, elType, Comm >::LevelIndexSetImp > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::accessLevelIndexSet ( int  level) const

return instance of level index set

Note
if index set for this level has not been created then this instance will be deleted once the shared_ptr goes out of scope.

◆ adapt() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::adapt

◆ adapt() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class GridImp , class DataHandle >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::adapt ( AdaptDataHandleInterface< GridImp, DataHandle > &  handle)
inline

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

◆ backup()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::backup ( std::ostream &  stream,
const ALU3DSPACE MacroFileHeader::Format  format 
) const

backup to ostream

◆ calcExtras()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::calcExtras
protected

reset size and global size, update Level- and LeafIndexSet, if they exist

◆ calcMaxLevel()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::calcMaxLevel
protected

calculate maxlevel

◆ checkMacroGrid()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::checkMacroGrid
protected

check whether macro grid has the right element type

◆ checkMacroGridFile()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::checkMacroGridFile ( const std::string  filename)
protected

check whether macro grid format is of our type

◆ clearIsNewMarkers()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::clearIsNewMarkers
protected

clear all entity new markers

◆ comm()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const CollectiveCommunication & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::comm ( ) const
inline

◆ communicate() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class DataHandle , class Data >
LeafCommunication Dune::ALU3dGrid< dim, dimworld, elType, Comm >::communicate ( CommDataHandleIF< DataHandle, Data > &  data,
InterfaceType  iftype,
CommunicationDirection  dir 
) const
inline

Communicate information on distributed entities on the leaf grid. Template parameter is a model of Dune::CommDataHandleIF.

◆ communicate() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class DataHandle , class Data >
LevelCommunication Dune::ALU3dGrid< dim, dimworld, elType, Comm >::communicate ( CommDataHandleIF< DataHandle, Data > &  data,
InterfaceType  iftype,
CommunicationDirection  dir,
int  level 
) const
inline

◆ communications()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const Communications & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::communications ( ) const
inlineprotected

◆ completeGrid()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
virtual void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::completeGrid ( )
inlinevirtual

◆ conformingRefinement()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::conformingRefinement ( ) const
inline

◆ createALUGrid() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
virtual GitterImplType * Dune::ALU3dGrid< dim, dimworld, elType, Comm >::createALUGrid ( const std::string &  macroName)
inlinevirtual

◆ createALUGrid() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
virtual GitterImplType * Dune::ALU3dGrid< dim, dimworld, elType, Comm >::createALUGrid ( std::istream &  stream)
inlinevirtual

◆ createLevelIndexSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp std::shared_ptr< typename ALU3dGrid< dim, dimworld, elType, Comm >::LevelIndexSetImp > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::createLevelIndexSet ( int  level) const
protected

◆ defaultCommunicator()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
static MPICommunicatorType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::defaultCommunicator ( )
inlinestatic

◆ entity()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity Dune::ALU3dGrid< dim, dimworld, elType, Comm >::entity ( const EntitySeed &  seed) const
inline

◆ entityPointer()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::EntityPointer Dune::ALU3dGrid< dim, dimworld, elType, Comm >::entityPointer ( const EntitySeed &  seed) const
inline

◆ faceReferenceElement()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
static const ReferenceFaceType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::faceReferenceElement ( )
inlinestatic

return reference to Dune face reference element according to elType

◆ finalizeGridCreation()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::finalizeGridCreation
protected

◆ geomTypes()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const std::vector< GeometryType > & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::geomTypes ( int  codim) const
inline

deliver all geometry types used in this grid

◆ getBuilder()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
virtual ALU3DSPACE Gitter::Geometric::BuilderIF & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getBuilder ( ) const
inlinevirtual

◆ getEdgeList()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALU3dGridItemListType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getEdgeList ( int  level) const
inline

◆ getGhostLeafList()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALU3dGridItemListType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getGhostLeafList ( int  codim) const
inline

◆ getGhostLevelList()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALU3dGridItemListType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getGhostLevelList ( int  codim,
int  level 
) const
inline

◆ getLeafVertexList()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
LeafVertexListType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getLeafVertexList ( ) const
inline

◆ getLevelOfLeafVertex()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getLevelOfLeafVertex ( const typename ALU3dImplTraits< elType, Comm >::VertexType &  vertex) const
inline

◆ getMark()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getMark ( const typename Traits::template Codim< 0 >::Entity &  e) const
inline

◆ getVertexList()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
VertexListType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::getVertexList ( int  level) const
inline

◆ ghostCellsEnabled()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ghostCellsEnabled ( ) const
inline

◆ ghostSize() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ghostSize ( int  codim) const

ghostSize is one for codim 0 and zero otherwise for this grid

◆ ghostSize() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ghostSize ( int  level,
int  codim 
) const

ghostSize is one for codim 0 and zero otherwise for this grid

◆ global_size()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::global_size ( int  cd) const
inline

number of grid entities on all levels for given codim

◆ globalIdSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const GlobalIdSet & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::globalIdSet ( ) const
inline

get global id set of grid

◆ globalRefine() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::globalRefine ( int  refCount)

uses the interface, mark on entity and refineLocal

◆ globalRefine() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class GridImp , class DataHandle >
void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::globalRefine ( int  refCount,
AdaptDataHandleInterface< GridImp, DataHandle > &  handle 
)
inline

◆ hierarchicIndexSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const HierarchicIndexSet & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::hierarchicIndexSet ( ) const
inline

◆ hierSetSize()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::hierSetSize ( int  cd) const
inline

◆ ileafbegin()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
Traits::LeafIntersectionIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ileafbegin ( const typename Traits::template Codim< 0 >::Entity &  entity) const
inline

◆ ileafend()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
Traits::LeafIntersectionIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ileafend ( const typename Traits::template Codim< 0 >::Entity &  entity) const
inline

◆ ilevelbegin()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
Traits::LevelIntersectionIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ilevelbegin ( const typename Traits::template Codim< 0 >::Entity &  entity) const
inline

◆ ilevelend()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
Traits::LevelIntersectionIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ilevelend ( const typename Traits::template Codim< 0 >::Entity &  entity) const
inline

◆ lbegin() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd, PartitionIteratorType pitype>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::template Partition< pitype >::LevelIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::lbegin ( int  level) const
inline

Iterator to first entity of given codim on level.

◆ lbegin() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::template Partition< All_Partition >::LevelIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::lbegin ( int  level) const
inline

Iterator to first entity of given codim on level.

◆ leafbegin() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd, PartitionIteratorType pitype>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::template Partition< pitype >::LeafIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafbegin
inline

General definiton for a leaf iterator.

◆ leafbegin() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::LeafIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafbegin
inline

General definiton for a leaf iterator.

◆ leafend() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd, PartitionIteratorType pitype>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::template Partition< pitype >::LeafIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafend
inline

General definition for an end iterator on leaf level.

◆ leafend() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::LeafIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafend
inline

General definition for an end iterator on leaf level.

◆ leafIndexSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp const ALU3dGrid< dim, dimworld, elType, Comm >::Traits::LeafIndexSet & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafIndexSet

get leaf index set of the grid

◆ lend() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd, PartitionIteratorType pitype>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::template Partition< pitype >::LevelIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::lend ( int  level) const
inline

one past the end on this level

◆ lend() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd>
ALU3dGrid< dim, dimworld, elType, Comm >::Traits::template Codim< cd >::template Partition< All_Partition >::LevelIterator Dune::ALU3dGrid< dim, dimworld, elType, Comm >::lend ( int  level) const
inline

one past the end on this level

◆ levelIndexSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp const ALU3dGrid< dim, dimworld, elType, Comm >::Traits::LevelIndexSet & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::levelIndexSet ( int  level) const

get level index set of the grid

◆ loadBalance() [1/5]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::loadBalance ( )
inline

Calculates load of each process and repartition by using ALUGrid's default partitioning method. The specific load balancing algorithm is selected from a file alugrid.cfg.

Returns
true if grid has changed

◆ loadBalance() [2/5]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class DataHandleImpl , class Data >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::loadBalance ( CommDataHandleIF< DataHandleImpl, Data > &  dataHandleIF)
inline

Calculates load of each process and repartition by using ALUGrid's default partitioning method. The specific load balancing algorithm is selected from a file alugrid.cfg.

Parameters
optionaldataHandleIF data handle that implements the Dune::CommDataHandleIF interface to include user data during load balancing
Returns
true if grid has changed

◆ loadBalance() [3/5]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::loadBalance ( GatherScatterType lbData)
protected

Calculates load of each process and repartition the grid if neccessary. For parameters of the load balancing process see the README file of the ALUGrid package.

Parameters
datathe data handler class that must implement three methods:
// calls data inline on macro element. From there the data of
// all children can be written to the message buffer.
// MessageBufferImp implements the MessageBufferIF interface.
template<class MessageBufferImp>
void inlineData ( MessageBufferImp& buff, Dune::Entity<0> & e);
// calls data xtract on macro element. From there the data of
// all children can be restored from the message buffer.
// numChildren is the number of all children underneath the
// macro element e.
// MessageBufferImp implements the MessageBufferIF interface.
template<class MessageBufferImp>
void xtractData ( MessageBufferImp& buff, Dune::Entity<0> & e, size_t numChildren );
// This method is called at the end of the load balancing process
// before adaptation markers are removed. Here the user can apply
// a data compression or other features. This method can be
// empty if nothing should be done.
void compress ();
Returns
true if the grid has changed

◆ loadBalance() [4/5]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class LBWeights >
std::enable_if<!IsDataHandle< LBWeights >::value, bool >::type Dune::ALU3dGrid< dim, dimworld, elType, Comm >::loadBalance ( LBWeights &  weights)
inline

Calculates load of each process and repartition by using ALUGrid's default partitioning method, the partitioning can be optimized by providing weights for each element on the macro grid. The specific load balancing algorithm is selected from a file alugrid.cfg.

Parameters
weightsclass with double operator()(const Entity<0>&) returning a weight for each element which the includes in its internal loadbalancing process - for ALUGrid these are all macro elements.
Returns
true if grid has changed

◆ loadBalance() [5/5]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class LBWeights , class DataHandleImpl , class Data >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::loadBalance ( LBWeights &  weights,
CommDataHandleIF< DataHandleImpl, Data > &  dataHandleIF 
)
inline

Calculates load of each process and repartition by using ALUGrid's default partitioning method, the partitioning can be optimized by providing weights for each element on the macro grid. The specific load balancing algorithm is selected from a file alugrid.cfg.

Parameters
weightsclass with double operator()(const Entity<0>&) returning a weight for each element which the includes in its internal loadbalancing process - for ALUGrid these are all macro elements.
dataHandleIFdata handle that implements the Dune::CommDataHandleIF interface to include user data during load balancing
Returns
true if grid has changed

◆ localIdSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const LocalIdSet & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::localIdSet ( ) const
inline

get global id set of grid

◆ macroBoundarySegmentIndexSet()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const BoundarySegmentIndexSetType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::macroBoundarySegmentIndexSet ( ) const
inline

◆ macroGridView() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<PartitionIteratorType pitype>
Partition< pitype >::MacroGridView Dune::ALU3dGrid< dim, dimworld, elType, Comm >::macroGridView ( ) const
inline

View for te macro grid with some alu specific methods.

◆ macroGridView() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
MacroGridView Dune::ALU3dGrid< dim, dimworld, elType, Comm >::macroGridView ( ) const
inline

View for te macro grid with some alu specific methods (All_Partition)

◆ makeGeometries()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::makeGeometries
protected

◆ mark()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::mark ( int  refCount,
const typename Traits::template Codim< 0 >::Entity &  e 
)
inline

◆ maxLevel()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::maxLevel
inline

Return maximum level defined in this grid. Levels are numbered maxLevel with 0 the coarsest level.

◆ myGrid()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALU3dGrid< dim, dimworld, elType, Comm >::GitterImplType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::myGrid
inline

◆ name()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::string Dune::ALU3dGrid< dim, dimworld, elType, Comm >::name
inlinestatic

for grid identification

◆ nlinks()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::nlinks ( ) const
inline

◆ numBoundarySegments()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
size_t Dune::ALU3dGrid< dim, dimworld, elType, Comm >::numBoundarySegments

number of boundary segments

◆ operator=()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline const ALU3dGrid< dim, dimworld, elType, Comm > & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::operator= ( const ThisType other)
protected

assignment operator should not be used

◆ overlapSize() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::overlapSize ( int  codim) const
inline

overlapSize is zero for this grid

◆ overlapSize() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::overlapSize ( int  level,
int  codim 
) const
inline

overlapSize is zero for this grid

◆ postAdapt()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::postAdapt

clear all entity new markers if lockPostAdapt_ is set

◆ preAdapt()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::preAdapt

returns if a least one entity was marked for coarsening

◆ recalcGlobalSize()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::recalcGlobalSize ( )
protected

make grid walkthrough and calc global size

◆ referenceElement()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
static const ReferenceElementType & Dune::ALU3dGrid< dim, dimworld, elType, Comm >::referenceElement ( )
inlinestatic

return reference to Dune reference element according to elType

◆ repartition() [1/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class LBDestinations >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::repartition ( LBDestinations &  destinations)
inline

Distribute the grid based on a user defined partitioning.

Parameters
destinationsclass with int operator()(const Entity<0>&) returning the new owner process of this element. A destination has to be provided for all elements in the grid hierarchy but depending on the grid implementation it is possibly called on a subset only. The elements for which the method is called will be moved to the new processor together with all children. ALUGrid requires destinations for all macro elements.
Returns
true if grid has changed

◆ repartition() [2/2]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<class LBDestinations , class DataHandleImpl , class Data >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::repartition ( LBDestinations &  destinations,
CommDataHandleIF< DataHandleImpl, Data > &  dataHandleIF 
)
inline

Distribute the grid based on a user defined partitioning.

Parameters
destinationsclass with int operator()(const Entity<0>&) returning the new owner process of this element. A destination has to be provided for all elements in the grid hierarchy but depending on the grid implementation it is possibly called on a subset only. The elements for which the method is called will be moved to the new processor together with all children. ALUGrid requires destinations for all macro elements.
dataHandleIFdata handle that implements the Dune::CommDataHandleIF interface to include user data during load balancing
Returns
true if grid has changed

◆ restore()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::restore ( std::istream &  stream)

restore from istream

◆ setLoadBalanceMethod()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
static void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::setLoadBalanceMethod ( const int  mthd,
const double  ldbUnder = 0.0,
const double  ldbOver = 1.2 
)
inlinestatic

Set load balancing method and lower and upper bound for decision on whether to load balance or not.

Note
Possible choices of load balancing methods are:
// no load balancing
NONE = 0
// collect all to rank 0
COLLECT = 1,
// assuming the elements to be ordered by a
// space filling curve approach
// here, the edges in the graph are neglected
// parallel version
ALUGRID_SpaceFillingCurveLinkage = 4,
// serial version that requires the whole graph to be avaiable
ALUGRID_SpaceFillingCurveSerialLinkage = 5,
// METIS method for graph partitioning (with linkage storage)
//METIS_PartGraphKwayLinkage = 6,
//METIS_PartGraphRecursiveLinkage = 7,
// ALU sfc without linkage
ALUGRID_SpaceFillingCurve = 9,
ALUGRID_SpaceFillingCurveSerial = 10,
// METIS method for graph partitioning
METIS_PartGraphKway = 11,
METIS_PartGraphRecursive = 12,
// ZOLTAN partitioning
ZOLTAN_LB_HSFC = 13 ,
ZOLTAN_LB_GraphPartitioning = 14 ,
ZOLTAN_LB_PARMETIS = 15

◆ size() [1/4]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::size ( GeometryType  type) const

number of leaf entities per geometry type in this process

◆ size() [2/4]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::size ( int  codim) const

number of leaf entities per codim in this process

◆ size() [3/4]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::size ( int  level,
GeometryType  type 
) const

number of entities per level and geometry type in this process

◆ size() [4/4]

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::size ( int  level,
int  cd 
) const

number of grid entities per level and codim

◆ twists()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
template<int cd>
Codim< cd >::Twists Dune::ALU3dGrid< dim, dimworld, elType, Comm >::twists ( GeometryType  type) const
inline

◆ updateStatus()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline_tmp void Dune::ALU3dGrid< dim, dimworld, elType, Comm >::updateStatus

◆ vertexProjections()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALUGridVertexProjectionPairType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::vertexProjections ( ) const
inline

◆ writeMacroGrid()

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
alu_inline bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::writeMacroGrid ( const std::string  path,
const std::string  filename,
const ALU3DSPACE MacroFileHeader::Format  format = ALU3DSPACE MacroFileHeader::defaultFormat 
) const

write macro grid in ALUGrid macro format to path/filename.rank

Member Data Documentation

◆ coarsenMarked_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::coarsenMarked_
mutableprotected

◆ communications_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::unique_ptr< Communications > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::communications_
protected

◆ dimension

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::dimension = BaseType::dimension
static

◆ dimensionworld

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::dimensionworld = BaseType::dimensionworld
static

◆ elementType

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const ALU3dGridElementType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::elementType = elType
static

◆ geomTypes_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::vector< std::vector<GeometryType> > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::geomTypes_
protected

◆ ghostLeafList_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALU3dGridItemListType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ghostLeafList_[3]
mutableprotected

◆ ghostLevelList_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::vector< ALU3dGridItemListType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::ghostLevelList_[3]
mutableprotected

◆ globalIdSet_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::unique_ptr< GlobalIdSetImp > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::globalIdSet_
mutableprotected

◆ hIndexSet_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
HierarchicIndexSet Dune::ALU3dGrid< dim, dimworld, elType, Comm >::hIndexSet_
protected

◆ leafIndexSet_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::unique_ptr< LeafIndexSetImp > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafIndexSet_
mutableprotected

◆ leafVertexList_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
LeafVertexListType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::leafVertexList_
mutableprotected

◆ levelEdgeList_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::vector< ALU3dGridItemListType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::levelEdgeList_
mutableprotected

◆ levelIndexVec_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::vector< std::shared_ptr< LevelIndexSetImp > > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::levelIndexVec_
mutableprotected

◆ localIdSet_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
LocalIdSetImp Dune::ALU3dGrid< dim, dimworld, elType, Comm >::localIdSet_
protected

◆ lockPostAdapt_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
bool Dune::ALU3dGrid< dim, dimworld, elType, Comm >::lockPostAdapt_
protected

◆ macroBoundarySegmentIndexSet_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
BoundarySegmentIndexSetType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::macroBoundarySegmentIndexSet_
mutableprotected

◆ maxlevel_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::maxlevel_
protected

◆ mygrid_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::unique_ptr< GitterImplType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::mygrid_
mutableprotected

◆ refineMarked_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
int Dune::ALU3dGrid< dim, dimworld, elType, Comm >::refineMarked_
mutableprotected

◆ refinementType_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
const ALUGridRefinementType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::refinementType_
protected

◆ sizeCache_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::unique_ptr< SizeCacheType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::sizeCache_
protected

◆ vertexList_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
std::vector< VertexListType > Dune::ALU3dGrid< dim, dimworld, elType, Comm >::vertexList_
mutableprotected

◆ vertexProjections_

template<int dim, int dimworld, ALU3dGridElementType elType, class Comm >
ALUGridVertexProjectionPairType Dune::ALU3dGrid< dim, dimworld, elType, Comm >::vertexProjections_
protected

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