3#ifndef DUNE_PK2DLOCALFINITEELEMENT_HH
4#define DUNE_PK2DLOCALFINITEELEMENT_HH
8#include <dune/geometry/type.hh>
10#include <dune/localfunctions/common/localfiniteelementtraits.hh>
11#include <dune/localfunctions/common/localtoglobaladaptors.hh>
12#include <dune/localfunctions/lagrange/lagrangesimplex.hh>
21 template<
class D,
class R,
unsigned int k>
22 using Pk2DLocalFiniteElement = LagrangeSimplexLocalFiniteElement<D,R,2,k>;
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;
47 typename Basis::Traits
49 typedef Impl::LagrangeSimplexLocalCoefficients<2,k> Coefficients;
53 static const GeometryType gt;
54 static const LocalBasis localBasis;
55 static const LocalInterpolation localInterpolation;
59 typename Traits::Coefficients coefficients_;
76 template<
class VertexOrder>
78 const VertexOrder& vertexOrder) :
79 basis_(localBasis, geometry), interpolation_(localInterpolation),
80 coefficients_(vertexOrder.begin(0, 0))
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; }
91 template<
class Geometry,
class RF, std::
size_t k>
93 Pk2DFiniteElement<Geometry, RF, k>::gt(GeometryTypes::simplex(2));
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();
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();
115 template<
class Geometry,
class RF, std::
size_t k>
134 template<
class VertexOrder>
136 const VertexOrder& vertexOrder)
ImplementationDefined FiniteElement
Type of the finite element.
Definition: interface.hh:124
Convert a local interpolation into a global interpolation.
Definition: localtoglobaladaptors.hh:147
Langrange finite element of arbitrary order on triangles.
Definition: pk2d.hh:34
Pk2DFiniteElement(const Geometry &geometry, const VertexOrder &vertexOrder)
construct a Pk2DFiniteElement
Definition: pk2d.hh:77
Convert a simple scalar local basis into a global basis.
Definition: localtoglobaladaptors.hh:63
Factory for Pk2DFiniteElement objects.
Definition: pk2d.hh:116
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct Pk2DFiniteElementFactory
Definition: pk2d.hh:135