Dune Core Modules (unstable)

edges0.5.hh
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 
6 #ifndef DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
7 #define DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
8 
9 #include <dune/geometry/type.hh>
10 
11 #include <dune/localfunctions/whitney/edges0.5/basis.hh>
12 #include <dune/localfunctions/whitney/edges0.5/coefficients.hh>
13 #include <dune/localfunctions/whitney/edges0.5/interpolation.hh>
14 
15 namespace Dune {
16 
18  //
19  // FiniteElement
20  //
21 
23 
41  template<class Geometry, class RF>
43  public:
47  struct Traits {
48  typedef EdgeS0_5Basis<Geometry, RF> Basis;
50  typename Basis::Traits> Interpolation;
52  };
53 
54  private:
55  typename Traits::Basis basis_;
56  typename Traits::Interpolation interpolation_;
57  static const typename Traits::Coefficients& coefficients_;
58 
59  public:
61 
64  template<class VertexOrder>
66  const VertexOrder& vertexOrder) :
67  basis_(geo, vertexOrder), interpolation_(geo, vertexOrder)
68  { }
69 
71  const typename Traits::Basis& basis() const { return basis_; }
73  const typename Traits::Interpolation& interpolation() const
74  { return interpolation_; }
76  const typename Traits::Coefficients& coefficients() const
77  { return coefficients_; }
80  };
81 
82  template<class Geometry, class RF>
83  const typename EdgeS0_5FiniteElement<Geometry, RF>::Traits::Coefficients&
84  EdgeS0_5FiniteElement<Geometry, RF>::coefficients_ =
85  typename Traits::Coefficients();
86 
88  //
89  // Factory
90  //
91 
93 
102  template<class Geometry, class RF>
105 
107 
121  template<class VertexOrder>
122  const FiniteElement make(const Geometry& geometry,
123  const VertexOrder& vertexOrder)
124  { return FiniteElement(geometry, vertexOrder); }
125  };
126 
127 } // namespace Dune
128 
129 #endif // DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
Basis for order 0.5 (lowest order) edge elements on simplices.
Definition: basis.hh:38
Coefficients for lowest order edge elements on simplices.
Definition: coefficients.hh:31
FiniteElement for lowest order edge elements on simplices.
Definition: edges0.5.hh:42
EdgeS0_5FiniteElement(const Geometry &geo, const VertexOrder &vertexOrder)
Constructor.
Definition: edges0.5.hh:65
const Traits::Interpolation & interpolation() const
return reference to the interpolation object
Definition: edges0.5.hh:73
const Traits::Basis & basis() const
return reference to the basis object
Definition: edges0.5.hh:71
const Traits::Coefficients & coefficients() const
return reference to the coefficients object
Definition: edges0.5.hh:76
static constexpr GeometryType type()
return geometry type of this element
Definition: edges0.5.hh:79
Interpolation for lowest order edge elements on simplices.
Definition: interpolation.hh:33
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:114
Wrapper class for geometries.
Definition: geometry.hh:71
constexpr static int mydimension
geometry dimension
Definition: geometry.hh:94
constexpr GeometryType simplex(unsigned int dim)
Returns a GeometryType representing a simplex of dimension dim.
Definition: type.hh:453
concept Geometry
Model of a geometry object.
Definition: geometry.hh:29
Dune namespace.
Definition: alignedallocator.hh:13
Factory for EdgeS0_5FiniteElement objects.
Definition: edges0.5.hh:103
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct the factory
Definition: edges0.5.hh:122
Dummy struct used for documentation purposes.
Definition: documentation.hh:42
A unique label for each type of element that can occur in a grid.
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 27, 22:29, 2024)