dune-fem  2.8-git
hierarchiclegendre.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_HLEGENDRE_HH
2 #define DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_HLEGENDRE_HH
3 
4 #include <cassert>
5 
6 #include <dune/common/power.hh>
7 
8 #include <dune/geometry/type.hh>
9 
10 #include <dune/grid/common/gridenums.hh>
11 
20 
21 #include "legendre.hh"
22 
23 namespace Dune
24 {
25 
26  namespace Fem
27  {
28 
29  // HierarchicalLegendreDiscontinuousGalerkinSpace
30  // ----------------------------------------------
31 
32  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
34  : public LegendreDiscontinuousGalerkinSpaceBase< FunctionSpace, GridPart, polOrder, Storage, true >
35  {
36  // hierarchicalOrdering = true
39 
40  public:
42  typedef typename BaseType::EntityType EntityType;
45 
47  const InterfaceType commInterface = InteriorBorder_All_Interface,
48  const CommunicationDirection commDirection = ForwardCommunication )
49  : BaseType( gridPart, commInterface, commDirection )
50  {}
51 
53  {
54  return InterpolationType( *this );
55  }
56 
57  [[deprecated("Use LocalInterpolation( space ) instead!")]]
58  InterpolationType interpolation ( const EntityType &entity ) const
59  {
60  return interpolation();
61  }
62 
64  {
65  return interpolation();
66  }
67 
68 
69  };
70 
71  namespace Capabilities
72  {
73 
74  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
76  {
77  static const bool v = true;
78  };
79 
80  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
82  {
83  static const bool v = true;
84  static const int order = polOrder;
85  };
86 
87  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
89  {
90  static const bool v = false;
91  };
92 
93  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
95  {
96  static const bool v = true;
97  };
98 
99  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
101  {
102  static const bool v = true;
103  };
104 
105  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
107  {
108  static const bool v = false;
109  };
110 
111  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
113  {
114  static const bool v = true;
115  };
116 
117  template< class FunctionSpace, class GridPart, int polOrder, class Storage >
119  {
120  static const bool v = true;
121  };
122 
123  } // namespace Capabilities
124 
125  } // namespace Fem
126 
127 } // namespace Dune
128 
129 #endif // #ifndef DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_HLEGENDRE_HH
Definition: bindguard.hh:11
specialize with true if polynomial order does not depend on the grid (part) entity
Definition: space/common/capabilities.hh:24
static const bool v
Definition: space/common/capabilities.hh:25
specialize with true if polynomial order fixed and compile time static
Definition: space/common/capabilities.hh:37
static const bool v
Definition: space/common/capabilities.hh:38
static const int order
Definition: space/common/capabilities.hh:39
specialize with true if space is always continuous
Definition: space/common/capabilities.hh:50
static const bool v
Definition: space/common/capabilities.hh:51
specialize with true if the space is localized, * i.e., the basis function set is based on a shape fu...
Definition: space/common/capabilities.hh:68
static const bool v
Definition: space/common/capabilities.hh:69
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition: space/common/capabilities.hh:81
static const bool v
Definition: space/common/capabilities.hh:82
specialize with true if the space implementation is thread safe
Definition: space/common/capabilities.hh:94
static const bool v
Definition: space/common/capabilities.hh:95
specialize with true if the space implementation is thread safe, while it is not modified
Definition: space/common/capabilities.hh:108
static const bool v
Definition: space/common/capabilities.hh:109
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition: space/common/capabilities.hh:120
static const bool v
Definition: space/common/capabilities.hh:121
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 & gridPart() const
Definition: discretefunctionspace.hh:745
A vector valued function space.
Definition: functionspace.hh:60
BaseType::GridPartType GridPartType
Definition: hierarchiclegendre.hh:41
InterpolationType interpolation(const EntityType &entity) const
Definition: hierarchiclegendre.hh:58
DiscontinuousGalerkinLocalInterpolation< ThisType > InterpolationType
Definition: hierarchiclegendre.hh:43
InterpolationType interpolation() const
Definition: hierarchiclegendre.hh:52
HierarchicLegendreDiscontinuousGalerkinSpace(GridPartType &gridPart, const InterfaceType commInterface=InteriorBorder_All_Interface, const CommunicationDirection commDirection=ForwardCommunication)
Definition: hierarchiclegendre.hh:46
InterpolationType localInterpolation() const
Definition: hierarchiclegendre.hh:63
BaseType::EntityType EntityType
Definition: hierarchiclegendre.hh:42
InterpolationType InterpolationImplType
Definition: hierarchiclegendre.hh:44
Definition: discontinuousgalerkin/legendre.hh:104
BaseType::EntityType EntityType
Definition: discontinuousgalerkin/legendre.hh:114
BaseType::GridPartType GridPartType
Definition: discontinuousgalerkin/legendre.hh:113
Definition: discontinuousgalerkin/localinterpolation.hh:30