Class documentation of Concepts

Loading...
Searching...
No Matches
bilinearForm.hh
Go to the documentation of this file.
1
6#ifndef bilinearform1D_hh
7#define bilinearform1D_hh
8
9#include "basics/typedefs.hh"
12#include "formula.hh"
13
14namespace concepts {
15 // forward declarations
16 template<class F>
17 class Element;
18
19 template<class F>
20 class ElementMatrix;
21
22 template<class F>
23 class Array;
24}
25
26namespace hp1D {
27
28 using concepts::Real;
29
30 // *************************************************************** Laplace **
31
36 template<class F = Real>
37 class Laplace : public concepts::BilinearForm<F,Real>,
38 public BilinearFormHelper<1,1,F> {
39 public:
47 virtual ~Laplace();
48
49 void operator()(const concepts::Element<Real>& elmX,
50 const concepts::Element<Real>& elmY,
52 virtual Laplace<F>* clone() const { return new Laplace<F>(this->frm_); }
53 protected:
54 virtual std::ostream& info(std::ostream& os) const;
55 };
56
57 // ************************************************************** Identity **
58
62 template<class F = Real>
63 class Identity : public concepts::BilinearForm<F,Real>,
64 public BilinearFormHelper<0,0,F> {
65 public:
69 virtual ~Identity();
70
71 void operator()(const concepts::Element<Real>& elmX,
72 const concepts::Element<Real>& elmY,
74 virtual Identity<F>* clone() const;
75 protected:
76 virtual std::ostream& info(std::ostream& os) const;
77 private:
78 };
79
80 // ****************************************************** IdentityParallel **
81
92 template<class F = Real>
94 public BilinearFormHelper<0,0,F> {
95 public:
105 const concepts::Real3d
106 shiftX = concepts::Real3d(),
107 const concepts::Real3d
108 shiftY = concepts::Real3d(),
109 const bool negShift = false
110 );
111 virtual ~IdentityParallel();
112
113 void operator()(const concepts::Element<Real>& elmX,
114 const concepts::Element<Real>& elmY,
116 virtual IdentityParallel<F>* clone() const;
117 protected:
118 virtual std::ostream& info(std::ostream& os) const;
119 private:
120 const concepts::Point<Real,3> shiftX_;
121 const concepts::Point<Real,3> shiftY_;
122 const bool negShift_;
123 };
124
125
126 // *************************************************************** Bi-Laplace **
127
132 template<class F = Real>
133 class BiLaplace: public concepts::BilinearForm<F, Real>,
134 public BilinearFormHelper<2, 2, F> {
135 public:
143
145 virtual ~BiLaplace();
146
147 void operator()(const concepts::Element<Real>& elmX,
149
150 virtual BiLaplace<F>* clone() const {
151 return new BiLaplace<F>(this->frm_);
152 }
153
154 protected:
155 virtual std::ostream& info(std::ostream& os) const;
156 };
157
158 // *************************************************************** Jump1Jump1 **
159
165 template<class F = Real>
166 class Jump1Jump1: public concepts::BilinearForm<F, Real>,
167 public BilinearFormVtxHelper<F> {
168 public:
169
177
179 virtual ~Jump1Jump1();
180
184
185 virtual Jump1Jump1<F>* clone() const {
186 return new Jump1Jump1<F>(this->frm_);
187 }
188
189 protected:
190 virtual std::ostream& info(std::ostream& os) const;
191
192 };
193
194 // *************************************************************** Mean2Jump1 **
195
201 template<class F = Real>
202 class Mean2Jump1: public concepts::BilinearForm<F, Real>,
203 public BilinearFormVtxHelper<F> {
204 public:
205
213
215 virtual ~Mean2Jump1();
216
220
221 virtual Mean2Jump1<F>* clone() const {
222 return new Mean2Jump1<F>(this->frm_);
223 }
224
225 protected:
226 virtual std::ostream& info(std::ostream& os) const;
227 private:
230 };
231
232 // *************************************************************** Jump1Mean2 **
233
239 template<class F = Real>
241 public:
247
249 virtual ~Jump1Mean2();
250 protected:
251 virtual std::ostream& info(std::ostream& os) const;
252 private:
255 };
256
257
258} // namespace hp1D
259
260#endif // bilinearform1D_hh
virtual ~BiLaplace()
Destructor.
virtual BiLaplace< F > * clone() const
BiLaplace(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const concepts::ElementFormulaContainer< F > frm_
ElementFormula.
Definition formula.hh:308
IdentityParallel(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >(), const concepts::Real3d shiftX=concepts::Real3d(), const concepts::Real3d shiftY=concepts::Real3d(), const bool negShift=false)
virtual IdentityParallel< 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.
Identity(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
Constructor.
virtual Identity< F > * clone() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Jump1Jump1(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
void operator()(const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const
Operator.
virtual Jump1Jump1< F > * clone() const
virtual ~Jump1Jump1()
Destructor.
virtual ~Jump1Mean2()
Destructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Jump1Mean2(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
Laplace(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Laplace< F > * clone() const
virtual ~Mean2Jump1()
Destructor.
Mean2Jump1(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
virtual Mean2Jump1< F > * clone() const
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< F > &em) const
Operator.
double Real
Definition typedefs.hh:39
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition element.hh:267