Dune Core Modules (2.6.0)

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