dune-fem  2.6-git
space/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, template< class > 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, template< class > 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 
94 
95  public:
97  using BaseType::gridPart;
101 
102  // default communication interface
103  static const InterfaceType defaultInterface = InteriorBorder_All_Interface;
104  // default communication direction
105  static const CommunicationDirection defaultDirection = ForwardCommunication;
106 
114  const InterfaceType commInterface = defaultInterface,
115  const CommunicationDirection commDirection = defaultDirection )
116  : BaseType( gridPart, commInterface, commDirection )
117  {}
118 
119  // copy constructor needed for p-adaption
121  : BaseType( other )
122  {}
123 
125  inline bool continuous (const IntersectionType &intersection) const
126  {
127  return false;
128  }
129 
131  inline const CompiledLocalKeyType &lagrangePointSet( const GeometryType &type, const int order = BaseType::polynomialOrder ) const
132  {
133  return compiledLocalKey( type, order );
134  }
135 
137  {
138  return InterpolationType( basisFunctionSet( entity ) );
139  }
140 
141  };
142 
143  } // namespace Fem
144 
145 } // Dune namespace
146 
147 #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 ::GridPartType GridPartType
type of underlying grid part
Definition: discretefunctionspace.hh:210
GridPartType ::template Codim< Traits::codimension >::EntityType EntityType
type of entity of codimension 0
Definition: discretefunctionspace.hh:223
GridPartType ::IntersectionType IntersectionType
type of the intersections
Definition: discretefunctionspace.hh:225
GridPartType & gridPart() const
Definition: discretefunctionspace.hh:734
Traits Traits
Definition: discretefunctionspace.hh:619
Definition: discontinuousgalerkin/interpolation.hh:135
adaptive DG discrete function space
Definition: space/padaptivespace/discontinuousgalerkin.hh:76
ThisType PAdaptiveDGSpaceType
Definition: space/padaptivespace/discontinuousgalerkin.hh:81
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition: padaptivespace/generic.hh:138
CompiledLocalKeyType LagrangePointSetType
Definition: space/padaptivespace/discontinuousgalerkin.hh:91
BaseType::GridPartType GridPartType
Definition: space/padaptivespace/discontinuousgalerkin.hh:85
DiscontinuousGalerkinLocalL2Projection< GridPartType, BasisFunctionSetType > InterpolationType
Definition: space/padaptivespace/discontinuousgalerkin.hh:93
InterpolationType interpolation(const EntityType &entity) const
Definition: space/padaptivespace/discontinuousgalerkin.hh:136
BaseType::EntityType EntityType
Definition: space/padaptivespace/discontinuousgalerkin.hh:87
BaseType::IntersectionType IntersectionType
Definition: space/padaptivespace/discontinuousgalerkin.hh:86
static const CommunicationDirection defaultDirection
Definition: space/padaptivespace/discontinuousgalerkin.hh:105
BaseType::CompiledLocalKeyType CompiledLocalKeyType
Definition: space/padaptivespace/discontinuousgalerkin.hh:90
const CompiledLocalKeyType & lagrangePointSet(const GeometryType &type, const int order=BaseType::polynomialOrder) const
Please doc me.
Definition: space/padaptivespace/discontinuousgalerkin.hh:131
BaseType::BasisFunctionSetType BasisFunctionSetType
Definition: space/padaptivespace/discontinuousgalerkin.hh:89
BaseType::Traits Traits
Definition: space/padaptivespace/discontinuousgalerkin.hh:83
static const InterfaceType defaultInterface
Definition: space/padaptivespace/discontinuousgalerkin.hh:103
PAdaptiveDGSpace(const PAdaptiveDGSpace &other)
Definition: space/padaptivespace/discontinuousgalerkin.hh:120
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:220
bool continuous(const IntersectionType &intersection) const
returns true if the space contains only globally continuous functions
Definition: space/padaptivespace/discontinuousgalerkin.hh:125
PAdaptiveDGSpace(GridPartType &gridPart, const InterfaceType commInterface=defaultInterface, const CommunicationDirection commDirection=defaultDirection)
constructor
Definition: space/padaptivespace/discontinuousgalerkin.hh:113
Definition: space/padaptivespace/discontinuousgalerkin.hh:45
PAdaptiveDGMapper< GridPart, polOrder > BlockMapperType
Definition: space/padaptivespace/discontinuousgalerkin.hh:51
static const bool continuousSpace
Definition: space/padaptivespace/discontinuousgalerkin.hh:48
Hybrid::IndexRange< int, FunctionSpace::dimRange > LocalBlockIndices
Definition: space/padaptivespace/discontinuousgalerkin.hh:49
PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > DiscreteFunctionSpaceType
Definition: space/padaptivespace/discontinuousgalerkin.hh:46
Definition: space/padaptivespace/discontinuousgalerkin.hh:56
DefaultCommunicationHandler< DiscreteFunction, Operation > Type
Definition: space/padaptivespace/discontinuousgalerkin.hh:57
Operation OperationType
Definition: space/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:205
BasisFunctionSetType basisFunctionSet(const EntityType &entity) const
get basis function set for given entity
Definition: padaptivespace/generic.hh:138
bool continuous() const
returns true if the space contains only globally continuous functions
Definition: padaptivespace/generic.hh:144
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:159
DFSpaceIdentifier type() const
return type identifier of discrete function space
Definition: padaptivespace/generic.hh:135
Traits::CompiledLocalKeyType CompiledLocalKeyType
Definition: padaptivespace/generic.hh:88
IteratorType::Entity EntityType
Definition: padaptivespace/generic.hh:57
Definition: space/padaptivespace/lagrange.hh:44
Definition: mapper.hh:119
Definition: selectcaching.hh:17