dune-localfunctions 3.0-git
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
18namespace 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:
97 GeometryType gt;
98 };
99
102 template<class D, class R>
104 {
105 public:
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:
161 RefinedP0LocalCoefficients<2> coefficients_;
163 GeometryType gt;
164 };
165
168 template<class D, class R>
170 {
171 public:
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:
227 RefinedP0LocalCoefficients<3> coefficients_;
229 GeometryType gt;
230 };
231
232
233}
234
235#endif
Definition brezzidouglasmarini1cube2d.hh:14
traits helper struct
Definition localfiniteelementtraits.hh:11
LB LocalBasisType
Definition localfiniteelementtraits.hh:14
LC LocalCoefficientsType
Definition localfiniteelementtraits.hh:18
LI LocalInterpolationType
Definition localfiniteelementtraits.hh:22
Local finite element that is piecewise P0 on a once uniformly refined reference geometry.
Definition refinedp0.hh:25
P0LocalFiniteElement< D, R, dim >::Traits Traits
Definition refinedp0.hh:31
const Traits::LocalBasisType & localBasis() const
Definition refinedp0.hh:56
RefinedP0LocalFiniteElement()
Definition refinedp0.hh:49
GeometryType type() const
Definition refinedp0.hh:83
RefinedP0LocalFiniteElement * clone() const
Definition refinedp0.hh:88
const Traits::LocalInterpolationType & localInterpolation() const
Definition refinedp0.hh:70
const Traits::LocalCoefficientsType & localCoefficients() const
Definition refinedp0.hh:63
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 1 >, RefinedP0LocalCoefficients< 1 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 1 > > > Traits
Definition refinedp0.hh:45
unsigned int size() const
Number of shape functions in this finite element.
Definition refinedp0.hh:76
RefinedP0LocalFiniteElement * clone() const
Definition refinedp0.hh:154
unsigned int size() const
Number of shape functions in this finite element.
Definition refinedp0.hh:142
GeometryType type() const
Definition refinedp0.hh:149
RefinedP0LocalFiniteElement()
Definition refinedp0.hh:115
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 2 >, RefinedP0LocalCoefficients< 2 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 2 > > > Traits
Definition refinedp0.hh:111
const Traits::LocalCoefficientsType & localCoefficients() const
Definition refinedp0.hh:129
const Traits::LocalInterpolationType & localInterpolation() const
Definition refinedp0.hh:136
const Traits::LocalBasisType & localBasis() const
Definition refinedp0.hh:122
RefinedP0LocalFiniteElement * clone() const
Definition refinedp0.hh:220
RefinedP0LocalFiniteElement()
Definition refinedp0.hh:181
const Traits::LocalBasisType & localBasis() const
Definition refinedp0.hh:188
GeometryType type() const
Definition refinedp0.hh:215
const Traits::LocalInterpolationType & localInterpolation() const
Definition refinedp0.hh:202
unsigned int size() const
Number of shape functions in this finite element.
Definition refinedp0.hh:208
const Traits::LocalCoefficientsType & localCoefficients() const
Definition refinedp0.hh:195
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 3 >, RefinedP0LocalCoefficients< 3 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 3 > > > Traits
Definition refinedp0.hh:177
Uniformly refined constant shape functions on a unit simplex in R^dim.
Definition refinedp0localbasis.hh:38
Layout map for RefinedP0 elements.
Definition refinedp0localcoefficients.hh:23
Definition refinedp0localinterpolation.hh:12