Class documentation of Concepts

Loading...
Searching...
No Matches
bilinearForm.hh
Go to the documentation of this file.
1
8#ifndef hp2dEdgeBilinearform_hh
9#define hp2dEdgeBilinearform_hh
10
11#include <memory>
13#include "basics/typedefs.hh"
16#include "formula/boundary.hh"
18#include "hp2D/quad.hh"
19#include "hp2D/formula.hh"
22
24#include "hp2Dedge/bf_graduv.hh"
26
27namespace concepts {
28 // forward declarations
29 template<class F>
30 class Element;
31
32 template<class F>
33 class ElementMatrix;
34
35 template<class F>
36 class Array;
37
38 template<class F>
39 class RCP;
40}
41
42namespace hp2Dedge {
43 // forward declarations
44 template<class F>
45 class Quad;
46
47 template<class F>
48 class Edge;
49
50 using concepts::Real;
51 using concepts::Cmplx;
52
53 // ************************************************************** RotRot **
54
61 template<typename F = Real>
62 class RotRot : public concepts::BilinearForm<F>,
64 public:
68 virtual ~RotRot() {}
69 virtual RotRot<F>* clone() const { return new RotRot<F>(this->frm_); }
70 void operator()(const concepts::Element<Real>& elmX,
71 const concepts::Element<Real>& elmY,
73 void operator()(const Quad<Real>& elmX, const Quad<Real>& elmY,
75 protected:
76 virtual std::ostream& info(std::ostream& os) const;
77 };
78
79 // *************************************************************** Rotuv **
80
88 class Rotuv : public concepts::BilinearForm<Real>,
89 //public hp2D::BilinearFormHelper_2_2<Real> {
90 public hp2D::LinearFormHelper_2<Real> {
91 public:
94 virtual ~Rotuv() {}
95 void operator()(const concepts::Element<Real>& elmX,
96 const concepts::Element<Real>& elmY,
98 void operator()(const hp2D::Quad<Real>& elmX, const Quad<Real>& elmY,
100 void operator()(const hp2D::l2::Quad<Real>& elmX, const Quad<Real>& elmY,
102 virtual Rotuv* clone() const { return new Rotuv(); }
103 protected:
104 virtual std::ostream& info(std::ostream& os) const;
105 };
106
107 // ********************************************************** EdgeIdentity **
108
120 public:
130 const concepts::Element<Real>& elmY,
132 void operator()(const Edge<Real>& elmX, const Edge<Real>& elmY,
134 virtual EdgeIdentity* clone() const { return new EdgeIdentity(); }
135 protected:
136 virtual std::ostream& info(std::ostream& os) const;
137 };
138
139} // namespace hp2Dedge
140
141#endif // hp2dEdgeBilinearform_hh
concepts::ElementFormulaContainer< F > frm_
ElementFormula.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
void operator()(const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< Real > &em) const
virtual EdgeIdentity * clone() const
RotRot(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
Constructor.
virtual RotRot< F > * clone() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Rotuv * clone() const
double Real
Definition typedefs.hh:39
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.
Definition typedefs.hh:42
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition element.hh:267