dune-localfunctions  2.11
refinedp1.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_LOCALFUNCTIONS_REFINED_REFINEDP1_HH
6 #define DUNE_LOCALFUNCTIONS_REFINED_REFINEDP1_HH
7 
8 #include <dune/geometry/type.hh>
9 
12 
15 
16 namespace Dune
17 {
18 
27  template<class D, class R, int dim>
29  {
30  public:
34  Impl::LagrangeSimplexLocalCoefficients<dim,2>,
35  Impl::LagrangeSimplexLocalInterpolation<Impl::LagrangeSimplexLocalBasis<D,R,dim,2> > > Traits;
36 
40  {}
41 
44  const typename Traits::LocalBasisType& localBasis () const
45  {
46  return basis_;
47  }
48 
52  {
53  return coefficients_;
54  }
55 
59  {
60  return interpolation_;
61  }
62 
64  unsigned int size () const
65  {
66  return basis_.size();
67  }
68 
71  static constexpr GeometryType type ()
72  {
73  return GeometryTypes::simplex(dim);
74  }
75 
76  private:
78  Impl::LagrangeSimplexLocalCoefficients<dim,2> coefficients_;
79  // Yes, the template argument here really is LagrangeSimplexLocalBasis, even though this is not
80  // the local basis of the refined locale finite element: The reason is that LagrangeSimplexLocalInterpolation
81  // uses this argument to determine the polynomial order, and RefinedP1LocalBasis returns order 1
82  // whereas order 2 is needed here.
83  Impl::LagrangeSimplexLocalInterpolation<Impl::LagrangeSimplexLocalBasis<D,R,dim,2> > interpolation_;
84  };
85 
86 }
87 
88 #endif // DUNE_LOCALFUNCTIONS_REFINED_REFINEDP1_HH
traits helper struct
Definition: localfiniteelementtraits.hh:12
Definition: refinedp1localbasis.hh:21
LC LocalCoefficientsType
Definition: localfiniteelementtraits.hh:20
Definition: bdfmcube.hh:17
const Traits::LocalInterpolationType & localInterpolation() const
Evaluates all degrees of freedom for a given function.
Definition: refinedp1.hh:58
const Traits::LocalBasisType & localBasis() const
The set of shape functions.
Definition: refinedp1.hh:44
static constexpr GeometryType type()
The element type that this finite element is defined on.
Definition: refinedp1.hh:71
LocalFiniteElementTraits< RefinedP1LocalBasis< D, R, dim >, Impl::LagrangeSimplexLocalCoefficients< dim, 2 >, Impl::LagrangeSimplexLocalInterpolation< Impl::LagrangeSimplexLocalBasis< D, R, dim, 2 > > > Traits
Export all types used by this implementation.
Definition: refinedp1.hh:35
Linear Lagrange shape functions on a uniformly refined reference element.
const Traits::LocalCoefficientsType & localCoefficients() const
Produces the assignments of the degrees of freedom to the element subentities.
Definition: refinedp1.hh:51
RefinedP1LocalFiniteElement()
Default constructor.
Definition: refinedp1.hh:39
unsigned int size() const
Number of shape functions of this finite element.
Definition: refinedp1.hh:64
LI LocalInterpolationType
Definition: localfiniteelementtraits.hh:24
LB LocalBasisType
Definition: localfiniteelementtraits.hh:16
Piecewise linear continuous Lagrange functions on a uniformly refined simplex element.
Definition: refinedp1.hh:28