DUNE PDELab (git)

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
335 // Forward Declarations
336 // --------------------
337
338 template<int mydim, int cdim, class GridImp,template<int,int,class> class GeometryImp> class Geometry;
339 template< int mydim, int cdim, class GridImp > class GlobalGeometryReference;
340 template< int mydim, int cdim, class GridImp > class LocalGeometryReference;
341 // dim is necessary because Entity will be specialized for codim==0 _and_ codim==dim
342 // EntityImp gets GridImp as 3rd template parameter to distinguish between const and mutable grid
343 template<int codim, int dim, class GridImp,template<int,int,class> class EntityImp> class Entity;
344 template< int codim, class Grid, class IteratorImp > class EntityIterator;
345 template<class GridImp, class EntitySeedImp> class EntitySeed;
346 template< class GridImp, class IntersectionImp > class Intersection;
347 template< class GridImp, class IntersectionIteratorImp, class IntersectionImp > class IntersectionIterator;
348 template< class GridImp, class IndexSetImp, class IndexTypeImp = unsigned int, class TypesImp = std::vector< GeometryType > > class IndexSet;
349 template<class GridImp, class IdSetImp, class IdTypeImp> class IdSet;
350
351
352 //************************************************************************
353 // G R I D
354 //************************************************************************
355
374 template< int dim, int dimworld, class ct, class GridFamily>
375 class Grid {
376 typedef typename GridFamily::Traits::Grid GridImp;
378 public:
379
380 //===========================================================
384 //===========================================================
385
387 constexpr static int dimension = dim;
388
390 constexpr static int dimensionworld = dimworld;
392
393 //===========================================================
397 //===========================================================
398
400 typedef typename GridFamily::Traits::LeafGridView LeafGridView;
402 typedef typename GridFamily::Traits::LevelGridView LevelGridView;
403
404
409 template <int cd>
410 struct Codim
411 {
413 typedef typename GridFamily::Traits::template Codim<cd>::Geometry Geometry;
414
416 typedef typename GridFamily::Traits::template Codim<cd>::LocalGeometry LocalGeometry;
417
419 typedef typename GridFamily::Traits::template Codim<cd>::Entity Entity;
420
422 typedef typename GridFamily::Traits::template Codim<cd>::EntitySeed EntitySeed;
423
425 template <PartitionIteratorType pitype>
427 {
434 typedef typename GridFamily::Traits::template Codim<cd>::template Partition<pitype>::LevelIterator LevelIterator;
441 typedef typename GridFamily::Traits::template Codim<cd>::template Partition<pitype>::LeafIterator LeafIterator;
442 };
443
446 typedef typename GridFamily::Traits::template Codim<cd>::LevelIterator LevelIterator;
447
450 typedef typename GridFamily::Traits::template Codim<cd>::LeafIterator LeafIterator;
451 };
452
456 typedef typename GridFamily::Traits::LeafIntersection LeafIntersection;
457
461 typedef typename GridFamily::Traits::LevelIntersection LevelIntersection;
462
468 typedef typename GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator;
469
475 typedef typename GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator;
476
482 typedef typename GridFamily::Traits::HierarchicIterator HierarchicIterator;
483
488 typedef typename GridFamily::Traits::LevelIndexSet LevelIndexSet;
489
494 typedef typename GridFamily::Traits::LeafIndexSet LeafIndexSet;
495
502 typedef typename GridFamily::Traits::GlobalIdSet GlobalIdSet;
503
509 typedef typename GridFamily::Traits::LocalIdSet LocalIdSet;
510
515 using Communication = typename GridFamily::Traits::Communication;
516
518 typedef ct ctype;
520
521
522 //===========================================================
526 //===========================================================
527
531 int maxLevel() const
532 {
533 CHECK_INTERFACE_IMPLEMENTATION(asImp().maxLevel());
534 return asImp().maxLevel();
535 }
536
538 int size (int level, int codim) const
539 {
540 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,codim));
541 return asImp().size(level,codim);
542 }
543
545 int size (int codim) const
546 {
547 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(codim));
548 return asImp().size(codim);
549 }
550
552 int size (int level, GeometryType type) const
553 {
554 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,type));
555 return asImp().size(level,type);
556 }
557
559 int size (GeometryType type) const
560 {
561 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(type));
562 return asImp().size(type);
563 }
565
566
571 size_t numBoundarySegments () const
572 {
573 CHECK_INTERFACE_IMPLEMENTATION( asImp().numBoundarySegments());
574 return asImp().numBoundarySegments();
575 }
576
577 //===========================================================
581 //===========================================================
582
584 LevelGridView levelGridView(int level) const {
585 CHECK_INTERFACE_IMPLEMENTATION((asImp().levelGridView(level)));
586 return asImp().levelGridView(level);
587 }
588
591 CHECK_INTERFACE_IMPLEMENTATION((asImp().leafGridView()));
592 return asImp().leafGridView();
593 }
594
596
597
598 //===========================================================
602 //===========================================================
603
605 const GlobalIdSet &globalIdSet () const
606 {
607 CHECK_INTERFACE_IMPLEMENTATION(asImp().globalIdSet());
608 return asImp().globalIdSet();
609 }
610
612 const LocalIdSet &localIdSet () const
613 {
614 CHECK_INTERFACE_IMPLEMENTATION(asImp().localIdSet());
615 return asImp().localIdSet();
616 }
617
619 const LevelIndexSet &levelIndexSet ( int level ) const
620 {
621 CHECK_INTERFACE_IMPLEMENTATION(asImp().levelIndexSet(level));
622 return asImp().levelIndexSet(level);
623 }
624
627 {
628 CHECK_INTERFACE_IMPLEMENTATION(asImp().leafIndexSet());
629 return asImp().leafIndexSet();
630 }
632
633
634 //===========================================================
638 //===========================================================
639
645 void globalRefine (int refCount)
646 {
648 return;
649 }
650
658 bool mark( int refCount, const typename Codim<0>::Entity & e )
659 {
660 return asImp().mark(refCount,e);
661 }
662
669 int getMark(const typename Codim<0>::Entity & e) const
670 {
671 return asImp().getMark(e);
672 }
673
680 bool preAdapt ()
681 {
682 return asImp().preAdapt();
683 }
684
699 bool adapt ()
700 {
701 return asImp().adapt();
702 }
703
709 {
710 return asImp().postAdapt();
711 }
713
714
715 //===========================================================
719 //===========================================================
720
722 const Communication &comm () const
723 {
724 CHECK_INTERFACE_IMPLEMENTATION(asImp().comm());
725 return asImp().comm();
726 }
728
733 {
734 CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance());
735 return asImp().loadBalance();
736 }
737
745 template<class DataHandle>
746 bool loadBalance (DataHandle& data)
747 {
748 CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance(data));
749 return asImp().loadBalance(data);
750 }
751
753 template < class EntitySeed >
754 typename Codim< EntitySeed :: codimension > :: Entity
755 entity( const EntitySeed& seed ) const
756 {
757 //CHECK_INTERFACE_IMPLEMENTATION( asImp().entity( seed ) );
758 return asImp().entity( seed );
759 }
760 protected:
762 GridImp& asImp () {return static_cast<GridImp &> (*this);}
764 const GridImp& asImp () const {return static_cast<const GridImp &>(*this);}
765 };
766
767#undef CHECK_INTERFACE_IMPLEMENTATION
768#undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
769
786 template<int dim, int dimworld, class ct, class GridFamily>
789 {
790 return grid.levelGridView(level);
791 }
792
803 template<int dim, int dimworld, class ct, class GridFamily>
806 {
807 return grid.leafGridView();
808 }
809
843 template<int dim,
844 int dimworld,
845 class ct,
846 class GridFamily>
847 class GridDefaultImplementation : public Grid <dim,dimworld,ct,GridFamily>
848 {
849 typedef typename GridFamily::Traits::Grid GridImp;
850
851 public:
857 typedef typename GridFamily::Traits Traits;
858
860 typename Traits::LevelGridView levelGridView(int level) const
861 {
862 typedef typename Traits::LevelGridView View;
863 typedef typename View::GridViewImp ViewImp;
864 return View(ViewImp(asImp(),level));
865 }
866
868 typename Traits::LeafGridView leafGridView() const
869 {
870 typedef typename Traits::LeafGridView View;
871 typedef typename View::GridViewImp ViewImp;
872 return View(ViewImp(asImp()));
873 }
874
876 typename Traits::LeafIntersectionIterator
877 ileafbegin ( const typename Traits::template Codim<0>::Entity &entity ) const
878 {
879 return entity.impl().ileafbegin();
880 }
881
883 typename Traits::LeafIntersectionIterator
884 ileafend ( const typename Traits::template Codim<0>::Entity &entity ) const
885 {
886 return entity.impl().ileafend();
887 }
888
890 typename Traits::LevelIntersectionIterator
891 ilevelbegin ( const typename Traits::template Codim<0>::Entity &entity ) const
892 {
893 return entity.impl().ilevelbegin();
894 }
895
897 typename Traits::LevelIntersectionIterator
898 ilevelend ( const typename Traits::template Codim<0>::Entity &entity ) const
899 {
900 return entity.impl().ilevelend();
901 }
902
903 //***************************************************************
904 // Interface for Adaptation
905 //***************************************************************
906
929 bool mark( int refCount, const typename Traits :: template Codim<0>::Entity & e )
930 {
931 return false;
932 }
933
941 int getMark ( const typename Traits::template Codim< 0 >::Entity &e ) const
942 {
943 return 0;
944 }
945
953 bool adapt () { return false; }
954
956 bool preAdapt () { return false; }
957
959 void postAdapt() {}
960
963 {
964 return false;
965 }
966
968 template<class DataHandle>
969 bool loadBalance ([[maybe_unused]] DataHandle& data)
970 {
971 return false;
972 }
973
974 protected:
975 using Grid< dim, dimworld, ct, GridFamily >::asImp;
976 };
977
991 template <int dim, int dimw, class GridImp,
992 template<int,int,class> class GeometryImp,
993 template<int,int,class> class EntityImp,
994 template<int,PartitionIteratorType,class> class LevelIteratorImp,
995 template<class> class LeafIntersectionImp,
996 template<class> class LevelIntersectionImp,
997 template<class> class LeafIntersectionIteratorImp,
998 template<class> class LevelIntersectionIteratorImp,
999 template<class> class HierarchicIteratorImp,
1000 template<int,PartitionIteratorType,class> class LeafIteratorImp,
1001 class LevelIndexSetImp, class LeafIndexSetImp,
1002 class GlobalIdSetImp, class GIDType, class LocalIdSetImp, class LIDType, class CCType,
1003 template<class> class LevelGridViewTraits,
1004 template<class> class LeafGridViewTraits,
1005 template<int,class> class EntitySeedImp,
1006 template<int,int,class> class LocalGeometryImp = GeometryImp,
1007 class LevelIndexType = unsigned int,
1008 class LevelGeometryTypes = std::vector<GeometryType>,
1009 class LeafIndexType = LevelIndexType,
1010 class LeafGeometryTypes = LevelGeometryTypes
1011 >
1013 {
1015 typedef GridImp Grid;
1016
1025
1028
1033 template <int cd>
1034 struct Codim
1035 {
1036 public:
1037 typedef GeometryImp<dim-cd, dimw, const GridImp> GeometryImpl;
1038 typedef LocalGeometryImp<dim-cd, dim, const GridImp> LocalGeometryImpl;
1040
1041 typedef Dune::Geometry<dim-cd, dimw, const GridImp, GeometryImp> Geometry;
1043 typedef Dune::Geometry<dim-cd, dim, const GridImp, LocalGeometryImp> LocalGeometry;
1045 // we could - if needed - introduce another struct for dimglobal of Geometry
1047
1050
1055 template <PartitionIteratorType pitype>
1057 {
1062 };
1063
1066
1069
1070 private:
1071 friend class Dune::Entity<cd, dim, const GridImp, EntityImp>;
1072 };
1073
1078
1087
1089 typedef CCType Communication;
1090 };
1091
1092 // Definition of capabilities for the interface class
1093 namespace Capabilities
1094 {
1095
1096 // capabilities for the interface class depend on the implementation
1097 template< int dim, int dimworld, typename ct, class GridFamily , int codim >
1098 struct hasEntity< Grid< dim, dimworld, ct, GridFamily >, codim >
1099 {
1100 static const bool v = hasEntity< typename GridFamily::Traits::Grid, codim >::v;
1101 };
1102
1103 // capabilities for the interface class depend on the implementation
1104 template< int dim, int dimworld, typename ct, class GridFamily , int cdim >
1105 struct hasEntity< GridDefaultImplementation<dim,dimworld,ct,GridFamily>, cdim >
1106 {
1107 typedef GridDefaultImplementation<dim,dimworld,ct,GridFamily> GridType;
1108 typedef typename GridType::Traits::Grid GridImp;
1109 static const bool v = hasEntity<GridImp,cdim>::v;
1110 };
1111
1112 } // end namespace Capabilities
1113
1119 template <class InterfaceType>
1121 {
1122 typedef typename InterfaceType::Implementation ImplementationType;
1124 explicit MakeableInterfaceObject ( const ImplementationType &realImp )
1125 : InterfaceType( realImp )
1126 {}
1127 };
1128}
1129
1130#include "geometry.hh"
1131#include "entity.hh"
1132#include "intersection.hh"
1133#include "intersectioniterator.hh"
1134#include "entityiterator.hh"
1135#include "indexidset.hh"
1136
1137#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:848
Traits::LevelIntersectionIterator ilevelend(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain end intersection iterator on the entity level
Definition: grid.hh:898
bool adapt()
Refine all positive marked leaf entities coarsen all negative marked entities if possible.
Definition: grid.hh:953
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.hh:929
void postAdapt()
clean up some markers
Definition: grid.hh:959
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: grid.hh:941
Traits::LevelIntersectionIterator ilevelbegin(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain begin intersection iterator on the entity level
Definition: grid.hh:891
bool preAdapt()
returns true, if at least one entity is marked for adaption
Definition: grid.hh:956
bool loadBalance(DataHandle &data)
default implementation of load balance does nothing and returns false
Definition: grid.hh:969
Traits::LeafIntersectionIterator ileafbegin(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain begin intersection iterator on the leaf level
Definition: grid.hh:877
Traits::LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: grid.hh:868
bool loadBalance()
default implementation of load balance does nothing and returns false
Definition: grid.hh:962
Traits::LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: grid.hh:860
GridFamily::Traits Traits
The traits of this class.
Definition: grid.hh:857
Traits::LeafIntersectionIterator ileafend(const typename Traits::template Codim< 0 >::Entity &entity) const
obtain end intersection iterator on the leaf level
Definition: grid.hh:884
Grid view abstract base class.
Definition: gridview.hh:66
Grid abstract base class.
Definition: grid.hh:375
const LevelIndexSet & levelIndexSet(int level) const
return const reference to the grids level index set for level level
Definition: grid.hh:619
static constexpr int dimension
The dimension of the grid.
Definition: grid.hh:387
int size(int level, GeometryType type) const
Return number of entities per level and geometry type in this process.
Definition: grid.hh:552
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:509
GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine,...
Definition: grid.hh:468
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:538
bool preAdapt()
To be called after entities have been marked and before adapt() is called.
Definition: grid.hh:680
GridFamily::Traits::LevelIndexSet LevelIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent,...
Definition: grid.hh:488
GridImp & asImp()
Barton-Nackman trick.
Definition: grid.hh:762
GridFamily::Traits::HierarchicIterator HierarchicIterator
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine,...
Definition: grid.hh:482
GridFamily::Traits::LevelGridView LevelGridView
type of view for level grid
Definition: grid.hh:402
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:456
GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine,...
Definition: grid.hh:475
LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: grid.hh:590
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:502
const GridImp & asImp() const
Barton-Nackman trick.
Definition: grid.hh:764
static constexpr int dimensionworld
The dimension of the world the grid lives in.
Definition: grid.hh:390
void postAdapt()
To be called after grid has been adapted and information left over by the adaptation has been process...
Definition: grid.hh:708
bool mark(int refCount, const typename Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: grid.hh:658
Codim< EntitySeed::codimension >::Entity entity(const EntitySeed &seed) const
obtain Entity from EntitySeed.
Definition: grid.hh:755
GridFamily::Traits::LeafIndexSet LeafIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent,...
Definition: grid.hh:494
int maxLevel() const
Return maximum level defined in this grid. Levels are numbered 0 ... maxLevel with 0 the coarsest lev...
Definition: grid.hh:531
size_t numBoundarySegments() const
returns the number of boundary segments within the macro grid
Definition: grid.hh:571
const GlobalIdSet & globalIdSet() const
return const reference to the grids global id set
Definition: grid.hh:605
int getMark(const typename Codim< 0 >::Entity &e) const
returns adaptation mark for given entity
Definition: grid.hh:669
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:461
const LeafIndexSet & leafIndexSet() const
return const reference to the grids leaf index set
Definition: grid.hh:626
const LocalIdSet & localIdSet() const
return const reference to the grids local id set
Definition: grid.hh:612
LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: grid.hh:584
bool loadBalance(DataHandle &data)
Re-balances the load each process has to handle for a parallel grid and moves the data.
Definition: grid.hh:746
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:515
GridFamily::Traits::LeafGridView LeafGridView
type of view for leaf grid
Definition: grid.hh:400
bool loadBalance()
Re-balances the load each process has to handle for a parallel grid,.
Definition: grid.hh:732
bool adapt()
Refine all positive marked leaf entities, coarsen all negative marked entities if possible.
Definition: grid.hh:699
int size(int codim) const
Return number of leaf entities of a given codim in this process.
Definition: grid.hh:545
ct ctype
Define type used for coordinates in grid module.
Definition: grid.hh:518
void globalRefine(int refCount)
Refine the grid refCount times using the default refinement rule.
Definition: grid.hh:645
const Communication & comm() const
return const reference to a communication object. The return type is a model of Dune::Communication.
Definition: grid.hh:722
int size(GeometryType type) const
Return number of leaf entities per geometry type in this process.
Definition: grid.hh:559
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:805
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:788
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:1057
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:1061
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:1059
Traits associated with a specific codim.
Definition: grid.hh:1035
Dune::Geometry< dim-cd, dimw, const GridImp, GeometryImp > Geometry
IMPORTANT: Codim<codim>::Geometry == Geometry<dim-codim,dimw>
Definition: grid.hh:1041
Dune::Geometry< dim-cd, dim, const GridImp, LocalGeometryImp > LocalGeometry
The type of the local geometry associated with the entity.
Definition: grid.hh:1043
Dune::EntitySeed< const GridImp, EntitySeedImp< cd, const GridImp > > EntitySeed
The type of the entity seed of this codim.
Definition: grid.hh:1049
Partition< All_Partition >::LeafIterator LeafIterator
The type of the iterator over all leaf entities of this codim.
Definition: grid.hh:1065
Partition< All_Partition >::LevelIterator LevelIterator
The type of the entity pointer for entities of this codim.
Definition: grid.hh:1068
Dune::Entity< cd, dim, const GridImp, EntityImp > Entity
The type of the entity.
Definition: grid.hh:1046
A traits struct that collects all associated types of one grid model.
Definition: grid.hh:1013
IndexSet< const GridImp, LeafIndexSetImp, LeafIndexType, LeafGeometryTypes > LeafIndexSet
The type of the leaf index set.
Definition: grid.hh:1082
IndexSet< const GridImp, LevelIndexSetImp, LevelIndexType, LevelGeometryTypes > LevelIndexSet
The type of the level index set.
Definition: grid.hh:1080
Dune::GridView< LevelGridViewTraits< const GridImp > > LevelGridView
type of view for level grid
Definition: grid.hh:1077
Dune::GridView< LeafGridViewTraits< const GridImp > > LeafGridView
type of view for leaf grid
Definition: grid.hh:1075
IdSet< const GridImp, LocalIdSetImp, LIDType > LocalIdSet
The type of the local id set.
Definition: grid.hh:1086
GridImp Grid
The type that implements the grid.
Definition: grid.hh:1015
Dune::EntityIterator< 0, const GridImp, HierarchicIteratorImp< const GridImp > > HierarchicIterator
The type of the hierarchic iterator.
Definition: grid.hh:1027
IdSet< const GridImp, GlobalIdSetImp, GIDType > GlobalIdSet
The type of the global id set.
Definition: grid.hh:1084
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:1022
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:1024
Dune::Intersection< const GridImp, LeafIntersectionImp< const GridImp > > LeafIntersection
The type of the intersection at the leafs of the grid.
Definition: grid.hh:1018
Dune::Intersection< const GridImp, LevelIntersectionImp< const GridImp > > LevelIntersection
The type of the intersection at the levels of the grid.
Definition: grid.hh:1020
CCType Communication
The type of the communication.
Definition: grid.hh:1089
A struct collecting all types depending on the partition iterator type.
Definition: grid.hh:427
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:434
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:441
A Traits struct that collects all associated types of one implementation.
Definition: grid.hh:411
GridFamily::Traits::template Codim< cd >::Entity Entity
A type that is a model of a Dune::Entity<cd,dim,...>.
Definition: grid.hh:419
GridFamily::Traits::template Codim< cd >::LocalGeometry LocalGeometry
A type that is a model of Dune::Geometry<dim-cd,dim>.
Definition: grid.hh:416
GridFamily::Traits::template Codim< cd >::LevelIterator LevelIterator
A type that is a model of Dune::LevelIterator with partition type All_Partition.
Definition: grid.hh:446
GridFamily::Traits::template Codim< cd >::Geometry Geometry
A type that is a model of Dune::Geometry<dim-cd,dimworld>.
Definition: grid.hh:413
GridFamily::Traits::template Codim< cd >::EntitySeed EntitySeed
A type that is a model (not yet) of Dune::EntitySeed<cd,dim,...>.
Definition: grid.hh:422
GridFamily::Traits::template Codim< cd >::LeafIterator LeafIterator
A type that is a model of Dune::LeafIterator with partition type All_Partition.
Definition: grid.hh:450
Definition: grid.hh:1121
MakeableInterfaceObject(const ImplementationType &realImp)
create interface object by calling the constructor of the base class
Definition: grid.hh:1124
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  |  generated with Hugo v0.111.3 (Nov 12, 23:30, 2024)