Class documentation of Concepts

Loading...
Searching...
No Matches
linInnerProd.hh
1//#ifndef hp2dlinInnerProd_own_hh
2//#define hp2dlinInnerProd_own_hh
3//
4//#include <memory>
5//#include "basics/typedefs.hh"
6//#include "function/linearForm.hh"
7//#include "hp2D/linearFormHelper.hh"
8//#include "hp2D/arrayElementFormula.hh"
9//#include "hp1D.hh"
10//
12//
13//namespace hp1D{
14//
16// * Computes formula * theta_n on a nEdge where theta_n are the two shapefunctions of order 1.
17// * 1-x, x
18// *
19// *This is needed for the approximated moments, just for two orders dont change polynomial degree,
20// *for generell use hp1D::riesz,
21// *
22// *
23// *Alternative : Nutze riesz aber nur für polynomgrad 2.
24// *
25// */
26//template<class F = Real>
27// class LinInnerProd_0 : public concepts::LinearForm<F>, public hp1D::LinearFormHelper<0,F> {
28// public:
29// /** Constructor.
30//
31// @param frm The formula, given elementwise
32// */
33// LinInnerProd_0(const concepts::ElementFormulaContainer<F> frm,
34// const concepts::BoundaryConditions* bc = 0);
35//
36// virtual ~LinInnerProd_0();
37//
38// /** Computes on an element the inner product of the element-wise
39// * given formula and the linear vertex basis in all 2 points,
40// * there are the loops over all quadrature
41// *
42// @param elm The element for which the 2 inner products are computed
43// @param em The computed inner product for the 2 nodal-basis functions. (traced)
44// */
45// void operator()(const concepts::Element<Real>& elm,
46// concepts::ElementMatrix<F>& em);
47// protected:
48// virtual std::ostream& info(std::ostream& os) const;
49// private:
56//
57// };
58//
59//} //hp1D
60//
61//
62//
63//
64//
65//
66//
67//
68//
69//namespace hp2D {
70//
71// // forward declarations
72// template<class F>
73// class Quad;
74//
75// using concepts::Real;
76//
78//
79// This linear form computes
80// \f[ \int_K f \theta_n \, dx, n=0,1,2,3 \f]
81//
82// where \f[\theta_n\f] are nodal and edge basis functions, not interiors
83// they are computed first x , then y direction-wise
84// Currently only on quadrilaterals.
85//
86//
87// Robert
88// */
89// template<class F = Real>
90// class LinInnerProd_0 : public concepts::LinearForm<F>, public LinearFormHelper_0<F> {
91// public:
92// /** Constructor.
93//
94// @param frm The formula, given elementwise
95// */
96// LinInnerProd_0(const concepts::ElementFormulaContainer<F> frm,
97// bool ignoreMissingElem = false);
98// virtual ~LinInnerProd_0();
99//
100// /** Computes on an element the inner product of the element-wise
101// * given formula and the linear vertex basis in all 4 points,
102// * there are the loops over all quadrature
103// points and the loops over the four shape functions (tensorized).
104//
105// @param elm The element for which the 4 inner products are computed
106// @param em The computed inner product for all 4 nodal-basis functions.
107// */
108// void operator()(const concepts::Element<Real>& elm,
109// concepts::ElementMatrix<F>& em);
110// protected:
111// virtual std::ostream& info(std::ostream& os) const;
112// private:
113// /// Intermediate data for element matrix computation
114// concepts::Array<Real> jacobian_;
115//
116// void operator()(const Quad<Real>& elm, concepts::ElementMatrix<F>& em);
117//
118// bool ignoreMissingElem;
119// };
120//
121// /** Linear form in 2D.
122//
123// This linear form computes
124// \f[ \int_K \vec{f} \cdot \mbox{\bf grad}{v} \, dx \f]
125// for a given 2D function f and v is one of the four first order shape functions.
126// Currently only on quadrilaterals.
127//
128// compare to GradLinearForm just with 4 Shapefunctions only.
129// */
130// template<class F = concepts::Real>
131// class LinInnerProd_1 : public concepts::LinearForm<F>, public LinearFormHelper_1<F> {
132// public:
133// /** Constructor.
134// @param frm Vectorial formula
135// @param ignoreMissingElem do not throw an exceptiont for incompatible elements,
136// just ignore elements like GfemQuads
137// */
138// LinInnerProd_1(const concepts::ElementFormulaContainer<concepts::Point<F, 2> > frm,
139// bool ignoreMissingElem = false);
140//
141// /** Computes a 4x1 element load vector. As for the computation of an
142// element stiffness matrix, there are the loops over all quadrature
143// points and the loops over all shape functions.
144// @param elm The element for which the load vector should be computed.
145// @param em The load vector in local degrees of freedom corresponding to local shapefunctions
146// */
147// virtual void operator()(const concepts::Element<Real>& elm,
148// concepts::ElementMatrix<F>& em);
149// protected:
150// virtual std::ostream& info(std::ostream& os) const;
151// private:
152// virtual void operator()(const Quad<Real>& elm,
153// concepts::ElementMatrix<F>& em);
154//
155// bool ignoreMissingElem_;
156// };
157//
158//
159//
160//}
161//
162//#endif // hp2dlinInnerProd_own_hh