dune-grid  2.3beta2
geometrygrid/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_GEOGRID_GRIDFAMILY_HH
4 #define DUNE_GEOGRID_GRIDFAMILY_HH
5 
6 #include <dune/common/static_assert.hh>
7 
21 
22 namespace Dune
23 {
24 
28  namespace GeoGrid
29  {
30 
31  // ExportParams
32  // ------------
33 
34  template< class HG, class CF >
36  {
37  static const bool isCoordFunction = isCoordFunctionInterface< typename CF::Interface >::value;
38  dune_static_assert( isCoordFunction, "Invalid CoordFunction." );
39 
40  public:
41  typedef HG HostGrid;
42  typedef CF CoordFunction;
43  };
44 
45 
46 
47  // GridFamily
48  // ----------
49 
50  template< class HG, class CF, class Allocator >
51  struct GridFamily
52  {
53  struct Traits
54  {
56 
57  typedef HG HostGrid;
58  typedef CF CoordFunction;
59 
60  typedef typename HostGrid::ctype ctype;
61 
62  static const int dimension = HostGrid::dimension;
63  static const int dimensionworld = CoordFunction::dimRange;
64 
67 
74 
77 
78  template< int codim >
79  struct Codim
80  {
83  typedef typename HostGrid::template Codim< codim >::LocalGeometry LocalGeometry;
84 
85  typedef GeoGrid::EntityPointerTraits< codim, const Grid > EntityPointerTraits;
86  typedef GeoGrid::EntityPointer< EntityPointerTraits > EntityPointerImpl;
88  typedef typename EntityPointerTraits::Entity Entity;
89 
91 
92  template< PartitionIteratorType pitype >
93  struct Partition
94  {
97 
100  };
101 
104  };
105 
108 
113 
114  typedef typename HostGrid::Traits::CollectiveCommunication CollectiveCommunication;
115 
116  template< PartitionIteratorType pitype >
117  struct Partition
118  {
123  };
124  };
125  };
126 
127  } // namespace GeoGrid
128 
129 } // namespace Dune
130 
131 #endif // #ifndef DUNE_GEOGRID_GRIDFAMILY_HH