DUNE PDELab (unstable)

grid.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file LICENSE.md in module root
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
3// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4// vi: set et ts=4 sw=2 sts=2:
5#ifndef DUNE_GRID_COMMON_GRID_HH
6#define DUNE_GRID_COMMON_GRID_HH
7
11// system includes
12#include <iostream>
13#include <string>
14#include <vector>
15
16// dune-common includes
20
21// dune-geometry includes
22#include <dune/geometry/type.hh>
23
24// local includes
25#include <dune/grid/common/gridenums.hh>
26#include <dune/grid/common/exceptions.hh>
29#include <dune/grid/common/gridview.hh>
30#include <dune/grid/common/defaultgridview.hh>
32
33// include this file after all other, because other files might undef the
34// macros that are defined in that file
36
37namespace Dune {
38
353 // Forward Declarations
354 // --------------------
355
356 template<int mydim, int cdim, class GridImp,template<int,int,class> class GeometryImp> class Geometry;
357 template< int mydim, int cdim, class GridImp > class GlobalGeometryReference;
358 template< int mydim, int cdim, class GridImp > class LocalGeometryReference;
359 // dim is necessary because Entity will be specialized for codim==0 _and_ codim==dim
360 // EntityImp gets GridImp as 3rd template parameter to distinguish between const and mutable grid
361 template<int codim, int dim, class GridImp,template<int,int,class> class EntityImp> class Entity;
362 template< int codim, class Grid, class IteratorImp > class EntityIterator;
363 template<class GridImp, class EntitySeedImp> class EntitySeed;
364 template< class GridImp, class IntersectionImp > class Intersection;
365 template< class GridImp, class IntersectionIteratorImp, class IntersectionImp > class IntersectionIterator;
366 template< class GridImp, class IndexSetImp, class IndexTypeImp = unsigned int, class TypesImp = std::vector< GeometryType > > class IndexSet;
367 template<class GridImp, class IdSetImp, class IdTypeImp> class IdSet;
368
369
370 //************************************************************************
371 // G R I D
372 //************************************************************************
373
392 template< int dim, int dimworld, class ct, class GridFamily>
393 class Grid {
394 typedef typename GridFamily::Traits::Grid GridImp;
396 public:
397
398 //===========================================================
402 //===========================================================
403
405 constexpr static int dimension = dim;
406
408 constexpr static int dimensionworld = dimworld;
410
411 //===========================================================
415 //===========================================================
416
418 typedef typename GridFamily::Traits::LeafGridView LeafGridView;
420 typedef typename GridFamily::Traits::LevelGridView LevelGridView;
421
422
427 template <int cd>
428 struct Codim
429 {
431 typedef typename GridFamily::Traits::template Codim<cd>::Geometry Geometry;
432
434 typedef typename GridFamily::Traits::template Codim<cd>::LocalGeometry LocalGeometry;
435
437 typedef typename GridFamily::Traits::template Codim<cd>::Entity Entity;
438
440 typedef typename GridFamily::Traits::template Codim<cd>::EntitySeed EntitySeed;
441
443 template <PartitionIteratorType pitype>
445 {
452 typedef typename GridFamily::Traits::template Codim<cd>::template Partition<pitype>::LevelIterator LevelIterator;
459 typedef typename GridFamily::Traits::template Codim<cd>::template Partition<pitype>::LeafIterator LeafIterator;
460 };
461
464 typedef typename GridFamily::Traits::template Codim<cd>::LevelIterator LevelIterator;
465
468 typedef typename GridFamily::Traits::template Codim<cd>::LeafIterator LeafIterator;
469 };
470
474 typedef typename GridFamily::Traits::LeafIntersection LeafIntersection;
475
479 typedef typename GridFamily::Traits::LevelIntersection LevelIntersection;
480
486 typedef typename GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator;
487
493 typedef typename GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator;
494
500 typedef typename GridFamily::Traits::HierarchicIterator HierarchicIterator;
501
506 typedef typename GridFamily::Traits::LevelIndexSet LevelIndexSet;
507
512 typedef typename GridFamily::Traits::LeafIndexSet LeafIndexSet;
513
520 typedef typename GridFamily::Traits::GlobalIdSet GlobalIdSet;
521
527 typedef typename GridFamily::Traits::LocalIdSet LocalIdSet;
528
533 using Communication = typename GridFamily::Traits::Communication;
534
536 typedef ct ctype;
538
539
540 //===========================================================
544 //===========================================================
545
549 int maxLevel() const
550 {
551 CHECK_INTERFACE_IMPLEMENTATION(asImp().maxLevel());
552 return asImp().maxLevel();
553 }
554
556 int size (int level, int codim) const
557 {
558 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,codim));
559 return asImp().size(level,codim);
560 }
561
563 int size (int codim) const
564 {
565 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(codim));
566 return asImp().size(codim);
567 }
568
570 int size (int level, GeometryType type) const
571 {
572 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,type));
573 return asImp().size(level,type);
574 }
575
577 int size (GeometryType type) const
578 {
579 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(type));
580 return asImp().size(type);
581 }
583
584
589 size_t numBoundarySegments () const
590 {
591 CHECK_INTERFACE_IMPLEMENTATION( asImp().numBoundarySegments());
592 return asImp().numBoundarySegments();
593 }
594
595 //===========================================================
599 //===========================================================
600
602 LevelGridView levelGridView(int level) const {
603 CHECK_INTERFACE_IMPLEMENTATION((asImp().levelGridView(level)));
604 return asImp().levelGridView(level);
605 }
606
609 CHECK_INTERFACE_IMPLEMENTATION((asImp().leafGridView()));
610 return asImp().leafGridView();
611 }
612
614
615
616 //===========================================================
620 //===========================================================
621
623 const GlobalIdSet &globalIdSet () const
624 {
625 CHECK_INTERFACE_IMPLEMENTATION(asImp().globalIdSet());
626 return asImp().globalIdSet();
627 }
628
630 const LocalIdSet &localIdSet () const
631 {
632 CHECK_INTERFACE_IMPLEMENTATION(asImp().localIdSet());
633 return asImp().localIdSet();
634 }
635
637 const LevelIndexSet &levelIndexSet ( int level ) const
638 {
639 CHECK_INTERFACE_IMPLEMENTATION(asImp().levelIndexSet(level));
640 return asImp().levelIndexSet(level);
641 }
642
645 {
646 CHECK_INTERFACE_IMPLEMENTATION(asImp().leafIndexSet());
647 return asImp().leafIndexSet();
648 }
650
651
652 //===========================================================
656 //===========================================================
657
663 void globalRefine (int refCount)
664 {
666 return;
667 }
668
676 bool mark( int refCount, const typename Codim<0>::Entity & e )
677 {
678 return asImp().mark(refCount,e);
679 }
680
687 int getMark(const typename Codim<0>::Entity & e) const
688 {
689 return asImp().getMark(e);
690 }
691
698 bool preAdapt ()
699 {
700 return asImp().preAdapt();
701 }
702
717 bool adapt ()
718 {
719 return asImp().adapt();
720 }
721
727 {
728 return asImp().postAdapt();
729 }
731
732
733 //===========================================================
737 //===========================================================
738
740 const Communication &comm () const
741 {
742 CHECK_INTERFACE_IMPLEMENTATION(asImp().comm());
743 return asImp().comm();
744 }
746
751 {
752 CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance());
753 return asImp().loadBalance();
754 }
755
763 template<class DataHandle>
764 bool loadBalance (DataHandle& data)
765 {
766 CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance(data));
767 return asImp().loadBalance(data);
768 }
769
771 template < class EntitySeed >
772 typename Codim< EntitySeed :: codimension > :: Entity
773 entity( const EntitySeed& seed ) const
774 {
775 //CHECK_INTERFACE_IMPLEMENTATION( asImp().entity( seed ) );
776 return asImp().entity( seed );
777 }
778 protected:
780 GridImp& asImp () {return static_cast<GridImp &> (*this);}
782 const GridImp& asImp () const {return static_cast<const GridImp &>(*this);}
783 };
784
785#undef CHECK_INTERFACE_IMPLEMENTATION
786#undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
787
804 template<int dim, int dimworld, class ct, class GridFamily>
807 {
808 return grid.levelGridView(level);
809 }
810
821 template<int dim, int dimworld, class ct, class GridFamily>
824 {
825 return grid.leafGridView();
826 }
827
861 template<int dim,
862 int dimworld,
863 class ct,
864 class GridFamily>
865 class GridDefaultImplementation : public Grid <dim,dimworld,ct,GridFamily>
866 {
867 typedef typename GridFamily::Traits::Grid GridImp;
868
869 public:
875 typedef typename GridFamily::Traits Traits;
876
878 typename Traits::LevelGridView levelGridView(int level) const
879 {
880 typedef typename Traits::LevelGridView View;
881 typedef typename View::GridViewImp ViewImp;
882 return View(ViewImp(asImp(),level));
883 }
884
886 typename Traits::LeafGridView leafGridView() const
887 {
888 typedef typename Traits::LeafGridView View;
889 typedef typename View::GridViewImp ViewImp;
890 return View(ViewImp(asImp()));
891 }
892
894 typename Traits::LeafIntersectionIterator
895 ileafbegin ( const typename Traits::template Codim<0>::Entity &entity ) const
896 {
897 return entity.impl().ileafbegin();
898 }
899
901 typename Traits::LeafIntersectionIterator
902 ileafend ( const typename Traits::template Codim<0>::Entity &entity ) const
903 {
904 return entity.impl().ileafend();
905 }
906
908 typename Traits::LevelIntersectionIterator
909 ilevelbegin ( const typename Traits::template Codim<0>::Entity &entity ) const
910 {
911 return entity.impl().ilevelbegin();
912 }
913
915 typename Traits::LevelIntersectionIterator
916 ilevelend ( const typename Traits::template Codim<0>::Entity &entity ) const
917 {
918 return entity.impl().ilevelend();
919 }
920
921 //***************************************************************
922 // Interface for Adaptation
923 //***************************************************************
924
947 bool mark( int /*refCount*/, const typename Traits :: template Codim<0>::Entity & /*e*/ )
948 {
949 return false;
950 }
951
959 int getMark ( const typename Traits::template Codim< 0 >::Entity& /*e*/ ) const
960 {
961 return 0;
962 }
963
971 bool adapt () { return false; }
972
974 bool preAdapt () { return false; }
975
977 void postAdapt() {}
978
981 {
982 return false;
983 }
984
986 template<class DataHandle>
987 bool loadBalance ([[maybe_unused]] DataHandle& data)
988 {
989 return false;
990 }
991
992 protected:
993 using Grid< dim, dimworld, ct, GridFamily >::asImp;
994 };
995
1009 template <int dim, int dimw, class GridImp,
1010 template<int,int,class> class GeometryImp,
1011 template<int,int,class> class EntityImp,
1012 template<int,PartitionIteratorType,class> class LevelIteratorImp,
1013 template<class> class LeafIntersectionImp,
1014 template<class> class LevelIntersectionImp,
1015 template<class> class LeafIntersectionIteratorImp,
1016 template<class> class LevelIntersectionIteratorImp,
1017 template<class> class HierarchicIteratorImp,
1018 template<int,PartitionIteratorType,class> class LeafIteratorImp,
1019 class LevelIndexSetImp, class LeafIndexSetImp,
1020 class GlobalIdSetImp, class GIDType, class LocalIdSetImp, class LIDType, class CCType,
1021 template<class> class LevelGridViewTraits,
1022 template<class> class LeafGridViewTraits,
1023 template<int,class> class EntitySeedImp,
1024 template<int,int,class> class LocalGeometryImp = GeometryImp,
1025 class LevelIndexType = unsigned int,
1026 class LevelGeometryTypes = std::vector<GeometryType>,
1027 class LeafIndexType = LevelIndexType,
1028 class LeafGeometryTypes = LevelGeometryTypes
1029 >
1031 {
1033 typedef GridImp Grid;
1034
1043
1046
1051 template <int cd>
1052 struct Codim
1053 {
1054 public:
1055 typedef GeometryImp<dim-cd, dimw, const GridImp> GeometryImpl;
1056 typedef LocalGeometryImp<dim-cd, dim, const GridImp> LocalGeometryImpl;
1058
1059 typedef Dune::Geometry<dim-cd, dimw, const GridImp, GeometryImp> Geometry;
1061 typedef Dune::Geometry<dim-cd, dim, const GridImp, LocalGeometryImp> LocalGeometry;
1063 // we could - if needed - introduce another struct for dimglobal of Geometry
1065
1068
1073 template <PartitionIteratorType pitype>
1075 {
1080 };
1081
1084
1087
1088 private:
1089 friend class Dune::Entity<cd, dim, const GridImp, EntityImp>;
1090 };
1091
1096
1105
1107 typedef CCType Communication;
1108 };
1109
1110 // Definition of capabilities for the interface class
1111 namespace Capabilities
1112 {
1113
1114 // capabilities for the interface class depend on the implementation
1115 template< int dim, int dimworld, typename ct, class GridFamily , int codim >
1116 struct hasEntity< Grid< dim, dimworld, ct, GridFamily >, codim >
1117 {
1118 static const bool v = hasEntity< typename GridFamily::Traits::Grid, codim >::v;
1119 };
1120
1121 // capabilities for the interface class depend on the implementation
1122 template< int dim, int dimworld, typename ct, class GridFamily , int cdim >
1123 struct hasEntity< GridDefaultImplementation<dim,dimworld,ct,GridFamily>, cdim >
1124 {
1125 typedef GridDefaultImplementation<dim,dimworld,ct,GridFamily> GridType;
1126 typedef typename GridType::Traits::Grid GridImp;
1127 static const bool v = hasEntity<GridImp,cdim>::v;
1128 };
1129
1130 } // end namespace Capabilities
1131
1137 template <class InterfaceType>
1139 {
1140 typedef typename InterfaceType::Implementation ImplementationType;
1142 explicit MakeableInterfaceObject ( const ImplementationType &realImp )
1143 : InterfaceType( realImp )
1144 {}
1145 };
1146}
1147
1148#include "geometry.hh"
1149#include "entity.hh"
1150#include "intersection.hh"
1151#include "intersectioniterator.hh"
1152#include "entityiterator.hh"
1153#include "indexidset.hh"
1154
1155#endif // #ifndef DUNE_GRID_COMMON_GRID_HH
Provides check for implementation of interface methods when using static polymorphism,...
#define CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(__interface_method_to_call__)
Definition: bartonnackmanifcheck.hh:61
interface class for an iterator over grid entities
Definition: entityiterator.hh:32
Store a reference to an entity with a minimal memory footprint.
Definition: entityseed.hh:26
Wrapper class for entities.
Definition: entity.hh:66
Implementation & impl()
access to the underlying implementation
Definition: entity.hh:80
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:114
Wrapper class for geometries.
Definition: geometry.hh:71
Definition: grid.hh:866
Traits::LevelIntersectionIterator ilevelend(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain end intersection iterator on the entity level
Definition: grid.hh:916
bool adapt()
Refine all positive marked leaf entities coarsen all negative marked entities if possible.
Definition: grid.hh:971
void postAdapt()
clean up some markers
Definition: grid.hh:977
Traits::LevelIntersectionIterator ilevelbegin(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain begin intersection iterator on the entity level
Definition: grid.hh:909
bool preAdapt()
returns true, if at least one entity is marked for adaption
Definition: grid.hh:974
bool loadBalance(DataHandle &data)
default implementation of load balance does nothing and returns false
Definition: grid.hh:987
Traits::LeafIntersectionIterator ileafbegin(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain begin intersection iterator on the leaf level
Definition: grid.hh:895
bool mark(int, const typename Traits ::template Codim< 0 >::Entity &)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: grid.hh:947
Traits::LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: grid.hh:886
bool loadBalance()
default implementation of load balance does nothing and returns false
Definition: grid.hh:980
int getMark(const typename Traits::template Codim< 0 >::Entity &) const
returns adaptation mark for given entity, i.e. here the default implementation returns 0.
Definition: grid.hh:959
Traits::LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: grid.hh:878
GridFamily::Traits Traits
The traits of this class.
Definition: grid.hh:875
Traits::LeafIntersectionIterator ileafend(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain end intersection iterator on the leaf level
Definition: grid.hh:902
Grid view abstract base class.
Definition: gridview.hh:66
Grid abstract base class.
Definition: grid.hh:393
const LevelIndexSet & levelIndexSet(int level) const
return const reference to the grids level index set for level level
Definition: grid.hh:637
static constexpr int dimension
The dimension of the grid.
Definition: grid.hh:405
int size(int level, GeometryType type) const
Return number of entities per level and geometry type in this process.
Definition: grid.hh:570
GridFamily::Traits::LocalIdSet LocalIdSet
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entiti...
Definition: grid.hh:527
GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine,...
Definition: grid.hh:486
int size(int level, int codim) const
Return number of grid entities of a given codim on a given level in this process.
Definition: grid.hh:556
bool preAdapt()
To be called after entities have been marked and before adapt() is called.
Definition: grid.hh:698
GridFamily::Traits::LevelIndexSet LevelIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent,...
Definition: grid.hh:506
GridImp & asImp()
Barton-Nackman trick.
Definition: grid.hh:780
GridFamily::Traits::HierarchicIterator HierarchicIterator
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine,...
Definition: grid.hh:500
GridFamily::Traits::LevelGridView LevelGridView
type of view for level grid
Definition: grid.hh:420
GridFamily::Traits::LeafIntersection LeafIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition: grid.hh:474
GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine,...
Definition: grid.hh:493
LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: grid.hh:608
GridFamily::Traits::GlobalIdSet GlobalIdSet
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entiti...
Definition: grid.hh:520
const GridImp & asImp() const
Barton-Nackman trick.
Definition: grid.hh:782
static constexpr int dimensionworld
The dimension of the world the grid lives in.
Definition: grid.hh:408
void postAdapt()
To be called after grid has been adapted and information left over by the adaptation has been process...
Definition: grid.hh:726
bool mark(int refCount, const typename Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: grid.hh:676
Codim< EntitySeed::codimension >::Entity entity(const EntitySeed &seed) const
obtain Entity from EntitySeed.
Definition: grid.hh:773
GridFamily::Traits::LeafIndexSet LeafIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent,...
Definition: grid.hh:512
int maxLevel() const
Return maximum level defined in this grid. Levels are numbered 0 ... maxLevel with 0 the coarsest lev...
Definition: grid.hh:549
size_t numBoundarySegments() const
returns the number of boundary segments within the macro grid
Definition: grid.hh:589
const GlobalIdSet & globalIdSet() const
return const reference to the grids global id set
Definition: grid.hh:623
int getMark(const typename Codim< 0 >::Entity &e) const
returns adaptation mark for given entity
Definition: grid.hh:687
GridFamily::Traits::LevelIntersection LevelIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition: grid.hh:479
const LeafIndexSet & leafIndexSet() const
return const reference to the grids leaf index set
Definition: grid.hh:644
const LocalIdSet & localIdSet() const
return const reference to the grids local id set
Definition: grid.hh:630
LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: grid.hh:602
bool loadBalance(DataHandle &data)
Re-balances the load each process has to handle for a parallel grid and moves the data.
Definition: grid.hh:764
typename GridFamily::Traits::Communication Communication
A type that is a model of Dune::Communication. It provides a portable way for communication on the se...
Definition: grid.hh:533
GridFamily::Traits::LeafGridView LeafGridView
type of view for leaf grid
Definition: grid.hh:418
bool loadBalance()
Re-balances the load each process has to handle for a parallel grid,.
Definition: grid.hh:750
bool adapt()
Refine all positive marked leaf entities, coarsen all negative marked entities if possible.
Definition: grid.hh:717
int size(int codim) const
Return number of leaf entities of a given codim in this process.
Definition: grid.hh:563
ct ctype
Define type used for coordinates in grid module.
Definition: grid.hh:536
void globalRefine(int refCount)
Refine the grid refCount times using the default refinement rule.
Definition: grid.hh:663
const Communication & comm() const
return const reference to a communication object. The return type is a model of Dune::Communication.
Definition: grid.hh:740
int size(GeometryType type) const
Return number of leaf entities per geometry type in this process.
Definition: grid.hh:577
Id Set Interface.
Definition: indexidset.hh:447
Index Set Interface base class.
Definition: indexidset.hh:78
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: intersectioniterator.hh:83
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: intersection.hh:164
A set of traits classes to store static information about grid implementation.
Interface class EntitySeed.
Describes the parallel communication interface class for MessageBuffers and DataHandles.
Traits for type conversions and type information.
Implements a vector constructed from a given type representing a field and a compile-time given size.
Grid< dim, dimworld, ct, GridFamily >::LeafGridView leafGridView(const Grid< dim, dimworld, ct, GridFamily > &grid)
leaf grid view for the given grid
Definition: grid.hh:823
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: grid.hh:806
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:86
Dune namespace
Definition: alignedallocator.hh:13
Static tag representing a codimension.
Definition: dimension.hh:24
Traits associated with a specific grid partition type.
Definition: grid.hh:1075
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: grid.hh:1079
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: grid.hh:1077
Traits associated with a specific codim.
Definition: grid.hh:1053
Dune::Geometry< dim-cd, dimw, const GridImp, GeometryImp > Geometry
IMPORTANT: Codim<codim>::Geometry == Geometry<dim-codim,dimw>
Definition: grid.hh:1059
Dune::Geometry< dim-cd, dim, const GridImp, LocalGeometryImp > LocalGeometry
The type of the local geometry associated with the entity.
Definition: grid.hh:1061
Dune::EntitySeed< const GridImp, EntitySeedImp< cd, const GridImp > > EntitySeed
The type of the entity seed of this codim.
Definition: grid.hh:1067
Partition< All_Partition >::LeafIterator LeafIterator
The type of the iterator over all leaf entities of this codim.
Definition: grid.hh:1083
Partition< All_Partition >::LevelIterator LevelIterator
The type of the entity pointer for entities of this codim.
Definition: grid.hh:1086
Dune::Entity< cd, dim, const GridImp, EntityImp > Entity
The type of the entity.
Definition: grid.hh:1064
A traits struct that collects all associated types of one grid model.
Definition: grid.hh:1031
IndexSet< const GridImp, LeafIndexSetImp, LeafIndexType, LeafGeometryTypes > LeafIndexSet
The type of the leaf index set.
Definition: grid.hh:1100
IndexSet< const GridImp, LevelIndexSetImp, LevelIndexType, LevelGeometryTypes > LevelIndexSet
The type of the level index set.
Definition: grid.hh:1098
Dune::GridView< LevelGridViewTraits< const GridImp > > LevelGridView
type of view for level grid
Definition: grid.hh:1095
Dune::GridView< LeafGridViewTraits< const GridImp > > LeafGridView
type of view for leaf grid
Definition: grid.hh:1093
IdSet< const GridImp, LocalIdSetImp, LIDType > LocalIdSet
The type of the local id set.
Definition: grid.hh:1104
GridImp Grid
The type that implements the grid.
Definition: grid.hh:1033
Dune::EntityIterator< 0, const GridImp, HierarchicIteratorImp< const GridImp > > HierarchicIterator
The type of the hierarchic iterator.
Definition: grid.hh:1045
IdSet< const GridImp, GlobalIdSetImp, GIDType > GlobalIdSet
The type of the global id set.
Definition: grid.hh:1102
Dune::IntersectionIterator< const GridImp, LeafIntersectionIteratorImp< const GridImp >, LeafIntersectionImp< const GridImp > > LeafIntersectionIterator
The type of the intersection iterator at the leafs of the grid.
Definition: grid.hh:1040
Dune::IntersectionIterator< const GridImp, LevelIntersectionIteratorImp< const GridImp >, LevelIntersectionImp< const GridImp > > LevelIntersectionIterator
The type of the intersection iterator at the levels of the grid.
Definition: grid.hh:1042
Dune::Intersection< const GridImp, LeafIntersectionImp< const GridImp > > LeafIntersection
The type of the intersection at the leafs of the grid.
Definition: grid.hh:1036
Dune::Intersection< const GridImp, LevelIntersectionImp< const GridImp > > LevelIntersection
The type of the intersection at the levels of the grid.
Definition: grid.hh:1038
CCType Communication
The type of the communication.
Definition: grid.hh:1107
A struct collecting all types depending on the partition iterator type.
Definition: grid.hh:445
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: grid.hh:452
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: grid.hh:459
A Traits struct that collects all associated types of one implementation.
Definition: grid.hh:429
GridFamily::Traits::template Codim< cd >::Entity Entity
A type that is a model of a Dune::Entity<cd,dim,...>.
Definition: grid.hh:437
GridFamily::Traits::template Codim< cd >::LocalGeometry LocalGeometry
A type that is a model of Dune::Geometry<dim-cd,dim>.
Definition: grid.hh:434
GridFamily::Traits::template Codim< cd >::LevelIterator LevelIterator
A type that is a model of Dune::LevelIterator with partition type All_Partition.
Definition: grid.hh:464
GridFamily::Traits::template Codim< cd >::Geometry Geometry
A type that is a model of Dune::Geometry<dim-cd,dimworld>.
Definition: grid.hh:431
GridFamily::Traits::template Codim< cd >::EntitySeed EntitySeed
A type that is a model (not yet) of Dune::EntitySeed<cd,dim,...>.
Definition: grid.hh:440
GridFamily::Traits::template Codim< cd >::LeafIterator LeafIterator
A type that is a model of Dune::LeafIterator with partition type All_Partition.
Definition: grid.hh:468
Definition: grid.hh:1139
MakeableInterfaceObject(const ImplementationType &realImp)
create interface object by calling the constructor of the base class
Definition: grid.hh:1142
A unique label for each type of element that can occur in a grid.
Utilities for type computations, constraining overloads, ...
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Jun 10, 22:32, 2026)