dune-grid  2.8.0
common/grid.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_GRID_COMMON_GRID_HH
4 #define DUNE_GRID_COMMON_GRID_HH
5 
9 // system includes
10 #include <iostream>
11 #include <string>
12 #include <vector>
13 
14 // dune-common includes
15 #include <dune/common/fvector.hh>
16 #include <dune/common/typetraits.hh>
17 
18 // dune-geometry includes
19 #include <dune/geometry/type.hh>
20 
21 // local includes
29 
30 // include this file after all other, because other files might undef the
31 // macros that are defined in that file
32 #include <dune/common/bartonnackmanifcheck.hh>
33 
34 namespace Dune {
35 
332  // Forward Declarations
333  // --------------------
334 
335  template<int mydim, int cdim, class GridImp,template<int,int,class> class GeometryImp> class Geometry;
336  template< int mydim, int cdim, class GridImp > class GlobalGeometryReference;
337  template< int mydim, int cdim, class GridImp > class LocalGeometryReference;
338  // dim is necessary because Entity will be specialized for codim==0 _and_ codim==dim
339  // EntityImp gets GridImp as 3rd template parameter to distinguish between const and mutable grid
340  template<int codim, int dim, class GridImp,template<int,int,class> class EntityImp> class Entity;
341  template< int codim, class Grid, class IteratorImp > class EntityIterator;
342  template<class GridImp, class EntitySeedImp> class EntitySeed;
343  template< class GridImp, class IntersectionImp > class Intersection;
344  template< class GridImp, class IntersectionIteratorImp, class IntersectionImp > class IntersectionIterator;
345  template< class GridImp, class IndexSetImp, class IndexTypeImp = unsigned int, class TypesImp = std::vector< GeometryType > > class IndexSet;
346  template<class GridImp, class IdSetImp, class IdTypeImp> class IdSet;
347 
348 
349  //************************************************************************
350  // G R I D
351  //************************************************************************
352 
371  template< int dim, int dimworld, class ct, class GridFamily>
372  class Grid {
373  typedef typename GridFamily::Traits::Grid GridImp;
375  public:
376 
377  //===========================================================
381  //===========================================================
382 
384  enum {
386  dimension=dim
387  };
388 
390  enum {
392  dimensionworld=dimworld
393  };
395 
396  //===========================================================
400  //===========================================================
401 
403  typedef typename GridFamily::Traits::LeafGridView LeafGridView;
405  typedef typename GridFamily::Traits::LevelGridView LevelGridView;
406 
407 
412  template <int cd>
413  struct Codim
414  {
416  typedef typename GridFamily::Traits::template Codim<cd>::Geometry Geometry;
417 
419  typedef typename GridFamily::Traits::template Codim<cd>::LocalGeometry LocalGeometry;
420 
422  typedef typename GridFamily::Traits::template Codim<cd>::Entity Entity;
423 
425  typedef typename GridFamily::Traits::template Codim<cd>::EntitySeed EntitySeed;
426 
428  template <PartitionIteratorType pitype>
429  struct Partition
430  {
437  typedef typename GridFamily::Traits::template Codim<cd>::template Partition<pitype>::LevelIterator LevelIterator;
444  typedef typename GridFamily::Traits::template Codim<cd>::template Partition<pitype>::LeafIterator LeafIterator;
445  };
446 
449  typedef typename GridFamily::Traits::template Codim<cd>::LevelIterator LevelIterator;
450 
453  typedef typename GridFamily::Traits::template Codim<cd>::LeafIterator LeafIterator;
454  };
455 
459  typedef typename GridFamily::Traits::LeafIntersection LeafIntersection;
460 
464  typedef typename GridFamily::Traits::LevelIntersection LevelIntersection;
465 
471  typedef typename GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator;
472 
478  typedef typename GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator;
479 
485  typedef typename GridFamily::Traits::HierarchicIterator HierarchicIterator;
486 
491  typedef typename GridFamily::Traits::LevelIndexSet LevelIndexSet;
492 
497  typedef typename GridFamily::Traits::LeafIndexSet LeafIndexSet;
498 
505  typedef typename GridFamily::Traits::GlobalIdSet GlobalIdSet;
506 
512  typedef typename GridFamily::Traits::LocalIdSet LocalIdSet;
513 
518  typedef typename GridFamily::Traits::CollectiveCommunication CollectiveCommunication;
519 
521  typedef ct ctype;
523 
524 
525  //===========================================================
529  //===========================================================
530 
534  int maxLevel() const
535  {
536  CHECK_INTERFACE_IMPLEMENTATION(asImp().maxLevel());
537  return asImp().maxLevel();
538  }
539 
541  int size (int level, int codim) const
542  {
543  CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,codim));
544  return asImp().size(level,codim);
545  }
546 
548  int size (int codim) const
549  {
550  CHECK_INTERFACE_IMPLEMENTATION(asImp().size(codim));
551  return asImp().size(codim);
552  }
553 
555  int size (int level, GeometryType type) const
556  {
557  CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,type));
558  return asImp().size(level,type);
559  }
560 
562  int size (GeometryType type) const
563  {
564  CHECK_INTERFACE_IMPLEMENTATION(asImp().size(type));
565  return asImp().size(type);
566  }
568 
569 
574  size_t numBoundarySegments () const
575  {
576  CHECK_INTERFACE_IMPLEMENTATION( asImp().numBoundarySegments());
577  return asImp().numBoundarySegments();
578  }
579 
580  //===========================================================
584  //===========================================================
585 
587  LevelGridView levelGridView(int level) const {
588  CHECK_INTERFACE_IMPLEMENTATION((asImp().levelGridView(level)));
589  return asImp().levelGridView(level);
590  }
591 
594  CHECK_INTERFACE_IMPLEMENTATION((asImp().leafGridView()));
595  return asImp().leafGridView();
596  }
597 
599 
600 
601  //===========================================================
605  //===========================================================
606 
608  const GlobalIdSet &globalIdSet () const
609  {
610  CHECK_INTERFACE_IMPLEMENTATION(asImp().globalIdSet());
611  return asImp().globalIdSet();
612  }
613 
615  const LocalIdSet &localIdSet () const
616  {
617  CHECK_INTERFACE_IMPLEMENTATION(asImp().localIdSet());
618  return asImp().localIdSet();
619  }
620 
622  const LevelIndexSet &levelIndexSet ( int level ) const
623  {
624  CHECK_INTERFACE_IMPLEMENTATION(asImp().levelIndexSet(level));
625  return asImp().levelIndexSet(level);
626  }
627 
629  const LeafIndexSet &leafIndexSet () const
630  {
631  CHECK_INTERFACE_IMPLEMENTATION(asImp().leafIndexSet());
632  return asImp().leafIndexSet();
633  }
635 
636 
637  //===========================================================
641  //===========================================================
642 
648  void globalRefine (int refCount)
649  {
650  CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(asImp().globalRefine(refCount));
651  return;
652  }
653 
661  bool mark( int refCount, const typename Codim<0>::Entity & e )
662  {
663  return asImp().mark(refCount,e);
664  }
665 
672  int getMark(const typename Codim<0>::Entity & e) const
673  {
674  return asImp().getMark(e);
675  }
676 
683  bool preAdapt ()
684  {
685  return asImp().preAdapt();
686  }
687 
702  bool adapt ()
703  {
704  return asImp().adapt();
705  }
706 
711  void postAdapt()
712  {
713  return asImp().postAdapt();
714  }
716 
717 
718  //===========================================================
722  //===========================================================
723 
726  {
727  CHECK_INTERFACE_IMPLEMENTATION(asImp().comm());
728  return asImp().comm();
729  }
731 
735  bool loadBalance()
736  {
737  CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance());
738  return asImp().loadBalance();
739  }
740 
748  template<class DataHandle>
749  bool loadBalance (DataHandle& data)
750  {
751  CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance(data));
752  return asImp().loadBalance(data);
753  }
754 
756  template < class EntitySeed >
757  typename Codim< EntitySeed :: codimension > :: Entity
758  entity( const EntitySeed& seed ) const
759  {
760  //CHECK_INTERFACE_IMPLEMENTATION( asImp().entity( seed ) );
761  return asImp().entity( seed );
762  }
763  protected:
765  GridImp& asImp () {return static_cast<GridImp &> (*this);}
767  const GridImp& asImp () const {return static_cast<const GridImp &>(*this);}
768  };
769 
770 #undef CHECK_INTERFACE_IMPLEMENTATION
771 #undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
772 
789  template<int dim, int dimworld, class ct, class GridFamily>
792  {
793  return grid.levelGridView(level);
794  }
795 
806  template<int dim, int dimworld, class ct, class GridFamily>
809  {
810  return grid.leafGridView();
811  }
812 
846  template<int dim,
847  int dimworld,
848  class ct,
849  class GridFamily>
850  class GridDefaultImplementation : public Grid <dim,dimworld,ct,GridFamily>
851  {
852  typedef typename GridFamily::Traits::Grid GridImp;
853 
854  public:
860  typedef typename GridFamily::Traits Traits;
861 
863  typename Traits::LevelGridView levelGridView(int level) const
864  {
865  typedef typename Traits::LevelGridView View;
866  typedef typename View::GridViewImp ViewImp;
867  return View(ViewImp(asImp(),level));
868  }
869 
871  typename Traits::LeafGridView leafGridView() const
872  {
873  typedef typename Traits::LeafGridView View;
874  typedef typename View::GridViewImp ViewImp;
875  return View(ViewImp(asImp()));
876  }
877 
878  //***************************************************************
879  // Interface for Adaptation
880  //***************************************************************
881 
904  bool mark( int refCount, const typename Traits :: template Codim<0>::Entity & e )
905  {
906  return false;
907  }
908 
916  int getMark ( const typename Traits::template Codim< 0 >::Entity &e ) const
917  {
918  return 0;
919  }
920 
928  bool adapt () { return false; }
929 
931  bool preAdapt () { return false; }
932 
934  void postAdapt() {}
935 
937  bool loadBalance()
938  {
939  return false;
940  }
941 
943  template<class DataHandle>
944  bool loadBalance ([[maybe_unused]] DataHandle& data)
945  {
946  return false;
947  }
948 
949  protected:
951  };
952 
966  template <int dim, int dimw, class GridImp,
967  template<int,int,class> class GeometryImp,
968  template<int,int,class> class EntityImp,
969  template<int,PartitionIteratorType,class> class LevelIteratorImp,
970  template<class> class LeafIntersectionImp,
971  template<class> class LevelIntersectionImp,
972  template<class> class LeafIntersectionIteratorImp,
973  template<class> class LevelIntersectionIteratorImp,
974  template<class> class HierarchicIteratorImp,
975  template<int,PartitionIteratorType,class> class LeafIteratorImp,
976  class LevelIndexSetImp, class LeafIndexSetImp,
977  class GlobalIdSetImp, class GIDType, class LocalIdSetImp, class LIDType, class CCType,
978  template<class> class LevelGridViewTraits,
979  template<class> class LeafGridViewTraits,
980  template<int,class> class EntitySeedImp,
981  template<int,int,class> class LocalGeometryImp = GeometryImp
982  >
983  struct GridTraits
984  {
986  typedef GridImp Grid;
987 
996 
999 
1004  template <int cd>
1005  struct Codim
1006  {
1007  public:
1008  typedef GeometryImp<dim-cd, dimw, const GridImp> GeometryImpl;
1009  typedef LocalGeometryImp<dim-cd, dim, const GridImp> LocalGeometryImpl;
1011 
1012  typedef Dune::Geometry<dim-cd, dimw, const GridImp, GeometryImp> Geometry;
1014  typedef Dune::Geometry<dim-cd, dim, const GridImp, LocalGeometryImp> LocalGeometry;
1016  // we could - if needed - introduce another struct for dimglobal of Geometry
1018 
1021 
1026  template <PartitionIteratorType pitype>
1027  struct Partition
1028  {
1033  };
1034 
1037 
1040 
1041  private:
1042  friend class Dune::Entity<cd, dim, const GridImp, EntityImp>;
1043  };
1044 
1049 
1058 
1060  typedef CCType CollectiveCommunication;
1061  };
1062 
1063  // Definition of capabilities for the interface class
1064  namespace Capabilities
1065  {
1066 
1067  // capabilities for the interface class depend on the implementation
1068  template< int dim, int dimworld, typename ct, class GridFamily , int codim >
1069  struct hasEntity< Grid< dim, dimworld, ct, GridFamily >, codim >
1070  {
1072  };
1073 
1074  // capabilities for the interface class depend on the implementation
1075  template< int dim, int dimworld, typename ct, class GridFamily , int cdim >
1076  struct hasEntity< GridDefaultImplementation<dim,dimworld,ct,GridFamily>, cdim >
1077  {
1079  typedef typename GridType::Traits::Grid GridImp;
1080  static const bool v = hasEntity<GridImp,cdim>::v;
1081  };
1082 
1083  } // end namespace Capabilities
1084 
1090  template <class InterfaceType>
1092  {
1093  typedef typename InterfaceType::Implementation ImplementationType;
1095  explicit MakeableInterfaceObject ( const ImplementationType &realImp )
1096  : InterfaceType( realImp )
1097  {}
1098  };
1099 }
1100 
1101 #include "geometry.hh"
1102 #include "entity.hh"
1103 #include "intersection.hh"
1104 #include "intersectioniterator.hh"
1105 #include "entityiterator.hh"
1106 #include "indexidset.hh"
1107 
1108 #endif // #ifndef DUNE_GRID_COMMON_GRID_HH
Describes the parallel communication interface class for MessageBuffers and DataHandles.
Provides base classes for index and id sets.
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
Grid< dim, dimworld, ct, GridFamily >::LeafGridView leafGridView(const Grid< dim, dimworld, ct, GridFamily > &grid)
leaf grid view for the given grid
Definition: common/grid.hh:808
Grid< dim, dimworld, ct, GridFamily >::LevelGridView levelGridView(const Grid< dim, dimworld, ct, GridFamily > &grid, int level)
level grid view for the given grid and level.
Definition: common/grid.hh:791
Include standard header files.
Definition: agrid.hh:58
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:130
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: common/intersection.hh:162
Definition: geometryreference.hh:91
Specialize with 'true' for all codims that a grid implements entities for. (default=false)
Definition: common/capabilities.hh:56
static const bool v
Definition: common/capabilities.hh:57
Wrapper class for entities.
Definition: common/entity.hh:64
interface class for an iterator over grid entities
Definition: entityiterator.hh:30
Store a reference to an entity with a minimal memory footprint.
Definition: common/entityseed.hh:24
Definition: common/grid.hh:851
bool adapt()
Refine all positive marked leaf entities coarsen all negative marked entities if possible.
Definition: common/grid.hh:928
bool mark(int refCount, const typename Traits ::template Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: common/grid.hh:904
void postAdapt()
clean up some markers
Definition: common/grid.hh:934
int getMark(const typename Traits::template Codim< 0 >::Entity &e) const
returns adaptation mark for given entity, i.e. here the default implementation returns 0.
Definition: common/grid.hh:916
bool loadBalance([[maybe_unused]] DataHandle &data)
default implementation of load balance does nothing and returns false
Definition: common/grid.hh:944
bool preAdapt()
returns true, if at least one entity is marked for adaption
Definition: common/grid.hh:931
Traits::LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: common/grid.hh:871
bool loadBalance()
default implementation of load balance does nothing and returns false
Definition: common/grid.hh:937
Traits::LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: common/grid.hh:863
GridFamily::Traits Traits
The traits of this class.
Definition: common/grid.hh:860
Wrapper class for geometries.
Definition: common/geometry.hh:67
Definition: common/grid.hh:336
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/intersectioniterator.hh:81
Index Set Interface base class.
Definition: indexidset.hh:76
Id Set Interface.
Definition: indexidset.hh:450
Grid abstract base class.
Definition: common/grid.hh:372
int size(int level, GeometryType type) const
Return number of entities per level and geometry type in this process.
Definition: common/grid.hh:555
GridFamily::Traits::LocalIdSet LocalIdSet
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entiti...
Definition: common/grid.hh:512
GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine,...
Definition: common/grid.hh:471
int size(int level, int codim) const
Return number of grid entities of a given codim on a given level in this process.
Definition: common/grid.hh:541
bool preAdapt()
To be called after entities have been marked and before adapt() is called.
Definition: common/grid.hh:683
GridFamily::Traits::LevelIndexSet LevelIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent,...
Definition: common/grid.hh:491
GridFamily::Traits::CollectiveCommunication CollectiveCommunication
A type that is a model of Dune::CollectiveCommunication. It provides a portable way for collective co...
Definition: common/grid.hh:518
const GridImp & asImp() const
Barton-Nackman trick.
Definition: common/grid.hh:767
GridFamily::Traits::HierarchicIterator HierarchicIterator
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine,...
Definition: common/grid.hh:485
GridFamily::Traits::LevelGridView LevelGridView
type of view for level grid
Definition: common/grid.hh:405
GridFamily::Traits::LeafIntersection LeafIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition: common/grid.hh:459
GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine,...
Definition: common/grid.hh:478
LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: common/grid.hh:593
GridFamily::Traits::GlobalIdSet GlobalIdSet
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entiti...
Definition: common/grid.hh:505
const LeafIndexSet & leafIndexSet() const
return const reference to the grids leaf index set
Definition: common/grid.hh:629
void postAdapt()
To be called after grid has been adapted and information left over by the adaptation has been process...
Definition: common/grid.hh:711
const GlobalIdSet & globalIdSet() const
return const reference to the grids global id set
Definition: common/grid.hh:608
bool mark(int refCount, const typename Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: common/grid.hh:661
const CollectiveCommunication & comm() const
return const reference to a collective communication object. The return type is a model of Dune::Coll...
Definition: common/grid.hh:725
GridFamily::Traits::LeafIndexSet LeafIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent,...
Definition: common/grid.hh:497
int maxLevel() const
Return maximum level defined in this grid. Levels are numbered 0 ... maxLevel with 0 the coarsest lev...
Definition: common/grid.hh:534
size_t numBoundarySegments() const
returns the number of boundary segments within the macro grid
Definition: common/grid.hh:574
int getMark(const typename Codim< 0 >::Entity &e) const
returns adaptation mark for given entity
Definition: common/grid.hh:672
Codim< EntitySeed ::codimension >::Entity entity(const EntitySeed &seed) const
obtain Entity from EntitySeed.
Definition: common/grid.hh:758
GridFamily::Traits::LevelIntersection LevelIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition: common/grid.hh:464
@ dimensionworld
The dimension of the world the grid lives in.
Definition: common/grid.hh:392
LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: common/grid.hh:587
bool loadBalance(DataHandle &data)
Re-balances the load each process has to handle for a parallel grid and moves the data.
Definition: common/grid.hh:749
GridFamily::Traits::LeafGridView LeafGridView
type of view for leaf grid
Definition: common/grid.hh:403
@ dimension
The dimension of the grid.
Definition: common/grid.hh:386
bool loadBalance()
Re-balances the load each process has to handle for a parallel grid,.
Definition: common/grid.hh:735
bool adapt()
Refine all positive marked leaf entities, coarsen all negative marked entities if possible.
Definition: common/grid.hh:702
int size(int codim) const
Return number of leaf entities of a given codim in this process.
Definition: common/grid.hh:548
ct ctype
Define type used for coordinates in grid module.
Definition: common/grid.hh:521
const LevelIndexSet & levelIndexSet(int level) const
return const reference to the grids level index set for level level
Definition: common/grid.hh:622
GridImp & asImp()
Barton-Nackman trick.
Definition: common/grid.hh:765
const LocalIdSet & localIdSet() const
return const reference to the grids local id set
Definition: common/grid.hh:615
void globalRefine(int refCount)
Refine the grid refCount times using the default refinement rule.
Definition: common/grid.hh:648
int size(GeometryType type) const
Return number of leaf entities per geometry type in this process.
Definition: common/grid.hh:562
A Traits struct that collects all associated types of one implementation.
Definition: common/grid.hh:414
GridFamily::Traits::template Codim< cd >::Entity Entity
A type that is a model of a Dune::Entity<cd,dim,...>.
Definition: common/grid.hh:422
GridFamily::Traits::template Codim< cd >::LocalGeometry LocalGeometry
A type that is a model of Dune::Geometry<dim-cd,dim>.
Definition: common/grid.hh:419
GridFamily::Traits::template Codim< cd >::LevelIterator LevelIterator
A type that is a model of Dune::LevelIterator with partition type All_Partition.
Definition: common/grid.hh:449
GridFamily::Traits::template Codim< cd >::Geometry Geometry
A type that is a model of Dune::Geometry<dim-cd,dimworld>.
Definition: common/grid.hh:416
GridFamily::Traits::template Codim< cd >::EntitySeed EntitySeed
A type that is a model (not yet) of Dune::EntitySeed<cd,dim,...>.
Definition: common/grid.hh:425
GridFamily::Traits::template Codim< cd >::LeafIterator LeafIterator
A type that is a model of Dune::LeafIterator with partition type All_Partition.
Definition: common/grid.hh:453
A struct collecting all types depending on the partition iterator type.
Definition: common/grid.hh:430
GridFamily::Traits::template Codim< cd >::template Partition< pitype >::LevelIterator LevelIterator
A type that is a model of Dune::LevelIterator<cd,pitype,...> which is s type of iterator that may be ...
Definition: common/grid.hh:437
GridFamily::Traits::template Codim< cd >::template Partition< pitype >::LeafIterator LeafIterator
A type that is a model of Dune::LeafIterator<cd,pitype,...> which is a type of iterator that may be u...
Definition: common/grid.hh:444
A traits struct that collects all associated types of one grid model.
Definition: common/grid.hh:984
Dune::IntersectionIterator< const GridImp, LeafIntersectionIteratorImp< const GridImp >, LeafIntersectionImp< const GridImp > > LeafIntersectionIterator
The type of the intersection iterator at the leafs of the grid.
Definition: common/grid.hh:993
IdSet< const GridImp, LocalIdSetImp, LIDType > LocalIdSet
The type of the local id set.
Definition: common/grid.hh:1057
Dune::GridView< LeafGridViewTraits< const GridImp > > LeafGridView
type of view for leaf grid
Definition: common/grid.hh:1046
IdSet< const GridImp, GlobalIdSetImp, GIDType > GlobalIdSet
The type of the global id set.
Definition: common/grid.hh:1055
Dune::EntityIterator< 0, const GridImp, HierarchicIteratorImp< const GridImp > > HierarchicIterator
The type of the hierarchic iterator.
Definition: common/grid.hh:998
IndexSet< const GridImp, LeafIndexSetImp > LeafIndexSet
The type of the leaf index set.
Definition: common/grid.hh:1053
Dune::Intersection< const GridImp, LeafIntersectionImp< const GridImp > > LeafIntersection
The type of the intersection at the leafs of the grid.
Definition: common/grid.hh:989
IndexSet< const GridImp, LevelIndexSetImp > LevelIndexSet
The type of the level index set.
Definition: common/grid.hh:1051
Dune::GridView< LevelGridViewTraits< const GridImp > > LevelGridView
type of view for level grid
Definition: common/grid.hh:1048
Dune::IntersectionIterator< const GridImp, LevelIntersectionIteratorImp< const GridImp >, LevelIntersectionImp< const GridImp > > LevelIntersectionIterator
The type of the intersection iterator at the levels of the grid.
Definition: common/grid.hh:995
Dune::Intersection< const GridImp, LevelIntersectionImp< const GridImp > > LevelIntersection
The type of the intersection at the levels of the grid.
Definition: common/grid.hh:991
CCType CollectiveCommunication
The type of the collective communication.
Definition: common/grid.hh:1060
GridImp Grid
The type that implements the grid.
Definition: common/grid.hh:986
Traits associated with a specific codim.
Definition: common/grid.hh:1006
Dune::EntitySeed< const GridImp, EntitySeedImp< cd, const GridImp > > EntitySeed
The type of the entity seed of this codim.
Definition: common/grid.hh:1020
Partition< All_Partition >::LeafIterator LeafIterator
The type of the iterator over all leaf entities of this codim.
Definition: common/grid.hh:1036
LocalGeometryImp< dim-cd, dim, const GridImp > LocalGeometryImpl
Definition: common/grid.hh:1009
GeometryImp< dim-cd, dimw, const GridImp > GeometryImpl
Definition: common/grid.hh:1008
Dune::Geometry< dim-cd, dim, const GridImp, LocalGeometryImp > LocalGeometry
The type of the local geometry associated with the entity.
Definition: common/grid.hh:1014
Dune::Geometry< dim-cd, dimw, const GridImp, GeometryImp > Geometry
IMPORTANT: Codim<codim>::Geometry == Geometry<dim-codim,dimw>
Definition: common/grid.hh:1012
Dune::Entity< cd, dim, const GridImp, EntityImp > Entity
The type of the entity.
Definition: common/grid.hh:1017
Partition< All_Partition >::LevelIterator LevelIterator
The type of the entity pointer for entities of this codim.
Definition: common/grid.hh:1039
Traits associated with a specific grid partition type.
Definition: common/grid.hh:1028
Dune::EntityIterator< cd, const GridImp, LevelIteratorImp< cd, pitype, const GridImp > > LevelIterator
The type of the iterator over the level entities of this codim on this partition.
Definition: common/grid.hh:1030
Dune::EntityIterator< cd, const GridImp, LeafIteratorImp< cd, pitype, const GridImp > > LeafIterator
The type of the iterator over the leaf entities of this codim on this partition.
Definition: common/grid.hh:1032
GridDefaultImplementation< dim, dimworld, ct, GridFamily > GridType
Definition: common/grid.hh:1078
Definition: common/grid.hh:1092
InterfaceType::Implementation ImplementationType
Definition: common/grid.hh:1093
MakeableInterfaceObject(const ImplementationType &realImp)
create interface object by calling the contructor of the base class
Definition: common/grid.hh:1095
Grid view abstract base class.
Definition: common/gridview.hh:63
A set of traits classes to store static information about grid implementation.
Interface class EntitySeed.