dune-localfunctions  2.11
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 // SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
4 // SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
5 #ifndef DUNE_REFINED_P0_LOCALFINITEELEMENT_HH
6 #define DUNE_REFINED_P0_LOCALFINITEELEMENT_HH
7 
8 #include <dune/geometry/type.hh>
9 
12 
16 
20 namespace Dune
21 {
22 
27  template<class D, class R, int dim>
29  {
31 
32  public:
33  // We steal the p0 traits since they exist for all dim.
34  // This allows to instantiate the type and access the Traits.
36  };
37 
42  template<class D, class R>
44  {
45  public:
52 
56  {}
57 
60  const typename Traits::LocalBasisType& localBasis () const
61  {
62  return basis_;
63  }
64 
68  {
69  return coefficients_;
70  }
71 
75  {
76  return interpolation_;
77  }
78 
80  unsigned int size () const
81  {
82  return basis_.size();
83  }
84 
87  static constexpr GeometryType type ()
88  {
89  return GeometryTypes::line;
90  }
91 
92  private:
94  RefinedP0LocalCoefficients<1> coefficients_;
96  };
97 
102  template<class D, class R>
104  {
105  public:
108  typedef LocalFiniteElementTraits<
112 
116  {}
117 
120  const typename Traits::LocalBasisType& localBasis () const
121  {
122  return basis_;
123  }
124 
128  {
129  return coefficients_;
130  }
131 
135  {
136  return interpolation_;
137  }
138 
140  unsigned int size () const
141  {
142  return basis_.size();
143  }
144 
147  static constexpr GeometryType type ()
148  {
149  return GeometryTypes::triangle;
150  }
151 
152  private:
154  RefinedP0LocalCoefficients<2> coefficients_;
156  };
157 
162  template<class D, class R>
164  {
165  public:
168  typedef LocalFiniteElementTraits<
172 
176  {}
177 
180  const typename Traits::LocalBasisType& localBasis () const
181  {
182  return basis_;
183  }
184 
188  {
189  return coefficients_;
190  }
191 
195  {
196  return interpolation_;
197  }
198 
200  unsigned int size () const
201  {
202  return basis_.size();
203  }
204 
207  static constexpr GeometryType type ()
208  {
209  return GeometryTypes::tetrahedron;
210  }
211 
212  private:
214  RefinedP0LocalCoefficients<3> coefficients_;
216  };
217 
218 
219 }
220 
221 #endif
traits helper struct
Definition: localfiniteelementtraits.hh:12
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:115
Definition: refinedp0localinterpolation.hh:16
P0LocalFiniteElement< D, R, dim >::Traits Traits
Definition: refinedp0.hh:35
static constexpr GeometryType type()
Definition: refinedp0.hh:147
unsigned int size() const
Number of shape functions in this finite element.
Definition: refinedp0.hh:80
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:187
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 1 >, RefinedP0LocalCoefficients< 1 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 1 > > > Traits
Definition: refinedp0.hh:51
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:194
unsigned int size() const
Number of shape functions in this finite element.
Definition: refinedp0.hh:200
LC LocalCoefficientsType
Definition: localfiniteelementtraits.hh:20
unsigned int size() const
Number of shape functions in this finite element.
Definition: refinedp0.hh:140
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:134
Definition: bdfmcube.hh:17
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:127
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:180
const Traits::LocalCoefficientsType & localCoefficients() const
Definition: refinedp0.hh:67
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:60
const Traits::LocalInterpolationType & localInterpolation() const
Definition: refinedp0.hh:74
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 2 >, RefinedP0LocalCoefficients< 2 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 2 > > > Traits
Definition: refinedp0.hh:111
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:55
LI LocalInterpolationType
Definition: localfiniteelementtraits.hh:24
LocalFiniteElementTraits< RefinedP0LocalBasis< D, R, 3 >, RefinedP0LocalCoefficients< 3 >, RefinedP0LocalInterpolation< RefinedP0LocalBasis< D, R, 3 > > > Traits
Definition: refinedp0.hh:171
static constexpr GeometryType type()
Definition: refinedp0.hh:87
LB LocalBasisType
Definition: localfiniteelementtraits.hh:16
Local finite element that is piecewise P0 on a once uniformly refined reference geometry.
Definition: refinedp0.hh:28
const Traits::LocalBasisType & localBasis() const
Definition: refinedp0.hh:120
RefinedP0LocalFiniteElement()
Definition: refinedp0.hh:175
static constexpr GeometryType type()
Definition: refinedp0.hh:207