Class documentation of Concepts

Loading...
Searching...
No Matches
formula.hh
Go to the documentation of this file.
1
6#ifndef formulahp1d_hh
7#define formulahp1d_hh
8
10#include "formula/formula.hh"
11#include "geometry/formula.hh"
12#include "geometry/arrays.hh"
13#include "function/vector.hh"
14#include "element.hh"
15
16namespace hp1D {
17
18 // *********************************************** ElementFormulaInterpGrad **
19
20 template<typename F>
22 public:
24
25 virtual F operator()(const concepts::ElementWithCell<Real>& elm,
26 const Real p, const Real t = 0.0) const;
27 virtual F operator()(const concepts::ElementWithCell<Real>& elm,
28 const concepts::Real2d& p, const Real t = 0.0) const {
29 return 0.0;
30 }
31 virtual F operator()(const concepts::ElementWithCell<Real>& elm,
32 const concepts::Real3d& p, const Real t = 0.0) const {
33 return 0.0;
34 }
35
38 return new ElementFormulaInterpGrad<F>(frm_);
39 }
40 protected:
41 virtual std::ostream& info(std::ostream& os) const;
42 private:
46 mutable concepts::Array<Real> x_;
48 mutable const concepts::ElementWithCell<Real>* edge_;
50 mutable concepts::Array<F> values_;
51 };
52
53 // *************************************************** ArrayElementFormula **
54
56
57 template<class F = Real>
74
75 template<class F>
79
80 template<class F>
86
87 // ****************************************************** LinearFormHelper **
88
93 template<uint i, class F = Real>
95 };
96
97 // *************************************************** LinearFormHelper<0> **
98
113 template<class F>
135
136 // *************************************************** LinearFormHelper<1> **
137
154 template<class F>
155 class LinearFormHelper<1, F> {
156 public:
158 virtual ~LinearFormHelper();
159
160 protected:
165 void computeIntermediate_(const Element<Real>& elm) const;
166
172
175 };
176
177 // **************************************************** BilinearFormHelper **
178
183 template<uint i, uint j, class F = Real>
185 };
186
187 // *********************************************** BilinearFormHelper<0,0> **
188
189 template<class F>
190 class BilinearFormHelper<0, 0, F> : public LinearFormHelper<0, F> {
191 public:
194 }
195
196 const concepts::ElementFormula<F>* formula() const {
197 return &this->frm_.frm();
198 }
199 };
200
201 // *********************************************** BilinearFormHelper<1,1> **
202
211 template<class F>
228
232 template<class F>
257
258 /*********************************** BilinearFormVtxHelper **************************/
263 template<class F = Real>
265 public:
270
273 return &this->frm_.frm();
274 }
275
282 const hp1D::Element<Real>& elm) const;
283
290 const hp1D::Element<Real>& elm) const;
291
297 const hp1D::Element<Real>& elm) const;
298
304
305 protected:
306
309 };
310
311
312} // namespace hp1D
313
314#endif //formulahp1d_hh
Array of formula values on quadrature points.
Definition formula.hh:58
void compute(const BaseElement< Real > &elm, const concepts::ElementFormulaContainer< F > frm)
void computeIntermediate_(const Element< Real > &elm) const
Compute the intermediate data for element matrix computation.
const concepts::ElementFormulaContainer< F > frm_
ElementFormula.
Definition formula.hh:226
concepts::Array< F > intermediateValue_
Definition formula.hh:224
concepts::Array< F > intermediateValueJac_
calculated inverse Jacobian determinant on the integration points
Definition formula.hh:245
void computeIntermediate_(const Element< Real > &elm) const
Compute the intermediate data for element matrix computation.
concepts::Array< F > intermediateValueHess_
calculated second tangential derivatives of the parametrisation
Definition formula.hh:242
concepts::Array< F > intermediateValueFrm_
calculated values of the elementFormula on the integration poitnts
Definition formula.hh:248
const concepts::ElementFormulaContainer< F > frm_
ElementFormula.
Definition formula.hh:254
const concepts::ElementFormulaContainer< F > frm_
ElementFormula.
Definition formula.hh:308
const concepts::Array< F > getFrmVal(const hp1D::Element< Real > &elm) const
BilinearFormVtxHelper(const concepts::ElementFormulaContainer< F > frm)
Constructor.
Definition formula.hh:267
const concepts::Array< Real > getInvJacobeanDet(const hp1D::Element< Real > &elm) const
const concepts::ElementFormula< F > * formula() const
Getter for formula.
Definition formula.hh:272
const concepts::Array< Real > getTangentialSecondDerivative(const hp1D::Element< Real > &elm) const
const concepts::Array< Real > getInvJacobeanDetSq(const hp1D::Element< Real > &elm) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual ElementFormulaInterpGrad< F > * clone() const
Virtual copy constructor.
Definition formula.hh:37
const concepts::ElementFormulaContainer< F > frm_
ElementFormula.
Definition formula.hh:133
concepts::Array< F > intermediateValue_
Definition formula.hh:130
void computeIntermediate_(const BaseElement< Real > &elm) const
concepts::Array< F > intermediateValue_
Definition formula.hh:171
const concepts::ElementFormulaContainer< F > frm_
ElementFormula.
Definition formula.hh:174
void computeIntermediate_(const Element< Real > &elm) const