1#ifndef DUNE_FEM_SPACE_PADAPTIVE_MAPPER_HH
2#define DUNE_FEM_SPACE_PADAPTIVE_MAPPER_HH
9#include <dune/grid/utility/persistentcontainer.hh>
11#include <dune/fem/misc/capabilities.hh>
12#include <dune/fem/misc/metaprogramming.hh>
13#include <dune/fem/space/common/basesetlocalkeystorage.hh>
14#include <dune/fem/space/common/dofmanager.hh>
15#include <dune/fem/space/lagrange/lagrangepoints.hh>
16#include <dune/fem/space/mapper/codimensionmapper.hh>
17#include <dune/fem/space/mapper/dofmapper.hh>
18#include <dune/fem/space/mapper/genericadaptivedofmapper.hh>
29 template<
class Gr
idPart,
int polOrder >
30 class PAdaptiveLagrangeMapper;
37 template<
class Gr
idPart,
int polOrder >
38 struct PAdaptiveLagrangeMapperTraits
40 typedef GridPart GridPartType;
42 static const int polynomialOrder = polOrder;
44 static const bool discontinuousMapper =
false;
46 typedef typename GridPartType::template Codim< 0 >::EntityType ElementType;
47 typedef PAdaptiveLagrangeMapper< GridPartType, polynomialOrder > DofMapperType;
50 typedef LagrangePointSet< GridPartType, polynomialOrder > CompiledLocalKeyType;
51 typedef BaseSetLocalKeyStorage< CompiledLocalKeyType > BaseSetLocalKeyStorageType;
53 typedef std::vector< BaseSetLocalKeyStorageType > CompiledLocalKeyVectorType ;
55 typedef int SizeType ;
56 typedef int GlobalKeyType ;
64 template<
class Gr
idPart,
int polOrder >
65 class PAdaptiveLagrangeMapper
66 :
public GenericAdaptiveDofMapper< PAdaptiveLagrangeMapperTraits< GridPart, polOrder > >
70 typedef PAdaptiveLagrangeMapperTraits< GridPart, polOrder > Traits;
73 typedef PAdaptiveLagrangeMapper< GridPart, polOrder > ThisType;
74 typedef GenericAdaptiveDofMapper< Traits > BaseType;
78 typedef typename Traits::GridPartType GridPartType;
81 typedef typename Traits :: CompiledLocalKeyVectorType CompiledLocalKeyVectorType;
84 PAdaptiveLagrangeMapper (
const GridPartType &gridPart,
86 CompiledLocalKeyVectorType &compiledLocalKeys )
87 : BaseType( gridPart, order, compiledLocalKeys )
91 PAdaptiveLagrangeMapper (
const ThisType& other,
93 CompiledLocalKeyVectorType &compiledLocalKeys )
94 : BaseType( other, order, compiledLocalKeys )
98 template<
class Gr
idPart,
int polOrder >
99 class PAdaptiveDGMapper;
101 template<
class Gr
idPart,
int polOrder >
102 struct PAdaptiveDGMapperTraits
103 :
public PAdaptiveLagrangeMapperTraits< GridPart, polOrder >
106 static const bool discontinuousMapper = true ;
108 typedef typename GridPart::template Codim< 0 >::EntityType ElementType;
109 typedef PAdaptiveDGMapper< GridPart, polOrder > DofMapperType;
110 typedef int SizeType ;
111 typedef int GlobalKeyType ;
118 template<
class Gr
idPart,
int polOrder >
119 class PAdaptiveDGMapper
120 :
public GenericAdaptiveDofMapper< PAdaptiveDGMapperTraits< GridPart, polOrder > >
124 typedef PAdaptiveDGMapperTraits< GridPart, polOrder > Traits;
127 typedef PAdaptiveDGMapper< GridPart, polOrder > ThisType;
128 typedef GenericAdaptiveDofMapper< Traits > BaseType;
132 typedef typename Traits::GridPartType GridPartType;
135 typedef typename Traits :: CompiledLocalKeyVectorType CompiledLocalKeyVectorType;
138 PAdaptiveDGMapper (
const GridPartType &gridPart,
140 CompiledLocalKeyVectorType &compiledLocalKeys )
141 : BaseType( gridPart, order, compiledLocalKeys )
145 PAdaptiveDGMapper (
const ThisType& other,
147 CompiledLocalKeyVectorType &compiledLocalKeys )
148 : BaseType( other, order, compiledLocalKeys )
152 namespace Capabilities
157 template<
class Gr
idPart,
int polOrder >
158 struct isConsecutiveIndexSet< PAdaptiveDGMapper< GridPart, polOrder > >
160 static const bool v =
true;
163 template<
class Gr
idPart,
int polOrder >
164 struct isConsecutiveIndexSet< PAdaptiveLagrangeMapper< GridPart, polOrder > >
166 static const bool v =
true;
169 template<
class Gr
idPart,
int polOrder >
170 struct isAdaptiveDofMapper< PAdaptiveLagrangeMapper< GridPart, polOrder > >
172 static const bool v =
true;
175 template<
class Gr
idPart,
int polOrder >
176 struct isAdaptiveDofMapper< PAdaptiveDGMapper< GridPart, polOrder > >
178 static const bool v =
true;
A few common exception classes.
Dune namespace.
Definition: alignedallocator.hh:13
A unique label for each type of element that can occur in a grid.
Helper classes to provide indices for geometrytypes for use in a vector.