dune-localfunctions  2.3.1-rc1
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 
77  GeometryType type () const
78  {
79  return gt;
80  }
81 
83  {
84  return new RefinedP0LocalFiniteElement(*this);
85  }
86 
87  private:
89  RefinedP0LocalCoefficients<1> coefficients_;
91  GeometryType gt;
92  };
93 
96  template<class D, class R>
98  {
99  public:
102  typedef LocalFiniteElementTraits<
106 
110  {
111  gt.makeTriangle();
112  }
113 
116  const typename Traits::LocalBasisType& localBasis () const
117  {
118  return basis_;
119  }
120 
124  {
125  return coefficients_;
126  }
127 
131  {
132  return interpolation_;
133  }
134 
137  GeometryType type () const
138  {
139  return gt;
140  }
141 
143  {
144  return new RefinedP0LocalFiniteElement(*this);
145  }
146 
147  private:
149  RefinedP0LocalCoefficients<2> coefficients_;
151  GeometryType gt;
152  };
153 
156  template<class D, class R>
158  {
159  public:
162  typedef LocalFiniteElementTraits<
166 
170  {
171  gt.makeTetrahedron();
172  }
173 
176  const typename Traits::LocalBasisType& localBasis () const
177  {
178  return basis_;
179  }
180 
184  {
185  return coefficients_;
186  }
187 
191  {
192  return interpolation_;
193  }
194 
197  GeometryType type () const
198  {
199  return gt;
200  }
201 
203  {
204  return new RefinedP0LocalFiniteElement(*this);
205  }
206 
207  private:
209  RefinedP0LocalCoefficients<3> coefficients_;
211  GeometryType gt;
212  };
213 
214 
215 }
216 
217 #endif
RefinedP0LocalFiniteElement * clone() const
Definition: refinedp0.hh:82
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:116
traits helper struct
Definition: localfiniteelementtraits.hh:10
P0LocalFiniteElement< D, R, dim >::Traits Traits
Definition: refinedp0.hh:31
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:169
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 3 >, RefinedP0LocalCoefficients< 3 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 3 > > > Traits
Definition: refinedp0.hh:165
RefinedP0LocalFiniteElement * clone() const
Definition: refinedp0.hh:142
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:109
GeometryType type() const
Definition: refinedp0.hh:197
RefinedP0LocalFiniteElement * clone() const
Definition: refinedp0.hh:202
GeometryType type() const
Definition: refinedp0.hh:137
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 2 >, RefinedP0LocalCoefficients< 2 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 2 > > > Traits
Definition: refinedp0.hh:105
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:190
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:183
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 1 >, RefinedP0LocalCoefficients< 1 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 1 > > > Traits
Definition: refinedp0.hh:45
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:49
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:56
LI LocalInterpolationType
Definition: localfiniteelementtraits.hh:22
Definition: refinedp0localinterpolation.hh:11
GeometryType type() const
Definition: refinedp0.hh:77
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:70
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:63
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:176
LC LocalCoefficientsType
Definition: localfiniteelementtraits.hh:18
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:130
Local finite element that is piecewise P0 on a once uniformly refined reference geometry.
Definition: refinedp0.hh:24
LB LocalBasisType
Definition: localfiniteelementtraits.hh:14
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:123