dune-localfunctions 2.8.0
Loading...
Searching...
No Matches
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
14namespace 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
Definition: bdfmcube.hh:16
Traits class for local-to-global basis adaptors.
Definition: localtoglobaladaptors.hh:28
Convert a simple scalar local basis into a global basis.
Definition: localtoglobaladaptors.hh:63
Convert a local interpolation into a global interpolation.
Definition: localtoglobaladaptors.hh:147
Lagrange finite element for simplices with arbitrary compile-time dimension and polynomial order.
Definition: lagrangesimplex.hh:836
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
const Traits::Interpolation & interpolation() const
Definition: pk2d.hh:84
const Traits::Basis & basis() const
Definition: pk2d.hh:83
const Traits::Coefficients & coefficients() const
Definition: pk2d.hh:86
const GeometryType & type() const
Definition: pk2d.hh:88
Definition: pk2d.hh:43
ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry > Basis
Definition: pk2d.hh:44
Impl::LagrangeSimplexLocalCoefficients< 2, k > Coefficients
Definition: pk2d.hh:49
LocalToGlobalInterpolationAdaptor< LocalInterpolation, typename Basis::Traits > Interpolation
Definition: pk2d.hh:48
Factory for Pk2DFiniteElement objects.
Definition: pk2d.hh:116
Pk2DFiniteElement< Geometry, RF, k > FiniteElement
Definition: pk2d.hh:117
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct Pk2DFiniteElementFactory
Definition: pk2d.hh:135