Class documentation of Concepts

Loading...
Searching...
No Matches
bf_laplace.hh
Go to the documentation of this file.
1
6#ifndef hp2dbf_laplace_hh
7#define hp2dbf_laplace_hh
8
9#include <memory>
10#include "basics/typedefs.hh"
17
18
19namespace concepts {
20 // forward declarations
21 template<class F>
22 class Array;
23
24 template<class F, uint dim>
25 class Point;
26
27 template<class F>
28 class Element;
29
30 template<class F>
31 class ElementMatrix;
32
33 template<typename F, typename G>
34 class ElementFormula;
35}
36
37namespace vectorial {
38 // forward declarations
39 template<class F, class G>
40 class BilinearForm;
41}
42
43namespace hp2D {
44 // forward declarations
45 template<class F>
46 class Quad;
47
48 class InfiniteLaguerreQuad;
49
50 using concepts::Real;
51
52
53 // *********************************************************** LaplaceBase **
54
61 template<class F = Real, class G = typename concepts::Realtype<F>::type>
62 class LaplaceBase : public BilinearFormHelper_1_1<F,G> {
63 public:
64 typedef typename concepts::Combtype<F,G>::type value_type;
65
70
72 , bool all = false);
73 protected:
75 bool all_;
76
77 bool assemble_(const Quad<Real>* elmX, const Quad<Real>* elmY,
79 };
80
81
82 // *************************************************************** Laplace **
83
89 template<class F = Real>
91 public LaplaceBase<F> {
92 public:
98 , bool all = false);
99
100 virtual ~Laplace();
101 virtual Laplace<F>* clone() const;
102 virtual void operator()(const concepts::Element<Real>& elmX,
103 const concepts::Element<Real>& elmY,
105 protected:
106 virtual std::ostream& info(std::ostream& os) const;
107 private:
109 bool all_;
110
112 concepts::ElementMatrix<Real> stiff1D_, mass1D_;
113
114 bool assembleLaguerre_(const InfiniteLaguerreQuad* elmX,
115 const InfiniteLaguerreQuad* elmY,
117 };
118
119 // ********************************************************* LaplaceMatrix **
120
127 template<class F = Real>
129 public LaplaceBase<Real,F> {
130 public:
133
138 , bool all = false);
139 virtual ~LaplaceMatrix();
140 virtual LaplaceMatrix<F>* clone() const;
141 virtual void operator()(const concepts::Element<Real>& elmX,
142 const concepts::Element<Real>& elmY,
144 protected:
145 virtual std::ostream& info(std::ostream& os) const;
146 };
147
148 // *********************************************************** setupLaplace **
149
154 template<class F>
159
160
161} // namespace hp2D
162
163#endif // hp2dbf_laplace_hh
bool all_
Parameter for the sum factorisation.
Definition bf_laplace.hh:75
LaplaceBase(const concepts::ElementFormulaContainer< F > frm, bool all=false)
LaplaceMatrix(const FrmE_Matrix frm=FrmE_Matrix(), bool all=false)
virtual LaplaceMatrix< F > * clone() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Laplace< F > * clone() const
Laplace(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >(), bool all=false)
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
double Real
Definition typedefs.hh:39
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition element.hh:267
void setupLaplace(vectorial::BilinearForm< F, typename concepts::Realtype< F >::type > &bf, const concepts::ElementFormulaContainer< F, typename concepts::Realtype< F >::type > frm=concepts::ElementFormulaContainer< F, typename concepts::Realtype< F >::type >())