dune-localfunctions  2.4
refinedp0.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_REFINED_P0_LOCALFINITEELEMENT_HH
4 #define DUNE_REFINED_P0_LOCALFINITEELEMENT_HH
5 
6 #include <dune/geometry/type.hh>
7 
10 
14 
18 namespace Dune
19 {
20 
23  template<class D, class R, int dim>
25  {
27 
28  public:
29  // We steal the p0 traits since they exist for all dim.
30  // This allows to instantiate the type and access the Traits.
32  };
33 
36  template<class D, class R>
38  {
39  public:
46 
50  {
51  gt.makeLine();
52  }
53 
56  const typename Traits::LocalBasisType& localBasis () const
57  {
58  return basis_;
59  }
60 
64  {
65  return coefficients_;
66  }
67 
71  {
72  return interpolation_;
73  }
74 
76  unsigned int size () const
77  {
78  return basis_.size();
79  }
80 
83  GeometryType type () const
84  {
85  return gt;
86  }
87 
89  {
90  return new RefinedP0LocalFiniteElement(*this);
91  }
92 
93  private:
94  RefinedP0LocalBasis<D,R,1> basis_;
95  RefinedP0LocalCoefficients<1> coefficients_;
97  GeometryType gt;
98  };
99 
102  template<class D, class R>
104  {
105  public:
108  typedef LocalFiniteElementTraits<
112 
116  {
117  gt.makeTriangle();
118  }
119 
122  const typename Traits::LocalBasisType& localBasis () const
123  {
124  return basis_;
125  }
126 
130  {
131  return coefficients_;
132  }
133 
137  {
138  return interpolation_;
139  }
140 
142  unsigned int size () const
143  {
144  return basis_.size();
145  }
146 
149  GeometryType type () const
150  {
151  return gt;
152  }
153 
155  {
156  return new RefinedP0LocalFiniteElement(*this);
157  }
158 
159  private:
160  RefinedP0LocalBasis<D,R,2> basis_;
161  RefinedP0LocalCoefficients<2> coefficients_;
163  GeometryType gt;
164  };
165 
168  template<class D, class R>
170  {
171  public:
174  typedef LocalFiniteElementTraits<
178 
182  {
183  gt.makeTetrahedron();
184  }
185 
188  const typename Traits::LocalBasisType& localBasis () const
189  {
190  return basis_;
191  }
192 
196  {
197  return coefficients_;
198  }
199 
203  {
204  return interpolation_;
205  }
206 
208  unsigned int size () const
209  {
210  return basis_.size();
211  }
212 
215  GeometryType type () const
216  {
217  return gt;
218  }
219 
221  {
222  return new RefinedP0LocalFiniteElement(*this);
223  }
224 
225  private:
226  RefinedP0LocalBasis<D,R,3> basis_;
227  RefinedP0LocalCoefficients<3> coefficients_;
229  GeometryType gt;
230  };
231 
232 
233 }
234 
235 #endif
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:63
GeometryType type() const
Definition: refinedp0.hh:215
unsigned int size() const
Number of shape functions in this finite element.
Definition: refinedp0.hh:76
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:181
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 3 >, RefinedP0LocalCoefficients< 3 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 3 > > > Traits
Definition: refinedp0.hh:177
P0LocalFiniteElement< D, R, dim >::Traits Traits
Definition: refinedp0.hh:31
Definition: refinedp0localinterpolation.hh:11
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:115
unsigned int size() const
Number of shape functions in this finite element.
Definition: refinedp0.hh:142
RefinedP0LocalFiniteElement * clone() const
Definition: refinedp0.hh:220
GeometryType type() const
Definition: refinedp0.hh:83
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:70
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 2 >, RefinedP0LocalCoefficients< 2 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 2 > > > Traits
Definition: refinedp0.hh:111
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 1 >, RefinedP0LocalCoefficients< 1 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 1 > > > Traits
Definition: refinedp0.hh:45
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:136
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:195
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:56
traits helper struct
Definition: localfiniteelementtraits.hh:10
LI LocalInterpolationType
Definition: localfiniteelementtraits.hh:22
Definition: brezzidouglasmarini1cube2dlocalbasis.hh:14
RefinedP0LocalFiniteElement * clone() const
Definition: refinedp0.hh:154
LC LocalCoefficientsType
Definition: localfiniteelementtraits.hh:18
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:188
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:129
GeometryType type() const
Definition: refinedp0.hh:149
unsigned int size() const
Number of shape functions in this finite element.
Definition: refinedp0.hh:208
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:49
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:202
RefinedP0LocalFiniteElement * clone() const
Definition: refinedp0.hh:88
LB LocalBasisType
Definition: localfiniteelementtraits.hh:14
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:122
Local finite element that is piecewise P0 on a once uniformly refined reference geometry.
Definition: refinedp0.hh:24