dune-localfunctions 2.10
Loading...
Searching...
No Matches
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
16namespace 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
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
Linear Lagrange shape functions on a uniformly refined reference element.
Definition bdfmcube.hh:18
traits helper struct
Definition localfiniteelementtraits.hh:13
LB LocalBasisType
Definition localfiniteelementtraits.hh:16
LC LocalCoefficientsType
Definition localfiniteelementtraits.hh:20
LI LocalInterpolationType
Definition localfiniteelementtraits.hh:24
Piecewise linear continuous Lagrange functions on a uniformly refined simplex element.
Definition refinedp1.hh:29
static constexpr GeometryType type()
The element type that this finite element is defined on.
Definition refinedp1.hh:71
unsigned int size() const
Number of shape functions of this finite element.
Definition refinedp1.hh:64
RefinedP1LocalFiniteElement()
Default constructor.
Definition refinedp1.hh:39
const Traits::LocalInterpolationType & localInterpolation() const
Evaluates all degrees of freedom for a given function.
Definition refinedp1.hh:58
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
const Traits::LocalCoefficientsType & localCoefficients() const
Produces the assignments of the degrees of freedom to the element subentities.
Definition refinedp1.hh:51
const Traits::LocalBasisType & localBasis() const
The set of shape functions.
Definition refinedp1.hh:44
Definition refinedp1localbasis.hh:23