dune-fem  2.4.1-rc
levelgridpart.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_GRIDPART_LEVELGRIDPART_HH
2 #define DUNE_FEM_GRIDPART_LEVELGRIDPART_HH
3 
4 #include <dune/grid/common/capabilities.hh>
5 
8 
9 namespace Dune
10 {
11 
12  namespace Fem
13  {
14 
15  // LevelGridPart
16  // -------------
17 
18  template< class Grid >
20  : public GridView2GridPart< typename Grid::LevelGridView, LevelGridPart< Grid > >
21  {
23 
24  public:
26  typedef typename BaseType::GridType GridType;
27 
32  LevelGridPart ( GridType &grid, int level )
33  : BaseType( grid.levelGridView( level ) ),
34  grid_( grid ),
35  level_( level )
36  {}
37 
44  using BaseType::grid;
45 
47  GridType &grid () { return grid_; }
48 
50  int level () const { return level_; }
51 
54  private:
55  GridType &grid_;
56  int level_;
57  };
58 
59 
60 
61  namespace GridPartCapabilities
62  {
63 
64  template< class Grid >
65  struct hasGrid< LevelGridPart< Grid > >
66  {
67  static const bool v = true;
68  };
69 
70  template< class Grid >
72  : public Dune::Capabilities::hasSingleGeometryType< Grid >
73  {};
74 
75  template< class Grid >
76  struct isCartesian< LevelGridPart< Grid > >
77  : public Dune::Capabilities::isCartesian< Grid >
78  {};
79 
80  template< class Grid, int codim >
81  struct hasEntity< LevelGridPart< Grid >, codim >
82  : public Dune::Capabilities::hasEntity< Grid, codim >
83  {};
84 
85  template< class Grid >
86  struct isParallel< LevelGridPart< Grid > >
87  : public Dune::Capabilities::isParallel< Grid >
88  {};
89 
90  template< class Grid, int codim >
91  struct canCommunicate< LevelGridPart< Grid >, codim >
92  : public Dune::Capabilities::canCommunicate< Grid, codim >
93  {};
94 
95  template< class Grid >
96  struct isConforming< LevelGridPart< Grid > >
97  {
98  static const bool v = Dune::Capabilities::isLevelwiseConforming< Grid >::v;
99  };
100 
101  } // namespace GridPartCapabilities
102 
103  } // namespace Fem
104 
105 } // namespace Dune
106 
107 #endif // #ifndef DUNE_FEM_GRIDPART_LEVELGRIDPART_HH
const GridType & grid() const
Returns const reference to the underlying grid.
Definition: gridview2gridpart.hh:144
Definition: levelgridpart.hh:19
LevelGridPart(GridType &grid, int level)
Definition: levelgridpart.hh:32
specialize with &#39;true&#39; if implementation supports parallelism (default=false)
Definition: gridpart/common/capabilities.hh:59
GridType & grid()
Returns const reference to the underlying grid.
Definition: levelgridpart.hh:47
specialize with &#39;true&#39; for all codims that a grid implements entities for (default=false) ...
Definition: gridpart/common/capabilities.hh:49
specialize with &#39;true&#39; if implementation guarantees conforming level grids. (default=false) ...
Definition: gridpart/common/capabilities.hh:79
specialize with &#39;false&#39; if grid part has no underlying dune grid (default=true)
Definition: gridpart/common/capabilities.hh:17
BaseType::GridType GridType
type of Grid implementation
Definition: gridview2gridpart.hh:89
specialize with &#39;true&#39; for all codims that a grid can communicate data on (default=false) ...
Definition: gridpart/common/capabilities.hh:69
Definition: coordinate.hh:4
specialize with &#39;true&#39; for if the codimension 0 entity of the grid part has only one possible geometr...
Definition: gridpart/common/capabilities.hh:28
specialize with &#39;true&#39; if the grid part is cartesian (default=false)
Definition: gridpart/common/capabilities.hh:39
int level() const
Level of the grid part.
Definition: levelgridpart.hh:50
BaseType::GridType GridType
type of Grid implementation
Definition: levelgridpart.hh:26
Definition: gridview2gridpart.hh:25