Dune Core Modules (2.4.2)

gridfamily.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH
4 #define DUNE_ALBERTAGRID_GRIDFAMILTY_HH
5 
12 
13 #include <dune/grid/common/entity.hh>
16 #include <dune/grid/common/intersection.hh>
17 #include <dune/grid/common/intersectioniterator.hh>
18 #include <dune/grid/common/entityiterator.hh>
19 
20 #include <dune/grid/albertagrid/misc.hh>
21 #include <dune/grid/albertagrid/gridview.hh>
23 
24 #if HAVE_ALBERTA
25 
26 namespace Dune
27 {
28 
29  // External Forward Declarations
30  // -----------------------------
31 
32  template< int dim, int dimworld >
33  class AlbertaGrid;
34 
35  template< int codim, int dim, class GridImp >
36  class AlbertaGridEntity;
37 
38  template< int codim, class GridImp >
39  class AlbertaGridEntityPointer;
40 
41  template< int codim, class Grid >
42  class AlbertaGridEntitySeed;
43 
44  template< int mydim, int cdim, class GridImp >
45  class AlbertaGridGeometry;
46 
47  template< int mydim, int cdim, class GridImp >
48  class AlbertaGridGlobalGeometry;
49 
50  template< int dim, int dimworld >
51  class AlbertaGridHierarchicIndexSet;
52 
53  template< class GridImp >
54  class AlbertaGridHierarchicIterator;
55 
56  template< class GridImp >
57  class AlbertaGridLeafIntersection;
58 
59  template< class GridImp >
60  class AlbertaGridLeafIntersectionIterator;
61 
62  template< int dim, int dimworld >
63  class AlbertaGridIdSet;
64 
65  template< int dim, int dimworld >
66  class AlbertaGridIndexSet;
67 
68  template< int codim, PartitionIteratorType pitype, class GridImp >
69  class AlbertaGridLeafIterator;
70 
71  template< int codim, PartitionIteratorType pitype, class GridImp >
72  class AlbertaGridLevelIterator;
73 
74 
75 
76 
77  // AlbertaGridFamily
78  // -----------------
79 
80  template <int dim, int dimworld>
81  struct AlbertaGridFamily
82  {
83  typedef AlbertaGrid< dim, dimworld > GridImp;
84 
85  typedef Alberta::Real ctype;
86 
87  static const int dimension = dim;
88  static const int dimensionworld = dimworld;
89 
90  typedef AlbertaGridIndexSet< dim, dimworld > LevelIndexSetImp;
91  typedef AlbertaGridIndexSet< dim, dimworld > LeafIndexSetImp;
92 
93  typedef AlbertaGridIdSet< dim, dimworld > IdSetImp;
94  typedef unsigned int IdType;
95 
96  struct Traits
97  {
98  typedef GridImp Grid;
99 
103  < const GridImp, AlbertaGridLeafIntersectionIterator< const GridImp >, AlbertaGridLeafIntersection< const GridImp > >
104  LeafIntersectionIterator;
106  < const GridImp, AlbertaGridLeafIntersectionIterator< const GridImp >, AlbertaGridLeafIntersection< const GridImp > >
107  LevelIntersectionIterator;
108 
110 
111  typedef IdType GlobalIdType;
112  typedef IdType LocalIdType;
113 
114  template< int cd >
115  struct Codim
116  {
117  typedef AlbertaGridGlobalGeometry< dim-cd, dimworld, const Grid > GeometryImpl;
118  typedef AlbertaGridGeometry< dim-cd, dim, const Grid > LocalGeometryImpl;
119  typedef Dune::Geometry< dim-cd, dimworld, const Grid, AlbertaGridGlobalGeometry > Geometry;
120  typedef Dune::Geometry< dim-cd, dim, const Grid, LocalGeometryReference > LocalGeometry;
121 
122  typedef AlbertaGridEntity< cd, dim, const GridImp > EntityImpl;
124 
125  typedef AlbertaGridEntityPointer< cd, const GridImp > EntityPointerImpl;
128 
129  template <PartitionIteratorType pitype>
130  struct Partition
131  {
134  };
135 
136  typedef typename Partition< All_Partition >::LevelIterator LevelIterator;
137  typedef typename Partition< All_Partition >::LeafIterator LeafIterator;
138  };
139 
140  template <PartitionIteratorType pitype>
141  struct Partition
142  {
145  };
146 
147  typedef IndexSet< GridImp, LevelIndexSetImp, int, std::array< GeometryType, 1 > > LevelIndexSet;
148  typedef IndexSet< GridImp, LeafIndexSetImp, int, std::array< GeometryType, 1 > > LeafIndexSet;
149  typedef AlbertaGridHierarchicIndexSet< dim, dimworld > HierarchicIndexSet;
150  typedef IdSet<GridImp,IdSetImp,IdType> GlobalIdSet;
151  typedef IdSet<GridImp,IdSetImp,IdType> LocalIdSet;
152 
153  typedef Dune::CollectiveCommunication< No_Comm > CollectiveCommunication;
154  };
155  };
156 
157 }
158 
159 #endif // #if HAVE_ALBERTA
160 
161 #endif // #ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH
interface class for an iterator over grid entities
Definition: entityiterator.hh:37
Wrapper class for pointers to entities.
Definition: entitypointer.hh:113
Store a reference to an entity with a minimal memory footprint.
Definition: entityseed.hh:24
Wrapper class for entities.
Definition: entity.hh:62
Wrapper class for geometries.
Definition: geometry.hh:66
Grid view abstract base class.
Definition: gridview.hh:59
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: intersectioniterator.hh:84
Intersection of a mesh entities of codimension 0 ("elements") with a "neighboring" element or with th...
Definition: intersection.hh:161
Implements an utility class that provides collective communication methods for sequential programs.
Wrapper and interface class for a static iterator (EntityPointer)
Wrapper and interface classes for element geometries.
Wrapper and interface classes for element geometries.
Dune namespace.
Definition: alignment.hh:10
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 16, 22:29, 2024)