dune-localfunctions  2.3.1
edges0.5.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 
4 #ifndef DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
5 #define DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
6 
7 #include <dune/geometry/type.hh>
8 
12 
13 namespace Dune {
14 
16  //
17  // FiniteElement
18  //
19 
21 
37  template<class Geometry, class RF>
39  public:
43  struct Traits {
45  typedef EdgeS0_5Interpolation<Geometry,
46  typename Basis::Traits> Interpolation;
48  };
49 
50  private:
51  typename Traits::Basis basis_;
52  typename Traits::Interpolation interpolation_;
53  static const typename Traits::Coefficients& coefficients_;
54  static const GeometryType gt;
55 
56  public:
58 
61  template<class VertexOrder>
62  EdgeS0_5FiniteElement(const Geometry& geo,
63  const VertexOrder& vertexOrder) :
64  basis_(geo, vertexOrder), interpolation_(geo, vertexOrder)
65  { }
66 
68  const typename Traits::Basis& basis() const { return basis_; }
70  const typename Traits::Interpolation& interpolation() const
71  { return interpolation_; }
73  const typename Traits::Coefficients& coefficients() const
74  { return coefficients_; }
76  const GeometryType& type() const { return gt; }
77  };
78 
79  template<class Geometry, class RF>
81  EdgeS0_5FiniteElement<Geometry, RF>::coefficients_ =
82  typename Traits::Coefficients();
83 
84  template<class Geometry, class RF>
85  const GeometryType
86  EdgeS0_5FiniteElement<Geometry, RF>::gt(GeometryType::simplex,
87  Geometry::mydimension);
88 
90  //
91  // Factory
92  //
93 
95 
104  template<class Geometry, class RF>
107 
109 
123  template<class VertexOrder>
124  const FiniteElement make(const Geometry& geometry,
125  const VertexOrder& vertexOrder)
126  { return FiniteElement(geometry, vertexOrder); }
127  };
128 
129 } // namespace Dune
130 
131 #endif // DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_HH
EdgeS0_5Basis< Geometry, RF > Basis
Definition: edges0.5.hh:44
ImplementationDefined FiniteElement
Type of the finite element.
Definition: interface.hh:115
Basis for order 0.5 (lowest order) edge elements on simplices.
Definition: whitney/edges0.5/basis.hh:34
Interpolation for lowest order edge elements on simplices.
Definition: whitney/edges0.5/interpolation.hh:27
FiniteElement for lowest order edge elements on simplices.
Definition: edges0.5.hh:38
const Traits::Basis & basis() const
return reference to the basis object
Definition: edges0.5.hh:68
EdgeS0_5Coefficients< Geometry::mydimension > Coefficients
Definition: edges0.5.hh:47
EdgeS0_5Interpolation< Geometry, typename Basis::Traits > Interpolation
Definition: edges0.5.hh:46
Factory for EdgeS0_5FiniteElement objects.
Definition: edges0.5.hh:105
EdgeS0_5FiniteElement< Geometry, RF > FiniteElement
Definition: edges0.5.hh:106
const FiniteElement make(const Geometry &geometry, const VertexOrder &vertexOrder)
construct the factory
Definition: edges0.5.hh:124
EdgeS0_5FiniteElement(const Geometry &geo, const VertexOrder &vertexOrder)
Constructor.
Definition: edges0.5.hh:62
const GeometryType & type() const
return geometry type of this element
Definition: edges0.5.hh:76
const Traits::Interpolation & interpolation() const
return reference to the interpolation object
Definition: edges0.5.hh:70
Coefficients for lowest order edge elements on simplices.
Definition: whitney/edges0.5/coefficients.hh:28
const Traits::Coefficients & coefficients() const
return reference to the coefficients object
Definition: edges0.5.hh:73
Definition: edges0.5.hh:43