dune-localfunctions  2.9.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 // SPDX-FileCopyrightInfo: Copyright (C) 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_PK2DLOCALFINITEELEMENT_HH
6 #define DUNE_PK2DLOCALFINITEELEMENT_HH
7 
8 #include <cstddef>
9 
10 #include <dune/geometry/type.hh>
11 
15 
16 #warning This header is deprecated
17 
18 namespace Dune
19 {
20 
25  template<class D, class R, unsigned int k>
27  [[deprecated("use LagrangeSimplexLocalFiniteElement instead")]]
29 
30 
32 
39  template<class Geometry, class RF, std::size_t k>
41  typedef typename Geometry::ctype DF;
42  typedef Impl::LagrangeSimplexLocalBasis<DF,RF,2,k> LocalBasis;
43  typedef Impl::LagrangeSimplexLocalInterpolation<LocalBasis> LocalInterpolation;
44 
45  public:
49  struct Traits {
52  LocalInterpolation,
53  typename Basis::Traits
55  typedef Impl::LagrangeSimplexLocalCoefficients<2,k> Coefficients;
56  };
57 
58  private:
59  static const GeometryType gt;
60  static const LocalBasis localBasis;
61  static const LocalInterpolation localInterpolation;
62 
63  typename Traits::Basis basis_;
64  typename Traits::Interpolation interpolation_;
65  typename Traits::Coefficients coefficients_;
66 
67  public:
69 
82  template<class VertexOrder>
83  Pk2DFiniteElement(const Geometry &geometry,
84  const VertexOrder& vertexOrder) :
85  basis_(localBasis, geometry), interpolation_(localInterpolation),
86  coefficients_(vertexOrder.begin(0, 0))
87  { }
88 
89  const typename Traits::Basis& basis() const { return basis_; }
90  const typename Traits::Interpolation& interpolation() const
91  { return interpolation_; }
92  const typename Traits::Coefficients& coefficients() const
93  { return coefficients_; }
94  const GeometryType &type() const { return gt; }
95  };
96 
97  template<class Geometry, class RF, std::size_t k>
98  const GeometryType
99  Pk2DFiniteElement<Geometry, RF, k>::gt(GeometryTypes::simplex(2));
100 
101  template<class Geometry, class RF, std::size_t k>
102  const typename Pk2DFiniteElement<Geometry, RF, k>::LocalBasis
103  Pk2DFiniteElement<Geometry, RF, k>::localBasis = LocalBasis();
104 
105  template<class Geometry, class RF, std::size_t k>
106  const typename Pk2DFiniteElement<Geometry, RF, k>::LocalInterpolation
107  Pk2DFiniteElement<Geometry, RF, k>::localInterpolation =
108  LocalInterpolation();
109 
111 
121  template<class Geometry, class RF, std::size_t k>
124 
126 
140  template<class VertexOrder>
141  const FiniteElement make(const Geometry& geometry,
142  const VertexOrder& vertexOrder)
143  { return FiniteElement(geometry, vertexOrder); }
144  };
145 }
146 
147 #endif
Definition: bdfmcube.hh:18
ImplementationDefined FiniteElement
Type of the finite element.
Definition: interface.hh:117
Convert a simple scalar local basis into a global basis.
Definition: localtoglobaladaptors.hh:65
LocalToGlobalBasisAdaptorTraits< typename LocalBasis::Traits, Geometry::coorddimension > Traits
Definition: localtoglobaladaptors.hh:84
Convert a local interpolation into a global interpolation.
Definition: localtoglobaladaptors.hh:149
Lagrange finite element for simplices with arbitrary compile-time dimension and polynomial order.
Definition: lagrangesimplex.hh:838
Langrange finite element of arbitrary order on triangles.
Definition: pk2d.hh:40
const GeometryType & type() const
Definition: pk2d.hh:94
Pk2DFiniteElement(const Geometry &geometry, const VertexOrder &vertexOrder)
construct a Pk2DFiniteElement
Definition: pk2d.hh:83
const Traits::Interpolation & interpolation() const
Definition: pk2d.hh:90
const Traits::Basis & basis() const
Definition: pk2d.hh:89
const Traits::Coefficients & coefficients() const
Definition: pk2d.hh:92
Definition: pk2d.hh:49
ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry > Basis
Definition: pk2d.hh:50
Impl::LagrangeSimplexLocalCoefficients< 2, k > Coefficients
Definition: pk2d.hh:55
LocalToGlobalInterpolationAdaptor< LocalInterpolation, typename Basis::Traits > Interpolation
Definition: pk2d.hh:54
Factory for Pk2DFiniteElement objects.
Definition: pk2d.hh:122
Pk2DFiniteElement< Geometry, RF, k > FiniteElement
Definition: pk2d.hh:123
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct Pk2DFiniteElementFactory
Definition: pk2d.hh:141