1 #ifndef DUNE_ALU_PERSISTENTCONTAINER_HH
2 #define DUNE_ALU_PERSISTENTCONTAINER_HH
3 
4 #include <dune/grid/utility/persistentcontainer.hh>
5 #include <dune/grid/utility/persistentcontainervector.hh>
6 
7 #include <dune/alugrid/grid.hh>
8 
9 namespace Dune
10 {
11 
12   // ALUGridPersistentContainer
13   // --------------------------
14 
15   template< class G, class T >
16   class ALUGridPersistentContainer
17   : public PersistentContainerVector< G, typename G::HierarchicIndexSet, std::vector< T > >
18   {
19     typedef PersistentContainerVector< G, typename G::HierarchicIndexSet, std::vector< T > > Base;
20 
21   public:
22     typedef typename Base::Grid Grid;
23     typedef typename Base::Value Value;
24 
25     /** \brief \deprecated typedef of class Grid */
26     typedef typename Base::Grid GridType;
27 
ALUGridPersistentContainer(const Grid & grid,int codim,const Value & value=Value ())28     ALUGridPersistentContainer ( const Grid &grid, int codim, const Value &value = Value() )
29     : Base( grid.hierarchicIndexSet(), codim, value )
30     {}
31   };
32 
33 
34   // PersistentContainer for ALUGrid
35   // -------------------------------
36 
37   template< int dim, int dimworld, ALUGridElementType eltype, ALUGridRefinementType refinementtype, class Comm, class T >
38   class PersistentContainer< ALUGrid< dim, dimworld, eltype, refinementtype, Comm >, T >
39   : public ALUGridPersistentContainer< ALUGrid< dim, dimworld, eltype, refinementtype, Comm >, T >
40   {
41     typedef ALUGridPersistentContainer< ALUGrid< dim, dimworld, eltype, refinementtype, Comm >, T > Base;
42 
43   public:
44     typedef typename Base::Grid Grid;
45     typedef typename Base::Value Value;
46 
47     /** \brief \deprecated typedef of class Grid */
48     typedef typename Base::Grid GridType;
49 
PersistentContainer(const Grid & grid,int codim,const Value & value=Value ())50     PersistentContainer ( const Grid &grid, int codim, const Value &value = Value() )
51     : Base( grid, codim, value )
52     {}
53   };
54 
55   template< int dim, int dimworld, ALU3dGridElementType elType, class Comm, class T >
56   class PersistentContainer< ALU3dGrid< dim, dimworld, elType, Comm >, T >
57   : public ALUGridPersistentContainer< ALU3dGrid< dim, dimworld, elType, Comm >, T >
58   {
59     typedef ALUGridPersistentContainer< ALU3dGrid< dim, dimworld, elType, Comm >, T > Base;
60 
61   public:
62     typedef typename Base::Grid Grid;
63     typedef typename Base::Value Value;
64 
65     /** \brief \deprecated typedef of class Grid */
66     typedef typename Base::Grid GridType;
67 
PersistentContainer(const Grid & grid,int codim,const Value & value=Value ())68     PersistentContainer ( const Grid &grid, int codim, const Value &value = Value() )
69     : Base( grid, codim, value )
70     {}
71   };
72 
73 } // namespace Dune
74 
75 #endif // #ifndef DUNE_ALU_PERSISTENTCONTAINER_HH
76