Dune Core Modules (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.
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.
Traits for type conversions and type information.
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 15, 23:13, 2026)