Class documentation of Concepts

Loading...
Searching...
No Matches
bf_partialderiv.hh
Go to the documentation of this file.
1
6#ifndef hp2dbf_partialderiv_hh
7#define hp2dbf_partialderiv_hh
8
9#include <memory>
11#include "basics/typedefs.hh"
15
16
17namespace concepts {
18 // forward declarations
19 template<class F>
20 class Array;
21
22 template<class F, uint dim>
23 class Point;
24
25 template<class F>
26 class Element;
27
28 template<class F>
29 class ElementMatrix;
30
31 template<typename F, typename G>
32 class ElementFormula;
33}
34
35namespace vectorial {
36 // forward declarations
37 template<class F, class G>
38 class BilinearForm;
39}
40
41namespace hp2D {
42 // forward declarations
43 template<class F>
44 class Quad;
45
46 class InfiniteLaguerreQuad;
47
48 using concepts::Real;
49
50
51 // ********************************************************* partDerivType **
52
59 enum partDerivType { NO_DERIV = 0, X_DERIV = 1, Y_DERIV = 2};
60
61 // ********************************************** BilinearFormOnePartDeriv **
62
84 template<class F = Real>
87 {
88 public:
97
98 virtual ~BilinearFormOnePartDeriv() {}
99
101 return new BilinearFormOnePartDeriv<F>(i_, this->frm_);
102 }
103
104 virtual void operator()(const concepts::Element<Real>& elmX,
105 const concepts::Element<Real>& elmY,
107
108 protected:
109 virtual std::ostream& info(std::ostream& os) const;
110 private:
112 const enum partDerivType i_;
113
115 concepts::ElementMatrix<Real> stiff1D_, mass1D_;
116
118 bool operator()(const hp2D::Quad<Real>* elmX,
119 const hp2D::Quad<Real>* elmY,
121
122 bool operator()(const InfiniteLaguerreQuad* elmX,
123 const InfiniteLaguerreQuad* elmY,
125 };
126
127 // ********************************************** BilinearFormTwoPartDeriv **
128
150 template<class F = Real>
152 public BilinearFormHelper_1_1<F>
153 {
154 public:
162 const enum partDerivType j,
165
166 virtual ~BilinearFormTwoPartDeriv() {}
167
169 return new BilinearFormTwoPartDeriv<F>(i_, j_, this->frm_);
170 }
171
172 virtual void operator()(const concepts::Element<Real>& elmX,
173 const concepts::Element<Real>& elmY,
175
176 protected:
177 virtual std::ostream& info(std::ostream& os) const;
178 private:
180 const enum partDerivType i_, j_;
181
183 bool operator()(const Quad<Real>* elmX,
184 const Quad<Real>* elmY,
186 };
187
188} // namespace hp2D
189
190#endif // hp2dbf_partialderiv_hh
concepts::ElementFormulaContainer< F > frm_
ElementFormula.
concepts::ElementFormulaContainer< F > frm_
Element formula.
BilinearFormOnePartDeriv(const enum partDerivType i, const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual BilinearFormOnePartDeriv< F > * clone() const
BilinearFormTwoPartDeriv(const enum partDerivType i, const enum partDerivType j, const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual BilinearFormTwoPartDeriv< F > * clone() const
double Real
Definition typedefs.hh:39
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition element.hh:267