3 #ifndef DUNE_ALU3DGRIDGRID_HH 4 #define DUNE_ALU3DGRIDGRID_HH 13 #include <dune/common/bigunsignedint.hh> 14 #include <dune/common/deprecated.hh> 16 #include <dune/geometry/referenceelements.hh> 39 #include <dune/common/parallel/mpihelper.hh> 41 #if ALU3DGRID_PARALLEL 42 #include <dune/common/parallel/mpicollectivecommunication.hh> 44 #include <dune/common/parallel/collectivecommunication.hh> 51 template<
int cd,
int dim,
class Gr
idImp>
52 class ALU3dGridEntity;
53 template<
int cd, PartitionIteratorType pitype,
class Gr
idImp >
54 class ALU3dGridLevelIterator;
55 template<
int cd,
class Gr
idImp >
56 class ALU3dGridEntityPointerBase;
57 template<
int cd,
class Gr
idImp >
58 class ALU3dGridEntitySeed;
59 template<
int cd,
class Gr
idImp >
60 class ALU3dGridEntityPointer;
61 template<
int mydim,
int coorddim,
class Gr
idImp>
62 class ALU3dGridGeometry;
63 template<
class Gr
idImp>
64 class ALU3dGridHierarchicIterator;
65 template<
class Gr
idImp>
66 class ALU3dGridIntersectionIterator;
67 template<
class Gr
idImp>
69 template<
int codim, PartitionIteratorType pitype,
class Gr
idImp>
71 template <
int mydim,
int coorddim,
class Gr
idImp>
73 template <
class Gr
idImp>
75 template< ALU3dGr
idElementType,
class >
77 template< ALU3dGr
idElementType,
class >
79 template< ALU3dGr
idElementType,
class >
81 template <
class EntityImp>
85 template <
class Gr
idImp,
class GeometryImp,
int nChild>
87 template< ALU3dGr
idElementType elType,
class Comm >
95 #if ALU3DGRID_PARALLEL 96 template< ALU3dGr
idElementType elType,
class Comm = MPI_Comm >
98 #else // #if ALU3DGRID_PARALLEL 99 template< ALU3dGr
idElementType elType,
class Comm = No_Comm >
101 #endif // #else // #if ALU3DGRID_PARALLEL 103 template <
class Comm >
109 template <
class Comm>
121 template <
class GitterImpl >
123 const bool conformingRefinement )
125 #ifdef ALUGRID_3D_CONFORMING_REFINEMENT 126 if( grid && conformingRefinement )
128 grid->enableConformingClosure();
129 grid->disableGhostCells();
136 template< ALU3dGr
idElementType elType,
class Comm >
139 template< ALU3dGr
idElementType elType >
156 const bool conformingRefinement )
158 GitterImplType* grid = ( macroName.empty() ) ?
159 new GitterImplType() :
new GitterImplType ( macroName.c_str(), projection );
161 checkForConformingRefinement( grid, conformingRefinement );
166 const bool conformingRefinement )
168 #ifdef ALUGRID_CONSTRUCTION_WITH_STREAMS 169 GitterImplType* grid =
new GitterImplType ( stream, projection );
171 checkForConformingRefinement( grid, conformingRefinement );
180 static int getRank ( No_Comm comm ) {
return 0; }
184 ALU3DSPACE Gitter::Geometric::BuilderIF* builder =
185 dynamic_cast< ALU3DSPACE Gitter::Geometric::BuilderIF*
>( &grid.container() );
187 DUNE_THROW(InvalidStateException,
"dynamic_cast of ALUGrid builder failed");
196 #if ALU3DGRID_PARALLEL 197 template< ALU3dGr
idElementType elType >
210 : ccobj_( comm ), mpAccess_( comm )
213 int nlinks ()
const {
return mpAccess_.nlinks(); }
215 GitterImplType *createALUGrid (
const std::string ¯oName,
ALU3DSPACE ProjectVertex *projection,
216 const bool conformingRefinement )
218 GitterImplType* grid =
new GitterImplType( macroName.c_str(), mpAccess_, projection );
220 checkForConformingRefinement( grid, conformingRefinement );
224 GitterImplType *createALUGrid ( std::istream& stream,
ALU3DSPACE ProjectVertex *projection,
225 const bool conformingRefinement )
227 #ifdef ALUGRID_CONSTRUCTION_WITH_STREAMS 228 GitterImplType* grid =
new GitterImplType ( stream, mpAccess_, projection );
230 checkForConformingRefinement( grid, conformingRefinement );
237 static MPI_Comm defaultComm () {
return MPI_COMM_WORLD; }
239 static int getRank ( MPI_Comm comm )
242 MPI_Comm_rank( comm, &rank );
246 static typename ALU3DSPACE Gitter::Geometric::BuilderIF &getBuilder ( GitterImplType &grid )
248 ALU3DSPACE Gitter::Geometric::BuilderIF* builder =
249 dynamic_cast< ALU3DSPACE Gitter::Geometric::BuilderIF*
>( &grid.containerPll() );
251 DUNE_THROW(InvalidStateException,
"dynamic_cast of ALUGrid builder failed");
255 static void duneNotifyMacroGridChanges ( GitterImplType &grid )
257 grid.duneNotifyMacroGridChanges();
260 CollectiveCommunication ccobj_;
263 #endif // #if ALU3DGRID_PARALLEL 270 template< ALU3dGr
idElementType elType,
class Comm >
276 static const int dim = 3;
277 static const int dimworld = 3;
331 template< PartitionIteratorType pitype >
342 template< PartitionIteratorType pitype >
400 template< ALU3dGr
idElementType elType,
class Comm >
403 ALU3dGridFamily< elType, Comm > >,
411 typedef ThisType MyType;
464 enum { refineStepsForHalf = 1 };
474 static const int dimension = BaseType::dimension;
475 static const int dimensionworld = BaseType::dimensionworld;
547 newElementsChunk_ = 128
569 ALU3dGrid (
const std::string ¯oTriangFilename,
570 const MPICommunicatorType mpiComm,
571 const DuneBoundaryProjectionType *bndPrj,
572 const DuneBoundaryProjectionVector *bndVec,
573 const ALUGridRefinementType refinementType ) DUNE_DEPRECATED_MSG(
"ALUGrid is deprecated, please use the new module DUNE-ALUGrid.");
580 static inline std::string name ();
585 int maxLevel()
const;
588 template<
int cd, PartitionIteratorType pitype>
590 lbegin (
int level)
const;
593 template<
int cd, PartitionIteratorType pitype>
595 lend (
int level)
const;
601 lbegin (
int level)
const;
607 lend (
int level)
const;
611 template <
int codim, PartitionIteratorType pitype>
613 leafbegin(
int level)
const;
616 template <
int codim, PartitionIteratorType pitype>
618 leafend(
int level)
const;
623 leafbegin(
int level)
const;
628 leafend(
int level)
const;
631 LeafIteratorType leafbegin (
int level)
const;
634 LeafIteratorType leafend (
int level)
const;
637 LeafIteratorType leafbegin ()
const;
640 LeafIteratorType leafend ()
const;
644 template <
int codim, PartitionIteratorType pitype>
649 template <
int codim, PartitionIteratorType pitype>
665 template <
int codim, PartitionIteratorType pitype>
667 createLeafIteratorBegin (
int level)
const;
670 template <
int codim, PartitionIteratorType pitype>
672 createLeafIteratorEnd(
int level)
const;
676 int size (
int level,
int cd)
const;
679 int size (
int codim)
const;
685 size_t numBoundarySegments()
const;
691 int global_size (
int cd)
const ;
694 int hierSetSize (
int cd)
const;
700 globalIdSet_ =
new GlobalIdSetImp( *
this );
701 return *globalIdSet_;
705 const LocalIdSet &
localIdSet ()
const {
return localIdSet_; }
745 template <
class DataHandle>
746 bool loadBalance (DataHandle & data);
748 template<
class DataHandleImpl,
class Data >
752 LBHandle lbHandle( *
this, dataHandle );
753 return loadBalance( lbHandle );
757 int ghostSize (
int level,
int codim)
const;
763 int ghostSize (
int codim)
const;
769 template<
class DataHandleImp,
class DataTypeImp>
776 template<
class DataHandleImp,
class DataTypeImp>
785 const CollectiveCommunication &
comm ()
const {
return communications().ccobj_; }
800 template<
class Gr
idImp,
class DataHandle >
804 void globalRefine (
int refCount );
806 template<
class Gr
idImp,
class DataHandle >
814 template <GrapeIOFileFormatType ftype>
815 bool writeGrid(
const std::string filename,
alu3d_ctype time )
const ;
817 bool writeGrid_Xdr(
const std::string filename,
alu3d_ctype time )
const ;
819 bool writeGrid_Ascii(
const std::string filename,
alu3d_ctype time,
bool scientific =
false )
const ;
823 bool writeMacroGrid(
const std::string path,
const std::string filename )
const ;
827 template <GrapeIOFileFormatType ftype>
828 bool readGrid(
const std::string filename,
alu3d_ctype & time );
831 void backup( std::ostream& )
const ;
834 void restore( std::istream& ) ;
841 void setMaxLevel (
int mxl);
844 void updateStatus ();
847 bool mark(
int refCount ,
const typename Traits::template
Codim<0>::Entity & e);
855 return Communications::defaultComm();
858 using BaseType :: getRealImplementation ;
860 template<
class IntersectionType >
861 static const typename BaseType
862 :: template ReturnImplementationType< IntersectionType >
863 :: ImplementationType &
866 return getRealImplementation( intersection );
870 const std::vector<GeometryType>&
geomTypes (
int codim)
const {
return geomTypes_[codim]; }
875 GitterImplType &myGrid ()
const;
879 assert( communications_ );
880 return communications_->createALUGrid( macroName, vertexProjection(), conformingRefinement() );
885 assert( communications_ );
886 return communications_->createALUGrid( stream, vertexProjection(), conformingRefinement() );
889 ALUGridVertexProjectionType*
vertexProjection() {
return (ALUGridVertexProjectionType *) vertexProjection_; }
894 return Communications::getBuilder( myGrid() );
900 Communications::duneNotifyMacroGridChanges( myGrid() );
906 template <
class EntitySeed >
912 return ALUPointer( factory(), seed ) ;
916 int nlinks ()
const {
return communications().nlinks(); }
920 if( !leafVertexList_.up2Date() ) leafVertexList_.
setupVxList(*
this);
921 return leafVertexList_;
926 assert( leafVertexList_.up2Date() );
927 return leafVertexList_.getLevel(vertex);
932 assert( level >= 0 );
933 assert( level <= maxLevel() );
934 VertexListType & vxList = vertexList_[level];
941 assert( codim >= 1 );
942 assert( codim <= 3 );
943 return ghostLeafList_[codim-1];
948 assert( codim >= 1 );
949 assert( codim <= 3 );
951 assert( level >= 0 );
952 assert( level <= maxLevel() );
953 return ghostLevelList_[codim-1][level];
958 assert( level >= 0 );
959 assert( level <= maxLevel() );
960 return levelEdgeList_[level];
968 const ThisType &operator= (
const ThisType & );
977 void recalcGlobalSize();
980 void checkMacroGridFile (
const std::string filename);
996 assert( segmentIndex < (
int) bndVec_->size() );
997 return (*bndVec_)[ segmentIndex ];
1003 assert( communications_ );
1004 return *communications_;
1008 #ifdef USE_SMP_PARALLEL 1009 assert( (
int) factoryVec_.size() > GridObjectFactoryType :: threadNumber() );
1010 return factoryVec_[ GridObjectFactoryType :: threadNumber() ];
1026 #ifdef ALUGRID_3D_CONFORMING_REFINEMENT 1027 return myGrid().ghostCellsEnabled();
1050 enum { numberOfGeomTypes = 1 };
1071 mutable VertexListType vertexList_[MAXL];
1084 #ifdef USE_SMP_PARALLEL 1085 std::vector< GridObjectFactoryType > factoryVec_;
1111 const std::string filename );
1114 namespace Capabilities
1117 template< ALU3dGr
idElementType elType,
class Comm,
int cdim >
1120 static const bool v =
true;
1123 template< ALU3dGr
idElementType elType,
class Comm >
1124 struct DUNE_DEPRECATED_MSG("Capabilities::
isParallel will be removed after dune-grid-2.4.")
isParallel< ALU3dGrid< elType, Comm > >
1126 static const bool DUNE_DEPRECATED_MSG(
"Capabilities::isParallel will be removed after dune-grid-2.4.") v = true;
1132 static const bool v =
true;
1135 template< ALU3dGr
idElementType elType,
class Comm >
1138 static const bool v =
true;
1146 #if COMPILE_ALUGRID_INLINE 1147 #include "grid_imp.cc" Traits::LocalIdSet LocalIdSet
Type of the local id set.
Definition: alugrid/3d/grid.hh:527
static const BaseType::template ReturnImplementationType< IntersectionType >::ImplementationType & getRealIntersection(const IntersectionType &intersection)
Definition: alugrid/3d/grid.hh:864
Definition: objectfactory.hh:23
GridObjectFactoryType factory_
Definition: alugrid/3d/grid.hh:1087
int getLevelOfLeafVertex(const typename ALU3dImplTraits< elType, Comm >::VertexType &vertex) const
Definition: alugrid/3d/grid.hh:924
LeafVertexListType & getLeafVertexList() const
Definition: alugrid/3d/grid.hh:918
const char * elType2Name(ALU3dGridElementType elType)
GridFamily::GlobalIdType GlobalIdType
type of ALU3dGrids global id
Definition: alugrid/3d/grid.hh:297
Id Set Interface.
Definition: common/grid.hh:362
Interface class for the Grid's adapt method where the parameter is a AdaptDataHandleInterface.
Definition: adaptcallback.hh:30
Traits::template Codim< 0 >::LeafIterator LeafIterator
Definition: alugrid/3d/grid.hh:532
double alu3d_ctype
Definition: alu3dinclude.hh:59
bool checkMacroGrid(ALU3dGridElementType elType, const std::string filename)
Traits::GlobalIdSet GlobalIdSet
Type of the global id set.
Definition: alugrid/3d/grid.hh:524
ALU3dGridLeafIterator< 0, All_Partition, const ThisType > LeafIteratorImp
Definition: alugrid/3d/grid.hh:530
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:306
DefaultIndexSet creates an index set by using the grids persistent container an a given pair of itera...
Definition: defaultindexsets.hh:66
[ provides Dune::Grid ]
Definition: alugrid/3d/entity.hh:36
Specialize with 'true' if implementation guarantees conforming level grids. (default=false) ...
Definition: common/capabilities.hh:98
Intersection of a mesh entities of codimension 0 ("elements") with a "neighboring" element or with th...
Definition: albertagrid/dgfparser.hh:26
Dune::Intersection< const Grid, LeafIntersectionWrapper< const Grid > > LeafIntersection
Definition: alugrid/3d/grid.hh:301
Dune::Geometry< dim-cd, dimworld, const Grid, ALU3dGridGeometry > Geometry
Definition: alugrid/3d/grid.hh:320
int nlinks() const
Definition: alugrid/3d/grid.hh:916
Definition: alugrid/3d/grid.hh:68
bool ghostCellsEnabled() const
Definition: alugrid/3d/grid.hh:1024
Provides a Interfaces for detection of specific behavior.
Dune::GridView< DefaultLeafGridViewTraits< const Grid, pitype > > LeafGridView
Definition: alugrid/3d/grid.hh:346
std::vector< const DuneBoundaryProjectionType * > DuneBoundaryProjectionVector
Definition: alugrid/3d/grid.hh:312
Definition: alugrid/3d/grid.hh:76
Interface class for vertex projection at the boundary.
Definition: boundaryprojection.hh:23
Wrapper class for geometries.
Definition: common/geometry.hh:65
Definition: intersectioniteratorwrapper.hh:210
Dune::Geometry< dim-cd, dim, const Grid, ALU3dGridGeometry > LocalGeometry
Definition: alugrid/3d/grid.hh:321
GridFamily::Traits Traits
Definition: alugrid/3d/grid.hh:472
DefaultIndexSet< GridImp, typename Codim< 0 >::LeafIterator > LeafIndexSetImp
Type of the leaf index set.
Definition: alugrid/3d/grid.hh:353
int maxlevel_
Definition: alugrid/3d/grid.hh:1043
Definition: alugrid/3d/entity.hh:468
Dune::GridView< DefaultLevelGridViewTraits< const Grid, pitype > > LevelGridView
Definition: alugrid/3d/grid.hh:345
Specialize with 'true' if implementation provides backup and restore facilities. (default=false) ...
Definition: common/capabilities.hh:116
SizeCache< MyType > SizeCacheType
Definition: alugrid/3d/grid.hh:1081
GridFamily::LocalIdType LocalIdType
type of ALU3dGrids local id
Definition: alugrid/3d/grid.hh:294
Definition: alugrid/common/declaration.hh:67
ALU3dGridItemListType & getGhostLevelList(int codim, int level) const
Definition: alugrid/3d/grid.hh:946
ALU3dGrid< elType, Comm > GridImp
Definition: alugrid/3d/grid.hh:273
ALU3DSPACE GatherScatterType::ObjectStreamType ObjectStreamType
Definition: alugrid/3d/grid.hh:467
organize the memory management for entitys used by the NeighborIterator
Definition: alugrid/2d/grid.hh:68
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
Definition: alugrid/3d/grid.hh:72
Definition: alugrid/2d/grid.hh:72
Definition: alugrid/common/declaration.hh:18
CommunicationDirection
Define a type for communication direction parameter.
Definition: gridenums.hh:168
const ReferenceElementType & referenceElement_
Definition: alugrid/3d/grid.hh:1069
int LocalIdType
type of ALU3dGrids local id
Definition: alugrid/3d/grid.hh:289
Wrapper class for entities.
Definition: common/entity.hh:61
ALU3dGridCommunications< elType, Comm >::GlobalId GlobalIdType
type of ALU3dGrids global id
Definition: alugrid/3d/grid.hh:286
ALUGridBoundaryProjection< ThisType, alu3d_ctype > ALUGridBoundaryProjectionType
Definition: alugrid/3d/grid.hh:515
Traits::DuneBoundaryProjectionVector DuneBoundaryProjectionVector
boundary projection type
Definition: alugrid/3d/grid.hh:496
int GlobalId
Definition: alugrid/3d/grid.hh:145
Definition: alugrid/3d/grid.hh:119
DuneBoundaryProjection< dimworld > DuneBoundaryProjectionType
Definition: alugrid/3d/grid.hh:311
GridFamily::LevelIndexSetImp LevelIndexSetImp
Type of the level index set, needed by data handle.
Definition: alugrid/3d/grid.hh:486
Dune::Intersection< const Grid, LevelIntersectionWrapper< const Grid > > LevelIntersection
Definition: alugrid/3d/grid.hh:302
DefaultIndexSet< GridImp, typename Codim< 0 >::LevelIterator > LevelIndexSetImp
Type of the level index set.
Definition: alugrid/3d/grid.hh:350
Traits::LeafIndexSetImp LeafIndexSetImp
Type of the leaf index set implementation.
Definition: alugrid/3d/grid.hh:367
const std::vector< GeometryType > & geomTypes(int codim) const
deliver all geometry types used in this grid
Definition: alugrid/3d/grid.hh:870
bool conformingRefinement() const
Definition: alugrid/3d/grid.hh:1018
Definition: lbdatahandle.hh:14
Provides proxy classes for IntersectionsIterators.
IndexSet< Grid, LeafIndexSetImp > LeafIndexSet
Definition: alugrid/3d/grid.hh:356
ALU3dGridHierarchicIterator< const ThisType > HierarchicIteratorImp
Definition: alugrid/3d/grid.hh:534
const Communications & communications() const
Definition: alugrid/3d/grid.hh:1001
const GlobalIdSet & globalIdSet() const
get global id set of grid
Definition: alugrid/3d/grid.hh:697
IdSet< Grid, GlobalIdSetImp, GlobalIdType > GlobalIdSet
Definition: alugrid/3d/grid.hh:358
Definition: alugrid/3d/entity.hh:32
Dune::IntersectionIterator< const Grid, LeafIntersectionIteratorWrapper< const Grid >, LeafIntersectionWrapper< const Grid > > IntersectionIterator
Definition: alugrid/3d/grid.hh:304
Wrapper class for pointers to entities.
Definition: common/entitypointer.hh:112
Definition: common/geometry.hh:24
ALUGridObjectFactory< ThisType > GridObjectFactoryType
Definition: alugrid/3d/grid.hh:510
Definition: alu3dinclude.hh:201
Dune::EntityIterator< 0, const Grid, ALU3dGridHierarchicIterator< const Grid > > HierarchicIterator
Definition: alugrid/3d/grid.hh:309
Definition: alugrid/3d/entity.hh:26
ReferenceElement< alu3d_ctype, dimension > ReferenceElementType
reference element type
Definition: alugrid/3d/grid.hh:491
Definition: alugrid/common/declaration.hh:18
const CollectiveCommunication & comm() const
return const reference to a collective communication object. The return type is a model of Dune::Coll...
Definition: alugrid/3d/grid.hh:785
SizeCacheType * sizeCache_
Definition: alugrid/3d/grid.hh:1082
ALU3dGrid< hexa, Comm > BaseGrid
Definition: alugrid/3d/grid.hh:106
Tagging interface to indicate that Grid provides typedef ObjectStreamType.
Definition: interfaces.hh:16
GridFamily::GridImp Grid
Definition: alugrid/3d/grid.hh:299
Partition< All_Partition >::LevelIterator LevelIterator
Definition: alugrid/3d/grid.hh:338
std::vector< LevelIndexSetImp * > levelIndexVec_
Definition: alugrid/3d/grid.hh:1063
virtual GitterImplType * createALUGrid(const std::string ¯oName)
Definition: alugrid/3d/grid.hh:877
ALU3dGridCommunications< elType, Comm > Communications
Definition: alugrid/3d/grid.hh:561
int overlapSize(int level, int codim) const
overlapSize is zero for this grid
Definition: alugrid/3d/grid.hh:760
CommDataHandleIF describes the features of a data handle for communication in parallel runs using the...
Definition: datahandleif.hh:72
VertexListType & getVertexList(int level) const
Definition: alugrid/3d/grid.hh:930
Definition: alugrid/3d/grid.hh:271
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:327
Describes the parallel communication interface class for MessageBuffers and DataHandles.
Definition: alugrid/3d/grid.hh:291
Definition: alu3dinclude.hh:329
Definition: alugrid/common/declaration.hh:20
Dune::EntityPointer< const Grid, EntityPointerImpl > EntityPointer
Definition: alugrid/3d/grid.hh:329
Index Set Interface base class.
Definition: common/grid.hh:361
ALUGridBoundaryProjectionType * vertexProjection_
Definition: alugrid/3d/grid.hh:1100
Communications * communications_
Definition: alugrid/3d/grid.hh:1103
const HierarchicIndexSet & hierarchicIndexSet() const
Definition: alugrid/3d/grid.hh:837
Definition: alugrid/3d/entity.hh:28
GitterImplType * mygrid_
Definition: alugrid/3d/grid.hh:1040
Provides size cache classes to implement the grids size method efficiently.
int nlinks() const
Definition: alugrid/3d/grid.hh:153
Definition: alugrid/3d/grid.hh:343
Dune::IntersectionIterator< const Grid, LeafIntersectionIteratorWrapper< const Grid >, LeafIntersectionWrapper< const Grid > > LeafIntersectionIterator
Definition: alugrid/3d/grid.hh:306
bool lockPostAdapt_
Definition: alugrid/3d/grid.hh:1091
ALU3dGridLevelIntersectionIterator< const ThisType > LevelIntersectionIteratorImp
Definition: alugrid/3d/grid.hh:453
GridFamily::LeafIndexSetImp LeafIndexSetImp
Type of the leaf index set, needed by data handle.
Definition: alugrid/3d/grid.hh:488
GitterImplType * createALUGrid(std::istream &stream, ALU3DSPACE ProjectVertex *projection, const bool conformingRefinement)
Definition: alugrid/3d/grid.hh:165
void checkForConformingRefinement(GitterImpl *grid, const bool conformingRefinement)
Definition: alugrid/3d/grid.hh:122
LocalIdSetImp localIdSet_
Definition: alugrid/3d/grid.hh:1060
Definition: alugrid/3d/entity.hh:30
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:18
ALU3dGridEntityPointer< cd, const Grid > EntityPointerImpl
Definition: alugrid/3d/grid.hh:328
ALU3dGridIntersectionIterator< const ThisType > LeafIntersectionIteratorImp
Definition: alugrid/3d/grid.hh:451
ALU3dImplTraits< elType, Comm >::GitterImplType GitterImplType
Definition: alugrid/3d/grid.hh:536
ObjectStreamType OutStreamType
Definition: alugrid/3d/grid.hh:469
MakeableInterfaceObject< typename Traits::template Codim< 0 >::Entity > EntityObject
Definition: alugrid/3d/grid.hh:505
Definition: alugrid/3d/grid.hh:78
ALU3dGridLeafVertexList< Comm > LeafVertexListType
Definition: alugrid/3d/grid.hh:565
const DuneBoundaryProjectionVector * bndVec_
Definition: alugrid/3d/grid.hh:1097
Definition: alugrid/3d/grid.hh:74
Traits::LevelIndexSetImp LevelIndexSetImp
Type of the level index set implementation.
Definition: alugrid/3d/grid.hh:364
Dune::CollectiveCommunication< Comm > CollectiveCommunication
Definition: alugrid/3d/grid.hh:360
HierarchicIndexSet hIndexSet_
Definition: alugrid/3d/grid.hh:1054
ALU3dGrid< tetra, Comm > BaseGrid
Definition: alugrid/3d/grid.hh:112
virtual void duneNotifyMacroGridChanges()
Definition: alugrid/3d/grid.hh:898
CollectiveCommunication ccobj_
Definition: alugrid/3d/grid.hh:193
Leaf iterator.
Definition: alugrid/3d/entity.hh:34
GatherScatter GatherScatterType
Definition: alu3dinclude.hh:49
static ALU3DSPACE Gitter::Geometric::BuilderIF & getBuilder(GitterImplType &grid)
Definition: alugrid/3d/grid.hh:182
ALU3dGridFamily< elType, Comm > GridFamily
Definition: alugrid/3d/grid.hh:471
virtual ALU3DSPACE Gitter::Geometric::BuilderIF & getBuilder() const
Definition: alugrid/3d/grid.hh:892
Traits::CollectiveCommunication CollectiveCommunication
type of collective communication object
Definition: alugrid/3d/grid.hh:502
Dune::CollectiveCommunication< No_Comm > CollectiveCommunication
Definition: alugrid/3d/grid.hh:149
static int getRank(No_Comm comm)
Definition: alugrid/3d/grid.hh:180
ALUGridVertexProjectionType * vertexProjection()
Definition: alugrid/3d/grid.hh:889
Traits::DuneBoundaryProjectionType DuneBoundaryProjectionType
boundary projection type
Definition: alugrid/3d/grid.hh:494
Grid view abstract base class.
Definition: common/gridview.hh:58
int overlapSize(int codim) const
overlapSize is zero for this grid
Definition: alugrid/3d/grid.hh:766
Definition: alugrid/3d/indexsets.hh:171
Dune::Entity< cd, dim, const Grid, ALU3dGridEntity > Entity
Definition: alugrid/3d/grid.hh:323
ALUGrid boundary projection implementation DuneBndProjection has to fulfil the DuneBoundaryProjection...
Definition: common/bndprojection.hh:11
static MPICommunicatorType defaultCommunicator()
Definition: alugrid/3d/grid.hh:853
Partition< All_Partition >::LeafIterator LeafIterator
Definition: alugrid/3d/grid.hh:339
MakeableInterfaceObject< typename Traits::template Codim< 2 >::Entity > EdgeObject
Definition: alugrid/3d/grid.hh:507
GridFamily::LocalIdSetImp LocalIdSetImp
Type of the local id set.
Definition: alugrid/3d/grid.hh:518
const ALUGridRefinementType refinementType_
Definition: alugrid/3d/grid.hh:1106
ALU3dGridItemListType & getGhostLeafList(int codim) const
Definition: alugrid/3d/grid.hh:939
Provides default index set implementations for Level- and LeafIndexsets used by ALUGrid.
Definition: alu3dinclude.hh:296
LeafVertexListType leafVertexList_
Definition: alugrid/3d/grid.hh:1078
interface class for an iterator over grid entitiesAn entity iterator is an iterator over a subset of ...
Definition: entityiterator.hh:35
MakeableInterfaceObject< typename Traits::template Codim< 0 >::Geometry > GeometryObject
Definition: alugrid/3d/grid.hh:478
Types for GridView.
Definition: common/grid.hh:420
Definition: common.hh:179
const LocalIdSet & localIdSet() const
get global id set of grid
Definition: alugrid/3d/grid.hh:705
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
Include standard header files.
Definition: agrid.hh:59
ALU3dGridGeometry< dim-cd, dimworld, const Grid > GeometryImpl
Definition: alugrid/3d/grid.hh:318
Definition: common/entityseed.hh:28
ALU3dGridEntitySeed< cd, const Grid > EntitySeed
Definition: alugrid/3d/grid.hh:326
Definition: alugrid/3d/grid.hh:315
GridFamily::GlobalIdSetImp GlobalIdSetImp
Definition: alugrid/3d/grid.hh:520
void setupVxList(const GridType &grid, int level)
#define ALU3DSPACE
Definition: alu3dinclude.hh:26
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/grid.hh:360
std::vector< std::vector< GeometryType > > geomTypes_
Definition: alugrid/3d/grid.hh:1051
const DuneBoundaryProjectionType * boundaryProjection(const int segmentIndex) const
return boudanry projection for given segment Id
Definition: alugrid/3d/grid.hh:986
Definition: alugrid/3d/grid.hh:84
int coarsenMarked_
Definition: alugrid/3d/grid.hh:1046
ALU3dGridElementType
Definition: topology.hh:13
Comm MPICommunicatorType
Definition: alugrid/3d/grid.hh:559
organizes the caching of sizes for one grid and one GeometryType
Definition: sizecache.hh:29
ALU3dGridItemListType & getEdgeList(int level) const
Definition: alugrid/3d/grid.hh:956
ObjectStreamType InStreamType
Definition: alugrid/3d/grid.hh:468
ALU3dGridCommunications(No_Comm comm)
Definition: alugrid/3d/grid.hh:151
MakeableInterfaceObject< typename Traits::template Codim< 3 >::Entity > VertexObject
Definition: alugrid/3d/grid.hh:508
Traits::template Codim< 0 >::LeafIterator LeafIteratorType
Definition: alugrid/3d/grid.hh:531
A set of traits classes to store static information about grid implementation.
const DuneBoundaryProjectionType * bndPrj_
Definition: alugrid/3d/grid.hh:1094
LeafIndexSetImp * leafIndexSet_
Definition: alugrid/3d/grid.hh:1066
Definition: alugrid/3d/grid.hh:137
ALU3dGridLocalIdSet< elType, Comm > LocalIdSetImp
Type of the local id set.
Definition: alugrid/3d/grid.hh:280
ALU3dGridFamily< elType, Comm > GridFamily
Definition: alugrid/3d/grid.hh:274
Specialize with 'true' for all codims that a grid implements entities for. (default=false) ...
Definition: common/capabilities.hh:57
Traits::template Codim< EntitySeed::codimension >::EntityPointer entityPointer(const EntitySeed &seed) const
Definition: alugrid/3d/grid.hh:908
Definition: alugrid/3d/grid.hh:332
Definition: alugrid/3d/grid.hh:88
Different resources needed by all grid implementations.
bool up2Date() const
Definition: alu3dinclude.hh:309
IndexSet< Grid, LevelIndexSetImp > LevelIndexSet
Definition: alugrid/3d/grid.hh:355
Dune::IntersectionIterator< const Grid, LevelIntersectionIteratorWrapper< const Grid >, LevelIntersectionWrapper< const Grid > > LevelIntersectionIterator
Definition: alugrid/3d/grid.hh:307
ALUGridRefinementType
available refinement types for ALUGrid
Definition: alugrid/common/declaration.hh:20
const GridObjectFactoryType & factory() const
Definition: alugrid/3d/grid.hh:1007
Tagging interface to indicate that Grid has HierarchicIndexSet.
Definition: interfaces.hh:51
ALU3DSPACE ProjectVertex ALUGridVertexProjectionType
type of ALUGrid Vertex Projection Interface
Definition: alugrid/3d/grid.hh:499
void setupVxList(const GridType &grid)
GlobalIdSetImp * globalIdSet_
Definition: alugrid/3d/grid.hh:1057
Specialize with 'true' if implementation supports parallelism. (default=false)
Definition: common/capabilities.hh:68
hierarchic index set of ALU3dGrid
Definition: alugrid/3d/grid.hh:80
ALU3dGridCommunications< elType, Comm >::GlobalIdSet GlobalIdSetImp
Type of the global id set.
Definition: alugrid/3d/grid.hh:283
const ReferenceElementType & referenceElement() const
return reference to Dune reference element according to elType
Definition: alugrid/3d/grid.hh:904
Definition: alugrid/3d/entity.hh:22
ALU3DSPACE GitterDuneImpl GitterImplType
Definition: alugrid/3d/grid.hh:147
Dune::EntityIterator< cd, const Grid, ALU3dGridLevelIterator< cd, pitype, const Grid > > LevelIterator
Definition: alugrid/3d/grid.hh:334
ALU3dGridHierarchicIndexSet< elType, Comm > HierarchicIndexSet
Type of the hierarchic index set.
Definition: alugrid/3d/grid.hh:483
Definition: alugrid/3d/entityseed.hh:10
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:232
MakeableInterfaceObject< typename Traits::template Codim< 1 >::Entity > FaceObject
Definition: alugrid/3d/grid.hh:506
Dune::EntityIterator< cd, const Grid, ALU3dGridLeafIterator< cd, pitype, const Grid > > LeafIterator
Definition: alugrid/3d/grid.hh:335
IdSet< Grid, LocalIdSetImp, LocalIdType > LocalIdSet
Definition: alugrid/3d/grid.hh:357
virtual GitterImplType * createALUGrid(std::istream &stream)
Definition: alugrid/3d/grid.hh:883
bool loadBalance(CommDataHandleIF< DataHandleImpl, Data > &dataHandle)
Definition: alugrid/3d/grid.hh:749
ALU3dGridVertexList< Comm > VertexListType
Definition: alugrid/3d/grid.hh:564
ALU3dGridIntersectionIterator< const ThisType > IntersectionIteratorImp
Definition: alugrid/3d/grid.hh:449
A Traits struct that collects all associated types of one implementation.
Definition: common/grid.hh:437
Definition: alu3dinclude.hh:373
static No_Comm defaultComm()
Definition: alugrid/3d/grid.hh:178
GitterImplType * createALUGrid(const std::string ¯oName, ALU3DSPACE ProjectVertex *projection, const bool conformingRefinement)
Definition: alugrid/3d/grid.hh:155
int refineMarked_
Definition: alugrid/3d/grid.hh:1047
ALU3dGridLocalIdSet< elType, No_Comm > GlobalIdSet
Definition: alugrid/3d/grid.hh:144
static void duneNotifyMacroGridChanges(GitterImplType &grid)
Definition: alugrid/3d/grid.hh:191
Store a reference to an entity with a minimal memory footprint.
Definition: common/entityseed.hh:23
ALU3dGridGeometry< dim-cd, dim, const Grid > LocalGeometryImpl
Definition: alugrid/3d/grid.hh:319