element.hh

Go to the documentation of this file.
1 
6 #ifndef hpElement2d_h
7 #define hpElement2d_h
8 
9 #include <cstring>
12 #include "geometry/connector.hh"
13 #include "geometry/cell.hh"
14 #include "space/element.hh"
15 #include "space/tmatrix.hh"
16 
17 namespace hp2D {
18 
19  // *************************************************************** Element **
20 
27  template<class F>
28  class Element : public concepts::ElementWithCell<F> {
29  public:
34 
38  virtual const concepts::Connector2& support() const = 0;
39 
40  virtual const concepts::TMatrix<F>& T() const { return T_; }
41 
43  void appendT(concepts::TColumn<F>* T) { T_.append(T); }
44 
49  virtual concepts::Real3d vertex(uint i) const = 0;
50 
52  virtual const concepts::Cell2& cell() const = 0;
53  protected:
54  virtual std::ostream& info(std::ostream& os) const;
55 
58  };
59 
60 } // namespace hp2D
61 
62 namespace concepts {
63 
64  // ****************************************************************** Scan **
65 
67 
68  template<class F>
69  class Scan<hp2D::Element<F> > : public Scan<ElementWithCell<F> > {
70  public:
72  };
73 
74 } // namespace concepts
75 
76 #endif // hpElement2d_h
virtual std::ostream & info(std::ostream &os) const
A column of a T matrix.
Definition: analytical.hh:18
virtual const concepts::Connector2 & support() const =0
Returns the topological support of the element.
An abstract class for an element of a space.
Definition: exceptions.hh:15
A T matrix in sparse notation.
Definition: edgeTest.hh:17
virtual const concepts::TMatrix< F > & T() const
Returns the T matrix of the element.
Definition: element.hh:40
Element(concepts::TColumn< F > *T)
Constructor.
Definition: element.hh:33
concepts::TMatrix< F > T_
T matrix of the element.
Definition: element.hh:57
hp2D::Element< F > & operator++(int)=0
Returns the next element in the scanned set.
2D hp-FEM for H1-conforming elements.
virtual const concepts::Cell2 & cell() const =0
Returns the cell on which the element is built.
Element with cell.
A 2D element of the topology.
Definition: connector.hh:226
An abstract class for scanning a mesh (a set of cells) or a space (a set of elements).
Abstract class for a 2D FEM element.
Definition: element.hh:28
Two dimensional cell.
Definition: cell.hh:89
void appendT(concepts::TColumn< F > *T)
Appends the T columns to the T matrix.
Definition: element.hh:43
virtual concepts::Real3d vertex(uint i) const =0
Returns the coordinates of the ith vertex of this element.
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich