Dune Core Modules (2.9.1)

grid.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (C) 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
511 protected:
512 template <class T>
513 using Communication_t = typename T::Communication;
514 template <class T>
515 using DeprecatedCollectiveCommunication_t = typename T::CollectiveCommunication;
516
517 public:
522 // if this line produces a warning then the Communication typedef is missing
523 // in the GridFamily::Traits
524 using Communication = detected_or_fallback_t< DeprecatedCollectiveCommunication_t,
525 Communication_t, typename GridFamily::Traits>;
526
529 using CollectiveCommunication [[deprecated("CollectiveCommunication is deprecated, use Communication instead!")]] = Communication;
530
532 typedef ct ctype;
534
535
536 //===========================================================
540 //===========================================================
541
545 int maxLevel() const
546 {
547 CHECK_INTERFACE_IMPLEMENTATION(asImp().maxLevel());
548 return asImp().maxLevel();
549 }
550
552 int size (int level, int codim) const
553 {
554 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,codim));
555 return asImp().size(level,codim);
556 }
557
559 int size (int codim) const
560 {
561 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(codim));
562 return asImp().size(codim);
563 }
564
566 int size (int level, GeometryType type) const
567 {
568 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(level,type));
569 return asImp().size(level,type);
570 }
571
573 int size (GeometryType type) const
574 {
575 CHECK_INTERFACE_IMPLEMENTATION(asImp().size(type));
576 return asImp().size(type);
577 }
579
580
585 size_t numBoundarySegments () const
586 {
587 CHECK_INTERFACE_IMPLEMENTATION( asImp().numBoundarySegments());
588 return asImp().numBoundarySegments();
589 }
590
591 //===========================================================
595 //===========================================================
596
598 LevelGridView levelGridView(int level) const {
599 CHECK_INTERFACE_IMPLEMENTATION((asImp().levelGridView(level)));
600 return asImp().levelGridView(level);
601 }
602
605 CHECK_INTERFACE_IMPLEMENTATION((asImp().leafGridView()));
606 return asImp().leafGridView();
607 }
608
610
611
612 //===========================================================
616 //===========================================================
617
619 const GlobalIdSet &globalIdSet () const
620 {
621 CHECK_INTERFACE_IMPLEMENTATION(asImp().globalIdSet());
622 return asImp().globalIdSet();
623 }
624
626 const LocalIdSet &localIdSet () const
627 {
628 CHECK_INTERFACE_IMPLEMENTATION(asImp().localIdSet());
629 return asImp().localIdSet();
630 }
631
633 const LevelIndexSet &levelIndexSet ( int level ) const
634 {
635 CHECK_INTERFACE_IMPLEMENTATION(asImp().levelIndexSet(level));
636 return asImp().levelIndexSet(level);
637 }
638
641 {
642 CHECK_INTERFACE_IMPLEMENTATION(asImp().leafIndexSet());
643 return asImp().leafIndexSet();
644 }
646
647
648 //===========================================================
652 //===========================================================
653
659 void globalRefine (int refCount)
660 {
662 return;
663 }
664
672 bool mark( int refCount, const typename Codim<0>::Entity & e )
673 {
674 return asImp().mark(refCount,e);
675 }
676
683 int getMark(const typename Codim<0>::Entity & e) const
684 {
685 return asImp().getMark(e);
686 }
687
694 bool preAdapt ()
695 {
696 return asImp().preAdapt();
697 }
698
713 bool adapt ()
714 {
715 return asImp().adapt();
716 }
717
723 {
724 return asImp().postAdapt();
725 }
727
728
729 //===========================================================
733 //===========================================================
734
736 const Communication &comm () const
737 {
738 CHECK_INTERFACE_IMPLEMENTATION(asImp().comm());
739 return asImp().comm();
740 }
742
747 {
748 CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance());
749 return asImp().loadBalance();
750 }
751
759 template<class DataHandle>
760 bool loadBalance (DataHandle& data)
761 {
762 CHECK_INTERFACE_IMPLEMENTATION(asImp().loadBalance(data));
763 return asImp().loadBalance(data);
764 }
765
767 template < class EntitySeed >
768 typename Codim< EntitySeed :: codimension > :: Entity
769 entity( const EntitySeed& seed ) const
770 {
771 //CHECK_INTERFACE_IMPLEMENTATION( asImp().entity( seed ) );
772 return asImp().entity( seed );
773 }
774 protected:
776 GridImp& asImp () {return static_cast<GridImp &> (*this);}
778 const GridImp& asImp () const {return static_cast<const GridImp &>(*this);}
779 };
780
781#undef CHECK_INTERFACE_IMPLEMENTATION
782#undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
783
800 template<int dim, int dimworld, class ct, class GridFamily>
803 {
804 return grid.levelGridView(level);
805 }
806
817 template<int dim, int dimworld, class ct, class GridFamily>
820 {
821 return grid.leafGridView();
822 }
823
857 template<int dim,
858 int dimworld,
859 class ct,
860 class GridFamily>
861 class GridDefaultImplementation : public Grid <dim,dimworld,ct,GridFamily>
862 {
863 typedef typename GridFamily::Traits::Grid GridImp;
864
865 public:
871 typedef typename GridFamily::Traits Traits;
872
874 typename Traits::LevelGridView levelGridView(int level) const
875 {
876 typedef typename Traits::LevelGridView View;
877 typedef typename View::GridViewImp ViewImp;
878 return View(ViewImp(asImp(),level));
879 }
880
882 typename Traits::LeafGridView leafGridView() const
883 {
884 typedef typename Traits::LeafGridView View;
885 typedef typename View::GridViewImp ViewImp;
886 return View(ViewImp(asImp()));
887 }
888
889 //***************************************************************
890 // Interface for Adaptation
891 //***************************************************************
892
915 bool mark( int refCount, const typename Traits :: template Codim<0>::Entity & e )
916 {
917 return false;
918 }
919
927 int getMark ( const typename Traits::template Codim< 0 >::Entity &e ) const
928 {
929 return 0;
930 }
931
939 bool adapt () { return false; }
940
942 bool preAdapt () { return false; }
943
945 void postAdapt() {}
946
949 {
950 return false;
951 }
952
954 template<class DataHandle>
955 bool loadBalance ([[maybe_unused]] DataHandle& data)
956 {
957 return false;
958 }
959
960 protected:
961 using Grid< dim, dimworld, ct, GridFamily >::asImp;
962 };
963
977 template <int dim, int dimw, class GridImp,
978 template<int,int,class> class GeometryImp,
979 template<int,int,class> class EntityImp,
980 template<int,PartitionIteratorType,class> class LevelIteratorImp,
981 template<class> class LeafIntersectionImp,
982 template<class> class LevelIntersectionImp,
983 template<class> class LeafIntersectionIteratorImp,
984 template<class> class LevelIntersectionIteratorImp,
985 template<class> class HierarchicIteratorImp,
986 template<int,PartitionIteratorType,class> class LeafIteratorImp,
987 class LevelIndexSetImp, class LeafIndexSetImp,
988 class GlobalIdSetImp, class GIDType, class LocalIdSetImp, class LIDType, class CCType,
989 template<class> class LevelGridViewTraits,
990 template<class> class LeafGridViewTraits,
991 template<int,class> class EntitySeedImp,
992 template<int,int,class> class LocalGeometryImp = GeometryImp
993 >
995 {
997 typedef GridImp Grid;
998
1007
1010
1015 template <int cd>
1016 struct Codim
1017 {
1018 public:
1019 typedef GeometryImp<dim-cd, dimw, const GridImp> GeometryImpl;
1020 typedef LocalGeometryImp<dim-cd, dim, const GridImp> LocalGeometryImpl;
1022
1023 typedef Dune::Geometry<dim-cd, dimw, const GridImp, GeometryImp> Geometry;
1025 typedef Dune::Geometry<dim-cd, dim, const GridImp, LocalGeometryImp> LocalGeometry;
1027 // we could - if needed - introduce another struct for dimglobal of Geometry
1029
1032
1037 template <PartitionIteratorType pitype>
1039 {
1044 };
1045
1048
1051
1052 private:
1053 friend class Dune::Entity<cd, dim, const GridImp, EntityImp>;
1054 };
1055
1060
1069
1071 typedef CCType Communication;
1072
1074 [[deprecated("Use Communication instead!")]]
1076 };
1077
1078 // Definition of capabilities for the interface class
1079 namespace Capabilities
1080 {
1081
1082 // capabilities for the interface class depend on the implementation
1083 template< int dim, int dimworld, typename ct, class GridFamily , int codim >
1084 struct hasEntity< Grid< dim, dimworld, ct, GridFamily >, codim >
1085 {
1086 static const bool v = hasEntity< typename GridFamily::Traits::Grid, codim >::v;
1087 };
1088
1089 // capabilities for the interface class depend on the implementation
1090 template< int dim, int dimworld, typename ct, class GridFamily , int cdim >
1091 struct hasEntity< GridDefaultImplementation<dim,dimworld,ct,GridFamily>, cdim >
1092 {
1093 typedef GridDefaultImplementation<dim,dimworld,ct,GridFamily> GridType;
1094 typedef typename GridType::Traits::Grid GridImp;
1095 static const bool v = hasEntity<GridImp,cdim>::v;
1096 };
1097
1098 } // end namespace Capabilities
1099
1105 template <class InterfaceType>
1107 {
1108 typedef typename InterfaceType::Implementation ImplementationType;
1110 explicit MakeableInterfaceObject ( const ImplementationType &realImp )
1111 : InterfaceType( realImp )
1112 {}
1113 };
1114}
1115
1116#include "geometry.hh"
1117#include "entity.hh"
1118#include "intersection.hh"
1119#include "intersectioniterator.hh"
1120#include "entityiterator.hh"
1121#include "indexidset.hh"
1122
1123#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
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:126
Wrapper class for geometries.
Definition: geometry.hh:71
Definition: grid.hh:862
bool adapt()
Refine all positive marked leaf entities coarsen all negative marked entities if possible.
Definition: grid.hh:939
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:915
void postAdapt()
clean up some markers
Definition: grid.hh:945
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:927
bool preAdapt()
returns true, if at least one entity is marked for adaption
Definition: grid.hh:942
bool loadBalance(DataHandle &data)
default implementation of load balance does nothing and returns false
Definition: grid.hh:955
Traits::LeafGridView leafGridView() const
View for the leaf grid for All_Partition.
Definition: grid.hh:882
bool loadBalance()
default implementation of load balance does nothing and returns false
Definition: grid.hh:948
Traits::LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: grid.hh:874
GridFamily::Traits Traits
The traits of this class.
Definition: grid.hh:871
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:633
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:566
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:552
bool preAdapt()
To be called after entities have been marked and before adapt() is called.
Definition: grid.hh:694
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:776
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:604
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:778
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:722
bool mark(int refCount, const typename Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt.
Definition: grid.hh:672
detected_or_fallback_t< DeprecatedCollectiveCommunication_t, Communication_t, typename GridFamily::Traits > Communication
A type that is a model of Dune::Communication. It provides a portable way for communication on the se...
Definition: grid.hh:525
Codim< EntitySeed::codimension >::Entity entity(const EntitySeed &seed) const
obtain Entity from EntitySeed.
Definition: grid.hh:769
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:545
size_t numBoundarySegments() const
returns the number of boundary segments within the macro grid
Definition: grid.hh:585
const GlobalIdSet & globalIdSet() const
return const reference to the grids global id set
Definition: grid.hh:619
int getMark(const typename Codim< 0 >::Entity &e) const
returns adaptation mark for given entity
Definition: grid.hh:683
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
Communication CollectiveCommunication
Definition: grid.hh:529
const LeafIndexSet & leafIndexSet() const
return const reference to the grids leaf index set
Definition: grid.hh:640
const LocalIdSet & localIdSet() const
return const reference to the grids local id set
Definition: grid.hh:626
LevelGridView levelGridView(int level) const
View for a grid level for All_Partition.
Definition: grid.hh:598
bool loadBalance(DataHandle &data)
Re-balances the load each process has to handle for a parallel grid and moves the data.
Definition: grid.hh:760
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:746
bool adapt()
Refine all positive marked leaf entities, coarsen all negative marked entities if possible.
Definition: grid.hh:713
int size(int codim) const
Return number of leaf entities of a given codim in this process.
Definition: grid.hh:559
ct ctype
Define type used for coordinates in grid module.
Definition: grid.hh:532
void globalRefine(int refCount)
Refine the grid refCount times using the default refinement rule.
Definition: grid.hh:659
const Communication & comm() const
return const reference to a communication object. The return type is a model of Dune::Communication.
Definition: grid.hh:736
int size(GeometryType type) const
Return number of leaf entities per geometry type in this process.
Definition: grid.hh:573
Id Set Interface.
Definition: indexidset.hh:452
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:819
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:802
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:86
Provides base classes for index and id sets.
Dune namespace.
Definition: alignedallocator.hh:13
Std::detected_or_t< decltype(detail::warningIfNotDefined< Std::detected_t< Fallback, Args... > >(std::declval< const Std::detected_t< TargetType, Args... > * >())), TargetType, Args... > detected_or_fallback_t
This type will be either TargetType<Args...> if it exists, or the Fallback<Args......
Definition: type_traits.hh:300
Communication< T > CollectiveCommunication
Definition: communication.hh:541
Static tag representing a codimension.
Definition: dimension.hh:24
Traits associated with a specific grid partition type.
Definition: grid.hh:1039
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:1041
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:1043
Traits associated with a specific codim.
Definition: grid.hh:1017
Partition< All_Partition >::LevelIterator LevelIterator
The type of the entity pointer for entities of this codim.
Definition: grid.hh:1050
Dune::EntitySeed< const GridImp, EntitySeedImp< cd, const GridImp > > EntitySeed
The type of the entity seed of this codim.
Definition: grid.hh:1031
Dune::Geometry< dim-cd, dim, const GridImp, LocalGeometryImp > LocalGeometry
The type of the local geometry associated with the entity.
Definition: grid.hh:1025
Dune::Geometry< dim-cd, dimw, const GridImp, GeometryImp > Geometry
IMPORTANT: Codim<codim>::Geometry == Geometry<dim-codim,dimw>
Definition: grid.hh:1023
Dune::Entity< cd, dim, const GridImp, EntityImp > Entity
The type of the entity.
Definition: grid.hh:1028
Partition< All_Partition >::LeafIterator LeafIterator
The type of the iterator over all leaf entities of this codim.
Definition: grid.hh:1047
A traits struct that collects all associated types of one grid model.
Definition: grid.hh:995
CCType Communication
The type of the communication.
Definition: grid.hh:1071
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:1004
IdSet< const GridImp, LocalIdSetImp, LIDType > LocalIdSet
The type of the local id set.
Definition: grid.hh:1068
Dune::GridView< LeafGridViewTraits< const GridImp > > LeafGridView
type of view for leaf grid
Definition: grid.hh:1057
IdSet< const GridImp, GlobalIdSetImp, GIDType > GlobalIdSet
The type of the global id set.
Definition: grid.hh:1066
Dune::EntityIterator< 0, const GridImp, HierarchicIteratorImp< const GridImp > > HierarchicIterator
The type of the hierarchic iterator.
Definition: grid.hh:1009
IndexSet< const GridImp, LeafIndexSetImp > LeafIndexSet
The type of the leaf index set.
Definition: grid.hh:1064
Communication CollectiveCommunication
Definition: grid.hh:1075
Dune::Intersection< const GridImp, LeafIntersectionImp< const GridImp > > LeafIntersection
The type of the intersection at the leafs of the grid.
Definition: grid.hh:1000
IndexSet< const GridImp, LevelIndexSetImp > LevelIndexSet
The type of the level index set.
Definition: grid.hh:1062
Dune::GridView< LevelGridViewTraits< const GridImp > > LevelGridView
type of view for level grid
Definition: grid.hh:1059
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:1006
Dune::Intersection< const GridImp, LevelIntersectionImp< const GridImp > > LevelIntersection
The type of the intersection at the levels of the grid.
Definition: grid.hh:1002
GridImp Grid
The type that implements the grid.
Definition: grid.hh:997
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:1107
MakeableInterfaceObject(const ImplementationType &realImp)
create interface object by calling the contructor of the base class
Definition: grid.hh:1110
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  |  generated with Hugo v0.111.3 (Nov 21, 23:30, 2024)