The DuffyTrick module provides quadrature routines for (nearly) singular integrals. More...
The DuffyTrick module provides quadrature routines for (nearly) singular integrals.
Therein, the implementation is essentially an adaptation of the so-called Sauter-Schwab quadrature rules
| Eigen::Vector3i Bembel::DuffyTrick::compareElements | ( | const ElementTreeNode & | e1, |
| const ElementTreeNode & | e2, | ||
| double * | dist | ||
| ) |
Compares two elements for similarities and determines, how the elements have to be rotated to move the similarity to the first vertices_ or edge.
Definition at line 23 of file compareElements.hpp.
| std::vector< ElementSurfacePoints > Bembel::DuffyTrick::computeFfieldQnodes | ( | const T & | super_space, |
| const Cubature & | Q | ||
| ) |
evaluates a given quadrature on all surface panels storage format is qNodes.col(k) = [xi, w, Chi(xi); dsChi(xi); dtChi(xi)]
Definition at line 23 of file farFieldQuadratureNodes.hpp.
| void Bembel::DuffyTrick::evaluateBilinearForm | ( | const LinearOperatorBase< Derived > & | linOp, |
| const T & | super_space, | ||
| const ElementTreeNode & | e1, | ||
| const ElementTreeNode & | e2, | ||
| const CubatureVector & | GS, | ||
| const ElementSurfacePoints & | ffield_qnodes1, | ||
| const ElementSurfacePoints & | ffield_qnodes2, | ||
| Eigen::Matrix< typename LinearOperatorTraits< Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > * | intval | ||
| ) |
This function wraps the quadrature routines for the DuffyTrick and returns all integrals for the given pair of elements.
Definition at line 22 of file evaluateBilinearForm.hpp.
| void Bembel::DuffyTrick::integrate0 | ( | const LinearOperatorBase< Derived > & | LinOp, |
| const T & | super_space, | ||
| const ElementTreeNode & | e1, | ||
| int | rot1, | ||
| const ElementTreeNode & | e2, | ||
| int | rot2, | ||
| const ElementSurfacePoints & | ffield_qnodes1, | ||
| const ElementSurfacePoints & | ffield_qnodes2, | ||
| const Cubature & | Q, | ||
| Eigen::Matrix< typename LinearOperatorTraits< Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > * | intval | ||
| ) |
far-field quadrature routine, which is based on precomputed values in order to quickly evaluate the integrand in the case that the far-field quadrature degree can be used
Definition at line 23 of file integrate0.hpp.
| void Bembel::DuffyTrick::integrate1 | ( | const LinearOperatorBase< Derived > & | LinOp, |
| const T & | super_space, | ||
| const ElementTreeNode & | e1, | ||
| int | rot1, | ||
| const ElementTreeNode & | e2, | ||
| int | rot2, | ||
| const ElementSurfacePoints & | ffield_qnodes1, | ||
| const ElementSurfacePoints & | ffield_qnodes2, | ||
| const Cubature & | Q, | ||
| Eigen::Matrix< typename LinearOperatorTraits< Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > * | intval | ||
| ) |
no-problem quadrature routine, elements are sufficiently far away from each other, but not far-field yet (this is just an isotropic tensor product quadrature!).
Definition at line 26 of file integrate1.hpp.
| void Bembel::DuffyTrick::integrate2 | ( | const LinearOperatorBase< Derived > & | LinOp, |
| const T & | super_space, | ||
| const ElementTreeNode & | e1, | ||
| int | rot1, | ||
| const ElementTreeNode & | e2, | ||
| int | rot2, | ||
| const ElementSurfacePoints & | ffield_qnodes1, | ||
| const ElementSurfacePoints & | ffield_qnodes2, | ||
| const Cubature & | Q, | ||
| Eigen::Matrix< typename LinearOperatorTraits< Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > * | intval | ||
| ) |
quadrature routine for identical elements
Information that map2element has to provide: xi; w; Chi(xi); dChidx(xi); dChidy(xi);
Definition at line 28 of file integrate2.hpp.
| void Bembel::DuffyTrick::integrate3 | ( | const LinearOperatorBase< Derived > & | LinOp, |
| const T & | super_space, | ||
| const ElementTreeNode & | e1, | ||
| int | rot1, | ||
| const ElementTreeNode & | e2, | ||
| int | rot2, | ||
| const ElementSurfacePoints & | ffield_qnodes1, | ||
| const ElementSurfacePoints & | ffield_qnodes2, | ||
| const Cubature & | Q, | ||
| Eigen::Matrix< typename LinearOperatorTraits< Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > * | intval | ||
| ) |
quadrature routine for the common edge case
Information that map2surface has to provide: xi; w; Chi(xi); dChidx(xi); dChidy(xi);
Definition at line 28 of file integrate3.hpp.
| void Bembel::DuffyTrick::integrate4 | ( | const LinearOperatorBase< Derived > & | LinOp, |
| const T & | super_space, | ||
| const ElementTreeNode & | e1, | ||
| int | rot1, | ||
| const ElementTreeNode & | e2, | ||
| int | rot2, | ||
| const ElementSurfacePoints & | ffield_qnodes1, | ||
| const ElementSurfacePoints & | ffield_qnodes2, | ||
| const Cubature & | Q, | ||
| Eigen::Matrix< typename LinearOperatorTraits< Derived >::Scalar, Eigen::Dynamic, Eigen::Dynamic > * | intval | ||
| ) |
quadrature routine for common vertex case.
Information that map2element has to provide: xi; w; Chi(xi); dChidx(xi); dChidy(xi);
Definition at line 28 of file integrate4.hpp.