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 >
205 typedef ALU3DSPACE GitterDunePll GitterImplType;
207 typedef Dune::CollectiveCommunication< MPI_Comm > CollectiveCommunication;
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 >
331 template< PartitionIteratorType pitype >
342 template< PartitionIteratorType pitype >
400 template< ALU3dGr
idElementType elType,
class Comm >
403 ALU3dGridFamily< elType, Comm > >,
411 typedef ThisType MyType;
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 ();
588 template<
int cd, PartitionIteratorType pitype>
593 template<
int cd, PartitionIteratorType pitype>
595 lend (
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;
745 template <
class DataHandle>
748 template<
class DataHandleImpl,
class Data >
752 LBHandle lbHandle( *
this, dataHandle );
757 int ghostSize (
int level,
int codim)
const;
769 template<
class DataHandleImp,
class DataTypeImp>
776 template<
class DataHandleImp,
class DataTypeImp>
800 template<
class Gr
idImp,
class DataHandle >
806 template<
class Gr
idImp,
class DataHandle >
814 template <GrapeIOFileFormatType ftype>
823 bool writeMacroGrid(
const std::string path,
const std::string filename )
const ;
827 template <GrapeIOFileFormatType ftype>
831 void backup( std::ostream& )
const ;
834 void restore( std::istream& ) ;
847 bool mark(
int refCount ,
const typename Traits::template Codim<0>::Entity & e);
850 int getMark(
const typename Traits::template Codim<0>::Entity & e)
const;
855 return Communications::defaultComm();
860 template<
class IntersectionType >
861 static const typename BaseType
862 :: template ReturnImplementationType< IntersectionType >
863 :: ImplementationType &
875 GitterImplType &
myGrid ()
const;
894 return Communications::getBuilder(
myGrid() );
900 Communications::duneNotifyMacroGridChanges(
myGrid() );
906 template <
class EntitySeed >
907 typename Traits :: template Codim< EntitySeed :: codimension >
:: EntityPointer
912 return ALUPointer(
factory(), seed ) ;
932 assert( level >= 0 );
941 assert( codim >= 1 );
942 assert( codim <= 3 );
948 assert( codim >= 1 );
949 assert( codim <= 3 );
951 assert( level >= 0 );
958 assert( level >= 0 );
968 const ThisType &
operator= (
const ThisType & );
996 assert( segmentIndex < (
int)
bndVec_->size() );
997 return (*
bndVec_)[ segmentIndex ];
1008 #ifdef USE_SMP_PARALLEL
1026 #ifdef ALUGRID_3D_CONFORMING_REFINEMENT
1027 return myGrid().ghostCellsEnabled();
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"
static int threadNumber()
Definition: objectfactory.hh:196
ALU3dGridItemListType & getEdgeList(int level) const
Definition: alugrid/3d/grid.hh:956
static const ALU3dGridElementType elementType
Definition: alugrid/3d/grid.hh:466
Dune::CollectiveCommunication< Comm > CollectiveCommunication
Definition: alugrid/3d/grid.hh:360
const ReferenceElementType & referenceElement() const
return reference to Dune reference element according to elType
Definition: alugrid/3d/grid.hh:904
Dune::CollectiveCommunication< No_Comm > CollectiveCommunication
Definition: alugrid/3d/grid.hh:149
const Traits::LeafIndexSet & leafIndexSet() const
get leaf index set of the grid
const DuneBoundaryProjectionType * bndPrj_
Definition: alugrid/3d/grid.hh:1094
IdSet< Grid, LocalIdSetImp, LocalIdType > LocalIdSet
Definition: alugrid/3d/grid.hh:357
Partition< All_Partition >::LevelIterator LevelIterator
Definition: alugrid/3d/grid.hh:338
Definition: alu3dinclude.hh:329
Dune::Intersection< const Grid, LeafIntersectionWrapper< const Grid > > LeafIntersection
Definition: alugrid/3d/grid.hh:301
normal default number of new elements for new adapt method
Definition: alugrid/3d/grid.hh:547
ALUGridRefinementType
available refinement types for ALUGrid
Definition: alugrid/common/declaration.hh:20
Definition: alugrid/3d/entity.hh:22
Definition: alugrid/3d/entity.hh:28
Dune::Geometry< dim-cd, dim, const Grid, ALU3dGridGeometry > LocalGeometry
Definition: alugrid/3d/grid.hh:321
ObjectStreamType InStreamType
Definition: alugrid/3d/grid.hh:468
static No_Comm defaultComm()
Definition: alugrid/3d/grid.hh:178
GridFamily::LocalIdType LocalIdType
type of ALU3dGrids local id
Definition: alugrid/3d/grid.hh:294
Wrapper class for pointers to entities.
Definition: common/entitypointer.hh:112
Definition: common/geometry.hh:24
GridFamily::LeafIndexSetImp LeafIndexSetImp
Type of the leaf index set, needed by data handle.
Definition: alugrid/3d/grid.hh:488
ALU3dGridLocalIdSet< elType, No_Comm > GlobalIdSet
Definition: alugrid/3d/grid.hh:144
MakeableInterfaceObject< typename Traits::template Codim< 3 >::Entity > VertexObject
Definition: alugrid/3d/grid.hh:508
const LocalIdSet & localIdSet() const
get global id set of grid
Definition: alugrid/3d/grid.hh:705
static const int dimworld
Definition: alugrid/3d/grid.hh:277
Dune::Intersection< const Grid, LevelIntersectionWrapper< const Grid > > LevelIntersection
Definition: alugrid/3d/grid.hh:302
ALU3dGridGeometry< dim-cd, dim, const Grid > LocalGeometryImpl
Definition: alugrid/3d/grid.hh:319
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator lbegin(int level) const
Iterator to first entity of given codim on level.
DefaultIndexSet creates an index set by using the grids persistent container an a given pair of itera...
Definition: defaultindexsets.hh:66
Dune::EntityPointer< const Grid, EntityPointerImpl > EntityPointer
Definition: alugrid/3d/grid.hh:329
organizes the caching of sizes for one grid and one GeometryType
Definition: sizecache.hh:29
GlobalIdSetImp * globalIdSet_
Definition: alugrid/3d/grid.hh:1057
const Traits::LevelIndexSet & levelIndexSet(int level) const
get level index set of the grid
virtual GitterImplType * createALUGrid(const std::string ¯oName)
Definition: alugrid/3d/grid.hh:877
static const int dimensionworld
Definition: alugrid/3d/grid.hh:475
int getLevel(const VertexType &vertex) const
Definition: alu3dinclude.hh:355
Definition: alugrid/common/declaration.hh:67
ALU3dGridCommunications< elType, Comm > Communications
Definition: alugrid/3d/grid.hh:561
bool conformingRefinement() const
Definition: alugrid/3d/grid.hh:1018
A Traits struct that collects all associated types of one implementation.
Definition: common/grid.hh:437
Definition: alu3dinclude.hh:373
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
DefaultIndexSet< GridImp, typename Codim< 0 >::LeafIterator > LeafIndexSetImp
Type of the leaf index set.
Definition: alugrid/3d/grid.hh:353
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:18
ALU3dGridHierarchicIndexSet< elType, Comm > HierarchicIndexSet
Type of the hierarchic index set.
Definition: alugrid/3d/grid.hh:483
GitterImplType * mygrid_
Definition: alugrid/3d/grid.hh:1040
void recalcGlobalSize()
make grid walkthrough and calc global size
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/grid.hh:360
ALUGridObjectFactory< ThisType > GridObjectFactoryType
Definition: alugrid/3d/grid.hh:510
Definition: common/entityseed.hh:28
static const int dim
Definition: alugrid/3d/grid.hh:276
Wrapper class for geometries.
Definition: common/geometry.hh:65
Definition: alugrid/3d/grid.hh:78
Definition: alugrid/3d/grid.hh:88
Definition: alugrid/3d/grid.hh:74
Dune::GridView< DefaultLeafGridViewTraits< const Grid, pitype > > LeafGridView
Definition: alugrid/3d/grid.hh:346
const Communications & communications() const
Definition: alugrid/3d/grid.hh:1001
ALU3dGridItemListType levelEdgeList_[MAXL]
Definition: alugrid/3d/grid.hh:1076
Traits::LocalIdSet LocalIdSet
Type of the local id set.
Definition: alugrid/3d/grid.hh:527
size_t numBoundarySegments() const
number of boundary segments
Definition: alugrid/2d/grid.hh:72
int GlobalId
Definition: alugrid/3d/grid.hh:145
void globalRefine(int refCount)
uses the interface, mark on entity and refineLocal
bool adapt()
Refine all positive marked leaf entities, coarsen all negative marked entities if possible...
std::vector< LevelIndexSetImp * > levelIndexVec_
Definition: alugrid/3d/grid.hh:1063
bool writeGrid(const std::string filename, alu3d_ctype time) const
write Grid to file in specified FileFormatType
ALU3dGridEntityPointer< cd, const Grid > EntityPointerImpl
Definition: alugrid/3d/grid.hh:328
Traits::CollectiveCommunication CollectiveCommunication
type of collective communication object
Definition: alugrid/3d/grid.hh:502
int nlinks() const
Definition: alugrid/3d/grid.hh:916
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
Definition: alugrid/3d/grid.hh:1050
Traits::LevelIndexSetImp LevelIndexSetImp
Type of the level index set implementation.
Definition: alugrid/3d/grid.hh:364
bool writeMacroGrid(const std::string path, const std::string filename) const
write macro grid in ALUGrid macro format to path/filename.rank
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
void setMaxLevel(int mxl)
void checkMacroGrid()
check whether macro grid has the right element type
GridObjectFactoryType factory_
Definition: alugrid/3d/grid.hh:1087
int overlapSize(int level, int codim) const
overlapSize is zero for this grid
Definition: alugrid/3d/grid.hh:760
Definition: alugrid/3d/grid.hh:68
ALU3dGridIntersectionIterator< const ThisType > IntersectionIteratorImp
Definition: alugrid/3d/grid.hh:449
MakeableInterfaceObject< typename Traits::template Codim< 2 >::Entity > EdgeObject
Definition: alugrid/3d/grid.hh:507
Include standard header files.
Definition: agrid.hh:59
void setupVxList(const GridType &grid)
ALU3dGridFamily< elType, Comm > GridFamily
Definition: alugrid/3d/grid.hh:471
ALU3dGridCommunications< elType, Comm >::GlobalIdSet GlobalIdSetImp
Type of the global id set.
Definition: alugrid/3d/grid.hh:283
double alu3d_ctype
Definition: alu3dinclude.hh:59
int global_size(int cd) const
number of grid entities on all levels for given codim
Definition: grid_inline.hh:82
Definition: alugrid/3d/grid.hh:332
Definition: alugrid/common/declaration.hh:18
interface class for an iterator over grid entitiesAn entity iterator is an iterator over a subset of ...
Definition: entityiterator.hh:35
Provides size cache classes to implement the grids size method efficiently.
static int getRank(No_Comm comm)
Definition: alugrid/3d/grid.hh:180
Dune::GridView< DefaultLevelGridViewTraits< const Grid, pitype > > LevelGridView
Definition: alugrid/3d/grid.hh:345
Traits::template Codim< EntitySeed::codimension >::EntityPointer entityPointer(const EntitySeed &seed) const
Definition: alugrid/3d/grid.hh:908
ALUGridVertexProjectionType * vertexProjection()
Definition: alugrid/3d/grid.hh:889
Definition: alugrid/common/declaration.hh:18
void calcMaxLevel()
calculate maxlevel
void setupVxList(const GridType &grid, int level)
Partition< All_Partition >::LeafIterator LeafIterator
Definition: alugrid/3d/grid.hh:339
GridFamily::GridImp Grid
Definition: alugrid/3d/grid.hh:299
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator lend(int level) const
one past the end on this level
Interface class for the Grid's adapt method where the parameter is a AdaptDataHandleInterface.
Definition: adaptcallback.hh:30
Definition: alugrid/3d/grid.hh:315
const ThisType & operator=(const ThisType &)
assignment operator should not be used
Definition: alugrid/3d/grid.hh:464
ALUGridBoundaryProjectionType * vertexProjection_
Definition: alugrid/3d/grid.hh:1100
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:306
LocalIdSetImp localIdSet_
Definition: alugrid/3d/grid.hh:1060
Definition: intersectioniteratorwrapper.hh:210
Dune::EntityIterator< cd, const Grid, ALU3dGridLeafIterator< cd, pitype, const Grid > > LeafIterator
Definition: alugrid/3d/grid.hh:335
[ provides Dune::Grid ]
Definition: alugrid/3d/entity.hh:36
Dune::EntityIterator< 0, const Grid, ALU3dGridHierarchicIterator< const Grid > > HierarchicIterator
Definition: alugrid/3d/grid.hh:309
bool preAdapt()
returns if a least one entity was marked for coarsening
ALU3dGridEntitySeed< cd, const Grid > EntitySeed
Definition: alugrid/3d/grid.hh:326
int ghostSize(int level, int codim) const
ghostSize is one for codim 0 and zero otherwise for this grid
ALU3dGridLeafVertexList< Comm > LeafVertexListType
Definition: alugrid/3d/grid.hh:565
Specialize with 'true' for all codims that a grid implements entities for. (default=false) ...
Definition: common/capabilities.hh:57
virtual ALU3DSPACE Gitter::Geometric::BuilderIF & getBuilder() const
Definition: alugrid/3d/grid.hh:892
ALUGridBoundaryProjection< ThisType, alu3d_ctype > ALUGridBoundaryProjectionType
Definition: alugrid/3d/grid.hh:515
LeafVertexListType leafVertexList_
Definition: alugrid/3d/grid.hh:1078
Definition: alugrid/3d/grid.hh:137
virtual void duneNotifyMacroGridChanges()
Definition: alugrid/3d/grid.hh:898
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
CommDataHandleIF describes the features of a data handle for communication in parallel runs using the...
Definition: datahandleif.hh:72
Provides default index set implementations for Level- and LeafIndexsets used by ALUGrid.
organize the memory management for entitys used by the NeighborIterator
Definition: alugrid/2d/grid.hh:68
Provides proxy classes for IntersectionsIterators.
ALU3DSPACE ProjectVertex ALUGridVertexProjectionType
type of ALUGrid Vertex Projection Interface
Definition: alugrid/3d/grid.hh:499
The dimension of the world the grid lives in.
Definition: common/grid.hh:408
Dune::Geometry< dim-cd, dimworld, const Grid, ALU3dGridGeometry > Geometry
Definition: alugrid/3d/grid.hh:320
Different resources needed by all grid implementations.
static std::conditional< std::is_reference< InterfaceType >::value, typename std::add_lvalue_reference< typename ReturnImplementationType< typename std::remove_reference< InterfaceType >::type >::ImplementationType >::type, typename std::remove_const< typename ReturnImplementationType< typename std::remove_reference< InterfaceType >::type >::ImplementationType >::type >::type getRealImplementation(InterfaceType &&i)
return real implementation of interface class
Definition: common/grid.hh:1305
maximal number of levels is 32
Definition: alugrid/3d/grid.hh:541
int getMark(const typename Traits::template Codim< 0 >::Entity &e) const
returns adaptation mark for given entity
Definition: grid_inline.hh:314
Traits::DuneBoundaryProjectionType DuneBoundaryProjectionType
boundary projection type
Definition: alugrid/3d/grid.hh:494
Definition: alugrid/3d/entity.hh:32
std::vector< std::vector< GeometryType > > geomTypes_
Definition: alugrid/3d/grid.hh:1051
VertexListType vertexList_[MAXL]
Definition: alugrid/3d/grid.hh:1071
static MPICommunicatorType defaultCommunicator()
Definition: alugrid/3d/grid.hh:853
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
Definition: alugrid/3d/entity.hh:26
hierarchic index set of ALU3dGrid
Definition: alugrid/3d/grid.hh:80
bool checkMacroGrid(ALU3dGridElementType elType, const std::string filename)
bool loadBalance()
Calculates load of each process and repartition the grid if neccessary. For parameters of the load ba...
Definition: grid_inline.hh:639
static ALU3DSPACE Gitter::Geometric::BuilderIF & getBuilder(GitterImplType &grid)
Definition: alugrid/3d/grid.hh:182
ALU3dGrid< hexa, Comm > BaseGrid
Definition: alugrid/3d/grid.hh:106
ALU3dGridHierarchicIterator< const ThisType > HierarchicIteratorImp
Definition: alugrid/3d/grid.hh:534
const GlobalIdSet & globalIdSet() const
get global id set of grid
Definition: alugrid/3d/grid.hh:697
GridFamily::GlobalIdType GlobalIdType
type of ALU3dGrids global id
Definition: alugrid/3d/grid.hh:297
SizeCache< MyType > SizeCacheType
Definition: alugrid/3d/grid.hh:1081
ALU3DSPACE GatherScatterType::ObjectStreamType ObjectStreamType
Definition: alugrid/3d/grid.hh:467
virtual ~ALU3dGrid()
Desctructor.
int size(int level, int cd) const
number of grid entities per level and codim
LeafIndexSetImp * leafIndexSet_
Definition: alugrid/3d/grid.hh:1066
ReferenceElement< alu3d_ctype, dimension > ReferenceElementType
reference element type
Definition: alugrid/3d/grid.hh:491
void restore(std::istream &)
restore from istream
bool ghostCellsEnabled() const
Definition: alugrid/3d/grid.hh:1024
int overlapSize(int codim) const
overlapSize is zero for this grid
Definition: alugrid/3d/grid.hh:766
ALU3dGrid< elType, Comm > GridImp
Definition: alugrid/3d/grid.hh:273
ALU3dGridItemListType ghostLevelList_[dimension][MAXL]
Definition: alugrid/3d/grid.hh:1074
The dimension of the grid.
Definition: common/grid.hh:402
void calcExtras()
reset size and global size, update Level- and LeafIndexSet, if they exist
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
int nlinks() const
Definition: alugrid/3d/grid.hh:153
SizeCacheType * sizeCache_
Definition: alugrid/3d/grid.hh:1082
Describes the parallel communication interface class for MessageBuffers and DataHandles.
static std::string name()
for grid identification
Definition: grid_inline.hh:678
const std::vector< GeometryType > & geomTypes(int codim) const
deliver all geometry types used in this grid
Definition: alugrid/3d/grid.hh:870
bool mark(int refCount, const typename Traits::template Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: grid_inline.hh:299
GridFamily::GlobalIdSetImp GlobalIdSetImp
Definition: alugrid/3d/grid.hh:520
Comm MPICommunicatorType
Definition: alugrid/3d/grid.hh:559
Dune::EntityIterator< cd, const Grid, ALU3dGridLevelIterator< cd, pitype, const Grid > > LevelIterator
Definition: alugrid/3d/grid.hh:334
Definition: objectfactory.hh:23
Id Set Interface.
Definition: common/grid.hh:362
ALU3dGridCommunications< elType, Comm >::GlobalId GlobalIdType
type of ALU3dGrids global id
Definition: alugrid/3d/grid.hh:286
ALUGrid boundary projection implementation DuneBndProjection has to fulfil the DuneBoundaryProjection...
Definition: common/bndprojection.hh:11
virtual GitterImplType * createALUGrid(std::istream &stream)
Definition: alugrid/3d/grid.hh:883
VertexListType & getVertexList(int level) const
Definition: alugrid/3d/grid.hh:930
Definition: alugrid/common/declaration.hh:20
Definition: alu3dinclude.hh:201
bool up2Date() const
Definition: alu3dinclude.hh:309
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
bool up2Date() const
Definition: alu3dinclude.hh:343
void backup(std::ostream &) const
backup to ostream
IndexSet< Grid, LevelIndexSetImp > LevelIndexSet
Definition: alugrid/3d/grid.hh:355
ALU3dGridGeometry< dim-cd, dimworld, const Grid > GeometryImpl
Definition: alugrid/3d/grid.hh:318
bool writeGrid_Xdr(const std::string filename, alu3d_ctype time) const
Dune::IntersectionIterator< const Grid, LeafIntersectionIteratorWrapper< const Grid >, LeafIntersectionWrapper< const Grid > > IntersectionIterator
Definition: alugrid/3d/grid.hh:304
static const BaseType::template ReturnImplementationType< IntersectionType >::ImplementationType & getRealIntersection(const IntersectionType &intersection)
Definition: alugrid/3d/grid.hh:864
Index Set Interface base class.
Definition: common/grid.hh:361
Grid view abstract base class.
Definition: common/gridview.hh:58
#define ALU3DSPACE
Definition: alu3dinclude.hh:26
Definition: lbdatahandle.hh:14
bool loadBalance(CommDataHandleIF< DataHandleImpl, Data > &dataHandle)
Definition: alugrid/3d/grid.hh:749
Definition: alugrid/3d/entity.hh:30
const GridObjectFactoryType & factory() const
Definition: alugrid/3d/grid.hh:1007
HierarchicIndexSet hIndexSet_
Definition: alugrid/3d/grid.hh:1054
if one element is refined then it causes apporximately not more than this number of new elements ...
Definition: alugrid/3d/grid.hh:555
bool readGrid(const std::string filename, alu3d_ctype &time)
read Grid from file filename and store time of mesh in time
int hierSetSize(int cd) const
Definition: grid_inline.hh:92
ALU3dGrid(const std::string ¯oTriangFilename, const MPICommunicatorType mpiComm, const DuneBoundaryProjectionType *bndPrj, const DuneBoundaryProjectionVector *bndVec, const ALUGridRefinementType refinementType)
Definition: grid_inline.hh:21
Interface class for vertex projection at the boundary.
Definition: boundaryprojection.hh:23
Provides a Interfaces for detection of specific behavior.
Definition: alugrid/3d/entityseed.hh:10
Definition: alugrid/3d/grid.hh:76
ALU3dGridCommunications(No_Comm comm)
Definition: alugrid/3d/grid.hh:151
Store a reference to an entity with a minimal memory footprint.
Definition: common/entityseed.hh:23
ALU3dGridLevelIntersectionIterator< const ThisType > LevelIntersectionIteratorImp
Definition: alugrid/3d/grid.hh:453
Definition: common.hh:179
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:232
DefaultIndexSet< GridImp, typename Codim< 0 >::LevelIterator > LevelIndexSetImp
Type of the level index set.
Definition: alugrid/3d/grid.hh:350
ALU3dGridElementType
Definition: topology.hh:13
GridFamily::LevelIndexSetImp LevelIndexSetImp
Type of the level index set, needed by data handle.
Definition: alugrid/3d/grid.hh:486
Specialize with 'true' if implementation provides backup and restore facilities. (default=false) ...
Definition: common/capabilities.hh:116
ALU3dGridIntersectionIterator< const ThisType > LeafIntersectionIteratorImp
Definition: alugrid/3d/grid.hh:451
const HierarchicIndexSet & hierarchicIndexSet() const
Definition: alugrid/3d/grid.hh:837
MakeableInterfaceObject< typename Traits::template Codim< 1 >::Entity > FaceObject
Definition: alugrid/3d/grid.hh:506
Dune::Entity< cd, dim, const Grid, ALU3dGridEntity > Entity
Definition: alugrid/3d/grid.hh:323
IdSet< Grid, GlobalIdSetImp, GlobalIdType > GlobalIdSet
Definition: alugrid/3d/grid.hh:358
ALU3dImplTraits< elType, Comm >::GitterImplType GitterImplType
Definition: alugrid/3d/grid.hh:536
const char * elType2Name(ALU3dGridElementType elType)
DuneBoundaryProjection< dimworld > DuneBoundaryProjectionType
Definition: alugrid/3d/grid.hh:311
int getLevelOfLeafVertex(const typename ALU3dImplTraits< elType, Comm >::VertexType &vertex) const
Definition: alugrid/3d/grid.hh:924
const DuneBoundaryProjectionVector * bndVec_
Definition: alugrid/3d/grid.hh:1097
ALU3dGridVertexList< Comm > VertexListType
Definition: alugrid/3d/grid.hh:564
Traits::template Codim< 0 >::LeafIterator LeafIterator
Definition: alugrid/3d/grid.hh:532
int refineMarked_
Definition: alugrid/3d/grid.hh:1047
static const bool v
Definition: common/capabilities.hh:59
Definition: alugrid/3d/grid.hh:72
int maxlevel_
Definition: alugrid/3d/grid.hh:1043
Communications * communications_
Definition: alugrid/3d/grid.hh:1103
void checkMacroGridFile(const std::string filename)
check whether macro grid format is of our type
Traits::DuneBoundaryProjectionVector DuneBoundaryProjectionVector
boundary projection type
Definition: alugrid/3d/grid.hh:496
Tagging interface to indicate that Grid has HierarchicIndexSet.
Definition: interfaces.hh:51
ALU3DSPACE GitterDuneImpl GitterImplType
Definition: alugrid/3d/grid.hh:147
GatherScatter GatherScatterType
Definition: alu3dinclude.hh:49
Types for GridView.
Definition: common/grid.hh:420
CommunicationDirection
Define a type for communication direction parameter.
Definition: gridenums.hh:168
Specialize with 'true' if implementation supports parallelism. (default=false)
Definition: common/capabilities.hh:68
GridFamily::LocalIdSetImp LocalIdSetImp
Type of the local id set.
Definition: alugrid/3d/grid.hh:518
void postAdapt()
clear all entity new markers
bool lockPostAdapt_
Definition: alugrid/3d/grid.hh:1091
bool writeGrid_Ascii(const std::string filename, alu3d_ctype time, bool scientific=false) const
write leaf grid in macro grid format to ascii file
Definition: alugrid/3d/grid.hh:119
ALU3dGridLeafIterator< 0, All_Partition, const ThisType > LeafIteratorImp
Definition: alugrid/3d/grid.hh:530
static const int dimension
Definition: alugrid/3d/grid.hh:474
LeafVertexListType & getLeafVertexList() const
Definition: alugrid/3d/grid.hh:918
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:343
MakeableInterfaceObject< typename Traits::template Codim< 0 >::Geometry > GeometryObject
Definition: alugrid/3d/grid.hh:478
int LocalIdType
type of ALU3dGrids local id
Definition: alugrid/3d/grid.hh:289
IndexSet< Grid, LeafIndexSetImp > LeafIndexSet
Definition: alugrid/3d/grid.hh:356
GitterImplType & myGrid() const
Definition: grid_inline.hh:108
ALU3dGridItemListType ghostLeafList_[dimension]
Definition: alugrid/3d/grid.hh:1073
int coarsenMarked_
Definition: alugrid/3d/grid.hh:1046
const ALUGridRefinementType refinementType_
Definition: alugrid/3d/grid.hh:1106
ALU3dGrid< tetra, Comm > BaseGrid
Definition: alugrid/3d/grid.hh:112
Traits::GlobalIdSet GlobalIdSet
Type of the global id set.
Definition: alugrid/3d/grid.hh:524
GitterImplType * createALUGrid(const std::string ¯oName, ALU3DSPACE ProjectVertex *projection, const bool conformingRefinement)
Definition: alugrid/3d/grid.hh:155
static void duneNotifyMacroGridChanges(GitterImplType &grid)
Definition: alugrid/3d/grid.hh:191
void communicate(CommDataHandleIF< DataHandleImp, DataTypeImp > &data, InterfaceType iftype, CommunicationDirection dir, int level) const
Communicate information on distributed entities on a given level Template parameter is a model of Dun...
Definition: alugrid/3d/indexsets.hh:171
std::vector< const DuneBoundaryProjectionType * > DuneBoundaryProjectionVector
Definition: alugrid/3d/grid.hh:312
Dune::IntersectionIterator< const Grid, LeafIntersectionIteratorWrapper< const Grid >, LeafIntersectionWrapper< const Grid > > LeafIntersectionIterator
Definition: alugrid/3d/grid.hh:306
Leaf iterator.
Definition: alugrid/3d/entity.hh:34
ObjectStreamType OutStreamType
Definition: alugrid/3d/grid.hh:469
MakeableInterfaceObject< typename Traits::template Codim< 0 >::Entity > EntityObject
Definition: alugrid/3d/grid.hh:505
Traits::template Codim< 0 >::LeafIterator LeafIteratorType
Definition: alugrid/3d/grid.hh:531
Definition: alugrid/3d/entity.hh:468
Definition: alugrid/3d/grid.hh:84
Traits::LeafIndexSetImp LeafIndexSetImp
Type of the leaf index set implementation.
Definition: alugrid/3d/grid.hh:367
Dune::IntersectionIterator< const Grid, LevelIntersectionIteratorWrapper< const Grid >, LevelIntersectionWrapper< const Grid > > LevelIntersectionIterator
Definition: alugrid/3d/grid.hh:307
const ReferenceElementType & referenceElement_
Definition: alugrid/3d/grid.hh:1069
Tagging interface to indicate that Grid provides typedef ObjectStreamType.
Definition: interfaces.hh:16
A set of traits classes to store static information about grid implementation.
Definition: alugrid/3d/grid.hh:291
GridFamily::Traits Traits
Definition: alugrid/3d/grid.hh:472
CollectiveCommunication ccobj_
Definition: alugrid/3d/grid.hh:193
int maxLevel() const
Return maximum level defined in this grid. Levels are numbered maxLevel with 0 the coarsest level...
Definition: grid_inline.hh:100
Wrapper class for entities.
Definition: common/entity.hh:61
ALU3dGridItemListType & getGhostLeafList(int codim) const
Definition: alugrid/3d/grid.hh:939
ALU3dGridItemListType & getGhostLevelList(int codim, int level) const
Definition: alugrid/3d/grid.hh:946
Definition: alu3dinclude.hh:296