Dune Core Modules (2.6.0)

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 
4 #ifndef DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
5 #define DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
6 
7 #include <dune/geometry/type.hh>
8 
9 #include <dune/localfunctions/whitney/edges0.5/basis.hh>
10 #include <dune/localfunctions/whitney/edges0.5/coefficients.hh>
11 #include <dune/localfunctions/whitney/edges0.5/interpolation.hh>
12 
13 namespace Dune {
14 
16  //
17  // FiniteElement
18  //
19 
21 
39  template<class Geometry, class RF>
41  public:
45  struct Traits {
46  typedef EdgeS0_5Basis<Geometry, RF> Basis;
48  typename Basis::Traits> Interpolation;
50  };
51 
52  private:
53  typename Traits::Basis basis_;
54  typename Traits::Interpolation interpolation_;
55  static const typename Traits::Coefficients& coefficients_;
56 
57  public:
59 
62  template<class VertexOrder>
64  const VertexOrder& vertexOrder) :
65  basis_(geo, vertexOrder), interpolation_(geo, vertexOrder)
66  { }
67 
69  const typename Traits::Basis& basis() const { return basis_; }
71  const typename Traits::Interpolation& interpolation() const
72  { return interpolation_; }
74  const typename Traits::Coefficients& coefficients() const
75  { return coefficients_; }
78  };
79 
80  template<class Geometry, class RF>
81  const typename EdgeS0_5FiniteElement<Geometry, RF>::Traits::Coefficients&
82  EdgeS0_5FiniteElement<Geometry, RF>::coefficients_ =
83  typename Traits::Coefficients();
84 
86  //
87  // Factory
88  //
89 
91 
100  template<class Geometry, class RF>
103 
105 
119  template<class VertexOrder>
120  const FiniteElement make(const Geometry& geometry,
121  const VertexOrder& vertexOrder)
122  { return FiniteElement(geometry, vertexOrder); }
123  };
124 
125 } // namespace Dune
126 
127 #endif // DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
Basis for order 0.5 (lowest order) edge elements on simplices.
Definition: basis.hh:36
Coefficients for lowest order edge elements on simplices.
Definition: coefficients.hh:28
FiniteElement for lowest order edge elements on simplices.
Definition: edges0.5.hh:40
EdgeS0_5FiniteElement(const Geometry &geo, const VertexOrder &vertexOrder)
Constructor.
Definition: edges0.5.hh:63
const Traits::Interpolation & interpolation() const
return reference to the interpolation object
Definition: edges0.5.hh:71
const Traits::Basis & basis() const
return reference to the basis object
Definition: edges0.5.hh:69
const Traits::Coefficients & coefficients() const
return reference to the coefficients object
Definition: edges0.5.hh:74
static constexpr GeometryType type()
return geometry type of this element
Definition: edges0.5.hh:77
Interpolation for lowest order edge elements on simplices.
Definition: interpolation.hh:30
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:277
Wrapper class for geometries.
Definition: geometry.hh:67
@ mydimension
Definition: geometry.hh:90
constexpr GeometryType simplex(unsigned int dim)
Returns a GeometryType representing a simplex of dimension dim.
Definition: type.hh:696
Dune namespace.
Definition: alignedallocator.hh:10
Factory for EdgeS0_5FiniteElement objects.
Definition: edges0.5.hh:101
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct the factory
Definition: edges0.5.hh:120
Dummy struct used for documentation purposes.
Definition: documentation.hh:40
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 (May 1, 22:29, 2024)