dune-localfunctions  2.7.0
pk2d.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_PK2DLOCALFINITEELEMENT_HH
4 #define DUNE_PK2DLOCALFINITEELEMENT_HH
5 
6 #include <cstddef>
7 
8 #include <dune/geometry/type.hh>
9 
13 
14 namespace Dune
15 {
16 
21  template<class D, class R, unsigned int k>
23 
24 
26 
33  template<class Geometry, class RF, std::size_t k>
35  typedef typename Geometry::ctype DF;
36  typedef Impl::LagrangeSimplexLocalBasis<DF,RF,2,k> LocalBasis;
37  typedef Impl::LagrangeSimplexLocalInterpolation<LocalBasis> LocalInterpolation;
38 
39  public:
43  struct Traits {
46  LocalInterpolation,
47  typename Basis::Traits
49  typedef Impl::LagrangeSimplexLocalCoefficients<2,k> Coefficients;
50  };
51 
52  private:
53  static const GeometryType gt;
54  static const LocalBasis localBasis;
55  static const LocalInterpolation localInterpolation;
56 
57  typename Traits::Basis basis_;
58  typename Traits::Interpolation interpolation_;
59  typename Traits::Coefficients coefficients_;
60 
61  public:
63 
76  template<class VertexOrder>
77  Pk2DFiniteElement(const Geometry &geometry,
78  const VertexOrder& vertexOrder) :
79  basis_(localBasis, geometry), interpolation_(localInterpolation),
80  coefficients_(vertexOrder.begin(0, 0))
81  { }
82 
83  const typename Traits::Basis& basis() const { return basis_; }
84  const typename Traits::Interpolation& interpolation() const
85  { return interpolation_; }
86  const typename Traits::Coefficients& coefficients() const
87  { return coefficients_; }
88  const GeometryType &type() const { return gt; }
89  };
90 
91  template<class Geometry, class RF, std::size_t k>
92  const GeometryType
93  Pk2DFiniteElement<Geometry, RF, k>::gt(GeometryTypes::simplex(2));
94 
95  template<class Geometry, class RF, std::size_t k>
96  const typename Pk2DFiniteElement<Geometry, RF, k>::LocalBasis
97  Pk2DFiniteElement<Geometry, RF, k>::localBasis = LocalBasis();
98 
99  template<class Geometry, class RF, std::size_t k>
100  const typename Pk2DFiniteElement<Geometry, RF, k>::LocalInterpolation
101  Pk2DFiniteElement<Geometry, RF, k>::localInterpolation =
102  LocalInterpolation();
103 
105 
115  template<class Geometry, class RF, std::size_t k>
118 
120 
134  template<class VertexOrder>
135  const FiniteElement make(const Geometry& geometry,
136  const VertexOrder& vertexOrder)
137  { return FiniteElement(geometry, vertexOrder); }
138  };
139 }
140 
141 #endif
lagrangesimplex.hh
Dune::Pk2DFiniteElement::Traits::Coefficients
Impl::LagrangeSimplexLocalCoefficients< 2, k > Coefficients
Definition: pk2d.hh:49
Dune::Pk2DFiniteElement::coefficients
const Traits::Coefficients & coefficients() const
Definition: pk2d.hh:86
Dune::Pk2DFiniteElement::basis
const Traits::Basis & basis() const
Definition: pk2d.hh:83
Dune::Pk2DFiniteElement::Traits::Interpolation
LocalToGlobalInterpolationAdaptor< LocalInterpolation, typename Basis::Traits > Interpolation
Definition: pk2d.hh:48
localfiniteelementtraits.hh
Dune
Definition: bdfmcube.hh:15
Dune::Pk2DFiniteElementFactory::make
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct Pk2DFiniteElementFactory
Definition: pk2d.hh:135
Dune::Pk2DFiniteElementFactory
Factory for Pk2DFiniteElement objects.
Definition: pk2d.hh:116
Dune::ScalarLocalToGlobalBasisAdaptor::Traits
LocalToGlobalBasisAdaptorTraits< typename LocalBasis::Traits, Geometry::coorddimension > Traits
Definition: localtoglobaladaptors.hh:82
Dune::Pk2DFiniteElement
Langrange finite element of arbitrary order on triangles.
Definition: pk2d.hh:34
Dune::Pk2DFiniteElementFactory::FiniteElement
Pk2DFiniteElement< Geometry, RF, k > FiniteElement
Definition: pk2d.hh:117
Dune::Pk2DFiniteElement::type
const GeometryType & type() const
Definition: pk2d.hh:88
Dune::Pk2DFiniteElement::Traits
Definition: pk2d.hh:43
Dune::Pk2DFiniteElement::Traits::Basis
ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry > Basis
Definition: pk2d.hh:44
Dune::ScalarLocalToGlobalBasisAdaptor
Convert a simple scalar local basis into a global basis.
Definition: localtoglobaladaptors.hh:63
Dune::FiniteElementFactoryInterface::FiniteElement
ImplementationDefined FiniteElement
Type of the finite element.
Definition: interface.hh:115
Dune::Pk2DFiniteElement::Pk2DFiniteElement
Pk2DFiniteElement(const Geometry &geometry, const VertexOrder &vertexOrder)
construct a Pk2DFiniteElement
Definition: pk2d.hh:77
Dune::LagrangeSimplexLocalFiniteElement
Lagrange finite element for simplices with arbitrary compile-time dimension and polynomial order.
Definition: lagrangesimplex.hh:835
Dune::Pk2DFiniteElement::interpolation
const Traits::Interpolation & interpolation() const
Definition: pk2d.hh:84
localtoglobaladaptors.hh
Dune::LocalToGlobalInterpolationAdaptor
Convert a local interpolation into a global interpolation.
Definition: localtoglobaladaptors.hh:147