dune-fem  2.8-git
padaptivespace/discontinuousgalerkin.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_SPACE_PADAPTIVE_DISCONTINUOUSGALERKIN_HH
2 #define DUNE_FEM_SPACE_PADAPTIVE_DISCONTINUOUSGALERKIN_HH
3 
7 
8 #include "adaptmanager.hh"
9 #include "declaration.hh"
10 #include "generic.hh"
11 #include "lagrange.hh"
12 #include "mapper.hh"
13 #include "restrictprolong.hh"
14 
16 
17 namespace Dune
18 {
19 
20  namespace Fem
21  {
22 
39  // PAdaptiveDGSpaceTraits
40  // ----------------------
41 
42  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
44  : public PAdaptiveLagrangeSpaceTraits< FunctionSpace, GridPart, polOrder, Storage >
45  {
47 
48  static const bool continuousSpace = false ;
50 
52 
53  template< class DiscreteFunction,
54  class Operation = DFCommunicationOperation :: Copy >
56  {
58  typedef Operation OperationType;
59  };
60  };
61 
62 
63 
64  // PAdaptiveDGSpace
65  // ----------------
66 
73  template< class FunctionSpace, class GridPart, int polOrder, class Storage = CachingStorage >
75  : public GenericDiscreteFunctionSpace< PAdaptiveDGSpaceTraits< FunctionSpace, GridPart, polOrder, Storage > >
76  {
79 
80  public:
82 
83  typedef typename BaseType::Traits Traits;
84 
87  typedef typename BaseType::EntityType EntityType;
88 
92 
95 
96  public:
98  using BaseType::gridPart;
102 
103  // default communication interface
104  static const InterfaceType defaultInterface = InteriorBorder_All_Interface;
105  // default communication direction
106  static const CommunicationDirection defaultDirection = ForwardCommunication;
107 
116  const int order,
117  const InterfaceType commInterface = defaultInterface,
118  const CommunicationDirection commDirection = defaultDirection )
119  : BaseType( gridPart, order, commInterface, commDirection )
120  {}
121 
129  const InterfaceType commInterface = defaultInterface,
130  const CommunicationDirection commDirection = defaultDirection )
131  : BaseType( gridPart, polOrder, commInterface, commDirection )
132  {}
133 
134  // copy constructor needed for p-adaption
136  : BaseType( other )
137  {}
138 
140  inline bool continuous (const IntersectionType &intersection) const
141  {
142  return false;
143  }
144 
146  inline const CompiledLocalKeyType &lagrangePointSet( const GeometryType &type, const int order = BaseType::polynomialOrder ) const
147  {
148  return compiledLocalKey( type, order );
149  }
150 
152  {
153  return InterpolationType( *this );
154  }
155 
156  [[deprecated]]
158  {
159  return localInterpolation( entity );
160  }
161 
163  {
164  return InterpolationImplType( basisFunctionSet( entity ) );
165  }
166 
167  };
168 
169  } // namespace Fem
170 
171 } // Dune namespace
172 
173 #endif // #ifndef DUNE_FEM_SPACE_PADAPTIVE_DISCONTINUOUSGALERKIN_HH
Definition: bindguard.hh:11
Definition: hybrid.hh:86
Default communication handler for discrete functions.
Definition: defaultcommhandler.hh:29
Traits Traits
type of traits class
Definition: discretefunctionspace.hh:187
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:745
Definition: common/localinterpolation.hh:74
Definition: discontinuousgalerkin/interpolation.hh:153
adaptive DG discrete function space
Definition: padaptivespace/discontinuousgalerkin.hh:76
ThisType PAdaptiveDGSpaceType
Definition: padaptivespace/discontinuousgalerkin.hh:81
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition: padaptivespace/generic.hh:141
CompiledLocalKeyType LagrangePointSetType
Definition: padaptivespace/discontinuousgalerkin.hh:91
DiscontinuousGalerkinLocalL2Projection< GridPartType, BasisFunctionSetType > InterpolationImplType
Definition: padaptivespace/discontinuousgalerkin.hh:93
BaseType::GridPartType GridPartType
Definition: padaptivespace/discontinuousgalerkin.hh:85
PAdaptiveDGSpace(GridPartType &gridPart, const int order, const InterfaceType commInterface=defaultInterface, const CommunicationDirection commDirection=defaultDirection)
constructor
Definition: padaptivespace/discontinuousgalerkin.hh:115
BaseType::EntityType EntityType
Definition: padaptivespace/discontinuousgalerkin.hh:87
BaseType::IntersectionType IntersectionType
Definition: padaptivespace/discontinuousgalerkin.hh:86
static const CommunicationDirection defaultDirection
Definition: padaptivespace/discontinuousgalerkin.hh:106
LocalInterpolationWrapper< ThisType > InterpolationType
Definition: padaptivespace/discontinuousgalerkin.hh:94
BaseType::CompiledLocalKeyType CompiledLocalKeyType
Definition: padaptivespace/discontinuousgalerkin.hh:90
const CompiledLocalKeyType & lagrangePointSet(const GeometryType &type, const int order=BaseType::polynomialOrder) const
Please doc me.
Definition: padaptivespace/discontinuousgalerkin.hh:146
BaseType::BasisFunctionSetType BasisFunctionSetType
Definition: padaptivespace/discontinuousgalerkin.hh:89
InterpolationImplType interpolation(const EntityType &entity) const
Definition: padaptivespace/discontinuousgalerkin.hh:157
BaseType::Traits Traits
Definition: padaptivespace/discontinuousgalerkin.hh:83
InterpolationType interpolation() const
Definition: padaptivespace/discontinuousgalerkin.hh:151
static const InterfaceType defaultInterface
Definition: padaptivespace/discontinuousgalerkin.hh:104
InterpolationImplType localInterpolation(const EntityType &entity) const
Definition: padaptivespace/discontinuousgalerkin.hh:162
PAdaptiveDGSpace(const PAdaptiveDGSpace &other)
Definition: padaptivespace/discontinuousgalerkin.hh:135
const CompiledLocalKeyType & compiledLocalKey(const GeometryType type, const int order=polynomialOrder) const
provide access to the compiled local keys for a geometry type and polynomial order
Definition: padaptivespace/generic.hh:223
bool continuous(const IntersectionType &intersection) const
returns true if the space contains only globally continuous functions
Definition: padaptivespace/discontinuousgalerkin.hh:140
PAdaptiveDGSpace(GridPartType &gridPart, const InterfaceType commInterface=defaultInterface, const CommunicationDirection commDirection=defaultDirection)
constructor
Definition: padaptivespace/discontinuousgalerkin.hh:128
Definition: padaptivespace/discontinuousgalerkin.hh:45
PAdaptiveDGMapper< GridPart, polOrder > BlockMapperType
Definition: padaptivespace/discontinuousgalerkin.hh:51
static const bool continuousSpace
Definition: padaptivespace/discontinuousgalerkin.hh:48
Hybrid::IndexRange< int, FunctionSpace::dimRange > LocalBlockIndices
Definition: padaptivespace/discontinuousgalerkin.hh:49
PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > DiscreteFunctionSpaceType
Definition: padaptivespace/discontinuousgalerkin.hh:46
Definition: padaptivespace/discontinuousgalerkin.hh:56
DefaultCommunicationHandler< DiscreteFunction, Operation > Type
Definition: padaptivespace/discontinuousgalerkin.hh:57
Operation OperationType
Definition: padaptivespace/discontinuousgalerkin.hh:58
Please doc me.
Definition: padaptivespace/generic.hh:43
static const int polynomialOrder
maximal available polynomial order
Definition: padaptivespace/generic.hh:66
const CompiledLocalKeyType & compiledLocalKey(const EntityType &entity) const
provide access to the compiled local keys for an entity
Definition: padaptivespace/generic.hh:208
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition: padaptivespace/generic.hh:141
bool continuous() const
returns true if the space contains only globally continuous functions
Definition: padaptivespace/generic.hh:147
BaseType::GridPartType GridPartType
Definition: padaptivespace/generic.hh:53
BaseType::IntersectionType IntersectionType
Definition: padaptivespace/generic.hh:58
BaseType::BasisFunctionSetType BasisFunctionSetType
Definition: padaptivespace/generic.hh:61
BlockMapperType & blockMapper() const
get a reference to the block mapper
Definition: padaptivespace/generic.hh:162
DFSpaceIdentifier type() const
return type identifier of discrete function space
Definition: padaptivespace/generic.hh:138
Traits::CompiledLocalKeyType CompiledLocalKeyType
Definition: padaptivespace/generic.hh:88
IteratorType::Entity EntityType
Definition: padaptivespace/generic.hh:57
Definition: padaptivespace/lagrange.hh:44
Definition: mapper.hh:121