20 template <
class F = concepts::Real>
41 inline LaplaceSL(uint stroud = 0, uint gauss = 0,
71 return new LaplaceSL(stroud_, gauss_, dist_); }
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++;
97 const Constant3d000<F>& elmY,
100 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
108 const Constant3d001<F>& elmY,
111 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
119 const Constant3d002<F>& elmY,
122 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
130 const Linear3d000<F>& elmY,
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>
155 uint stroud_, gauss_;
167 inline LaplaceDL(uint stroud = 0, uint gauss = 0,
194 return new LaplaceDL(stroud_, gauss_, dist_); }
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++;
220 const Constant3d000<F>& elmY,
223 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
231 const Constant3d002<F>& elmY,
234 qrC_(elmX, elmY, stroud_, gauss_, dist_, &m);
242 const Linear3d000<F>& elmY,
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>
267 uint stroud_, gauss_;
279 inline LaplacePLD(uint stroud = 0, uint gauss = 0,
300 return new LaplacePLD(stroud_, gauss_, dist_); }
307 : stroud_(stroud), gauss_(gauss), dist_(dist) {
315 qrB_(elmY, elmX, stroud_, gauss_, dist_, &m);
323 const Linear3d000<F>& elmY,
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>
346 uint stroud_, gauss_;
358 inline LaplaceHyp(uint stroud = 0, uint gauss = 0,
376 return new LaplaceHyp(stroud_, gauss_, dist_); }
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>
434 const Constant3d000<F>& elmY,
437 em(0, 0) = (elmX.support().key() != elmY.support().key())
438 ? 0.0 : elmX.n().length() * 0.5;
443 const Constant3d001<F>& elmY,
446 em(0, 0) = (elmX.support().key() != elmY.support().key())
447 ? 0.0 : elmX.n().length() * 0.5;
452 const Constant3d002<F>& elmY,
455 em(0, 0) = (elmX.support().key() != elmY.support().key())
467 template <
class F,
class K>
506 template <
class F,
class K>
508 const Constant3d000<F>& elmY,
511 qrA_(elmX, elmY, &m);
517 template <
class F,
class K>
519 const Constant3d001<F>& elmY,
522 qrA_(elmX, elmY, &m);
528 template <
class F,
class K>
530 const Constant3d002<F>& elmY,
533 qrA_(elmX, elmY, &m);
539 template <
class F,
class K>
541 const Linear3d000<F>& elmY,
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];
virtual ArbKrnl000 * clone() const
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
const concepts::TMatrixBase< F > & T() const
Returns T matrix of the element.
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
virtual Identity * clone() const
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
LaplaceDL(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
virtual LaplaceDL * clone() const
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
virtual LaplaceHyp * clone() const
LaplaceHyp(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
LaplacePLD(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
virtual LaplacePLD * clone() const
void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em)
LaplaceSL(uint stroud=0, uint gauss=0, concepts::Real dist=0.0)
virtual LaplaceSL * clone() const
virtual void resize(uint m, uint n)