Class documentation of Concepts

Loading...
Searching...
No Matches
triangle.hh
Go to the documentation of this file.
1
6#ifndef DGTriangle_hh
7#define DGTriangle_hh
8
10#include "geometry/cell2D.hh"
11
12namespace concepts {
13 // forward declaration
14 template<typename F>
15 class ElementGraphics;
16}
17
18namespace linDG2D {
19
20 // forward declaration
21 class TriangleGraphics;
22
23 using concepts::Real;
24
25 // ************************************************************** Triangle **
26
31 public:
38 Triangle(const concepts::Triangle2d& cell, uint nDoF, uint idx[])
39 : linearFEM::Element(nDoF, idx), cell_(cell) {}
41 virtual const concepts::Triangle& support() const {
42 return cell_.connector();
43 }
45 virtual const concepts::Triangle2d& cell() const { return cell_; }
53 virtual Real shapeFct(const uint i, const Real xi1, const Real xi2) const = 0;
59 virtual Real solution(const concepts::Vector<Real>& coeffs,
60 const Real xi1, const Real xi2) const = 0;
63 protected:
64 virtual std::ostream& info(std::ostream& os) const;
65 private:
67 const concepts::Triangle2d& cell_;
69 static std::unique_ptr<TriangleGraphics> graphics_;
70 };
71
72 // ************************************************************ TriangleP1 **
73
77 class TriangleP1 : public Triangle {
78 public:
85 : Triangle(cell, 3, idx) {}
93 virtual Real shapeFct(const uint i, const Real xi1, const Real xi2) const;
105 virtual Real solution(const concepts::Vector<Real>& coeffs,
106 const Real xi1, const Real xi2) const;
107 protected:
108 virtual std::ostream& info(std::ostream& os) const;
109 };
110
111 // ************************************************************ TriangleP0 **
112
116 class TriangleP0 : public Triangle {
117 public:
124 : Triangle(cell, 1, idx) {}
132 virtual Real shapeFct(const uint i, const Real xi1, const Real xi2) const {
133 return 1;
134 }
135 virtual Real solution(const concepts::Vector<Real>& coeffs,
136 const Real xi1, const Real xi2) const;
137 protected:
138 virtual std::ostream& info(std::ostream& os) const;
139 };
140
141} // namespace linDG2D
142
143#endif // DGTriangle_hh
144
Element()
Default constructor.
Definition element.hh:57
Triangle & connector() const
Returns the triangle connector (topology)
Definition cell2D.hh:91
TriangleP0(const concepts::Triangle2d &cell, uint *idx)
Definition triangle.hh:123
virtual Real shapeFct(const uint i, const Real xi1, const Real xi2) const
Definition triangle.hh:132
virtual Real solution(const concepts::Vector< Real > &coeffs, const Real xi1, const Real xi2) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
concepts::Real2d shapeFctGradient(const uint i) const
TriangleP1(const concepts::Triangle2d &cell, uint idx[])
Definition triangle.hh:84
virtual Real solution(const concepts::Vector< Real > &coeffs, const Real xi1, const Real xi2) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Real shapeFct(const uint i, const Real xi1, const Real xi2) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Triangle(const concepts::Triangle2d &cell, uint nDoF, uint idx[])
Definition triangle.hh:38
virtual const concepts::ElementGraphics< Real > * graphics() const
Returns the element graphics object.
virtual const concepts::Triangle2d & cell() const
Returns the underlying geometrical triangle.
Definition triangle.hh:45
virtual Real solution(const concepts::Vector< Real > &coeffs, const Real xi1, const Real xi2) const =0
virtual const concepts::Triangle & support() const
Returns the topological triangle supporting the element.
Definition triangle.hh:41
virtual Real shapeFct(const uint i, const Real xi1, const Real xi2) const =0
double Real
Definition typedefs.hh:39