linInnerProd.hh

Go to the documentation of this file.
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
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich