Go to the documentation of this file.
20 template <
class F = concepts::Real>
41 inline LaplaceSL(uint stroud = 0, uint gauss = 0,
76 : stroud_(stroud), gauss_(gauss), dist_(dist) {
84 qrA_(elmX, elmY, gauss_, dist_, m);
86 uint n = elmX.
T().n();
90 for(uint i = 0; i < n; ++i) {
91 em(i, 0) = *mm++; em(i, 1) = *mm++; em(i, 2) = *mm++;
100 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
111 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
122 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
133 qrB_(elmX, elmY, stroud_, gauss_, dist_, m);
136 em(0, 0) = m[0]; em(0, 1) = m[1]; em(0, 2) = m[2];
137 em(1, 0) = m[3]; em(1, 1) = m[4]; em(1, 2) = m[5];
138 em(2, 0) = m[6]; em(2, 1) = m[7]; em(2, 2) = m[8];
146 template <
class F = concepts::Real>
167 inline LaplaceDL(uint stroud = 0, uint gauss = 0,
199 : stroud_(stroud), gauss_(gauss), dist_(dist) {
207 qrA_(elmX, elmY, gauss_, dist_, m);
209 uint n = elmX.
T().n();
213 for(uint i = 0; i < n; ++i) {
214 em(i, 0) = *mm++; em(i, 1) = *mm++; em(i, 2) = *mm++;
223 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
234 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
245 qrB_(elmX, elmY, stroud_, gauss_, dist_, m);
248 em(0, 0) = m[0]; em(0, 1) = m[1]; em(0, 2) = m[2];
249 em(1, 0) = m[3]; em(1, 1) = m[4]; em(1, 2) = m[5];
250 em(2, 0) = m[6]; em(2, 1) = m[7]; em(2, 2) = m[8];
259 template <
class F = concepts::Real>
279 inline LaplacePLD(uint stroud = 0, uint gauss = 0,
307 : stroud_(stroud), gauss_(gauss), dist_(dist) {
315 qrB_(elmY, elmX, stroud_, gauss_, dist_, &m);
326 qrA_(elmY, elmX, stroud_, gauss_, dist_, m);
329 em(0, 0) = m[0]; em(0, 1) = m[1]; em(0, 2) = m[2];
330 em(1, 0) = m[3]; em(1, 1) = m[4]; em(1, 2) = m[5];
331 em(2, 0) = m[6]; em(2, 1) = m[7]; em(2, 2) = m[8];
339 template <
class F = concepts::Real>
358 inline LaplaceHyp(uint stroud = 0, uint gauss = 0,
382 : stroud_(stroud), gauss_(gauss), dist_(dist) {
390 qrA_(elmX, elmY, stroud_, gauss_, dist_, m);
393 em(0, 0) = m[0]; em(0, 1) = m[1]; em(0, 2) = m[2];
394 em(1, 0) = m[3]; em(1, 1) = m[4]; em(1, 2) = m[5];
395 em(2, 0) = m[6]; em(2, 1) = m[7]; em(2, 2) = m[8];
403 template <
class F = concepts::Real>
438 ? 0.0 : elmX.
n().
length() * 0.5;
447 ? 0.0 : elmX.
n().
length() * 0.5;
467 template <
class F,
class K>
506 template <
class F,
class K>
511 qrA_(elmX, elmY, &m);
517 template <
class F,
class K>
522 qrA_(elmX, elmY, &m);
528 template <
class F,
class K>
533 qrA_(elmX, elmY, &m);
539 template <
class F,
class K>
547 em(0, 0) = m[0]; em(0, 1) = m[1]; em(0, 2) = m[2];
548 em(1, 0) = m[3]; em(1, 1) = m[4]; em(1, 2) = m[5];
549 em(2, 0) = m[6]; em(2, 1) = m[7]; em(2, 2) = m[8];
Bilinear form for arbitrary kernel with NO singularities.
Evaluation of the Laplace single layer potential with constant test/trial functions.
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
Application operator.
concepts::Real dist_
Distance to distinguish between one point integration formula and integration using the given number ...
An abstract class for an element of a space.
virtual LaplaceDL * clone() const
Virtual constructor.
Bilinear form to compute the Laplace double layer potential.
Linear triangular element.
Constant triangular element.
virtual ArbKrnl000 * clone() const
Virtual constructor.
concepts::Real dist_
Distance to distinguish between one point integration formula and integration using the given number ...
Bilinear form to compute the Laplace single layer potential.
LaplaceHyp(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
Constructor.
Bilinear form to compute the adjoint of the Laplace double layer potential.
virtual LaplacePLD * clone() const
Virtual constructor.
ArbKrnlGal000< F, K > qrA_
Classes used for integration.
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
Application operator.
uint stroud_
Number of integration points.
LaplacePLD(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
Constructor.
LplGal007< F > qrA_
Classes used for integration.
ArbKrnlGal001< F, K > qrB_
concepts::Real dist_
Distance to distinguish between one point integration formula and integration using the given number ...
LplCol006< F > qrA_
Classes used for integration.
Bilinear form to compute the Laplace hypersingular operator.
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
Application operator.
Evaluation of the Laplace hypersingular operator with linear test/trial functions.
virtual LaplaceHyp * clone() const
Virtual constructor.
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
Application operator.
Constant space element with a level dependent key.
const Key & key() const
Returns the key of the connector.
const concepts::Triangle & support() const
Returns the support.
const concepts::Unit3d & n() const
Returns the normal of the element.
uint stroud_
Number of integration points.
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
Application operator.
uint stroud_
Number of integration points.
void operator()(const Linear3d000< F > &elmX, const Linear3d000< F > &elmY, concepts::ElementMatrix< F > &em)
const concepts::TMatrixBase< F > & T() const
Returns T matrix of the element.
Bilinear form for arbitrary kernel with NO singularities.
virtual LaplaceSL * clone() const
Virtual constructor.
LplGal008< F > qrA_
Class used for integration.
const concepts::Triangle & support() const
Returns the support.
Used for the basic classes of the boundary element method.
Evaluation of the Laplace double layer potential with linear test/trial functions.
Constant triangular element with normed basis function.
virtual void resize(uint m, uint n)
Sets a new size.
LaplaceDL(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
Constructor.
Evaluation of the Laplace double layer potential with linear trial functions (collocation).
ArbKrnl000(K &k)
Constructor.
Evaluation of the Laplace single layer potential with linear test/trial functions.
Bilinear form to compute arbitrary kernels with NO singularities.
uint stroud_
Number of integration points.
Bilinear form to compute the mass matrix.
const concepts::Unit3d & n() const
Returns the normal of the element.
Dirac element on triangles (used for collocation method).
Real length() const
Length of the initially given vector.
const concepts::Triangle & support() const
Returns the support.
Evaluation of the Laplace single layer potential with linear trial functions (collocation).
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
Application operator.
LplCol007< F > qrA_
Classes used for integration.
Evaluation of the Laplace double layer potential with constant test/trial functions.
concepts::Real dist_
Distance to distinguish between one point integration formula and integration using the given number ...
virtual Identity * clone() const
Virtual constructor.
LaplaceSL(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
Constructor.
double Real
Type normally used for a floating point number.