Numerical C++ Library Concepts
TWiki Guest (guest)
Logout
Numerical C++ Library Concepts
IT Services
ISG Blog
IntraMATH
Contact
Login
Keyword or person
News
About us
People
People
Publications
Gallery
Applications
Installation
How to get started
Tutorials
Class documentation
ETH Zurich
D-MATH
wiki@math
Concepts
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