NiHu  2.0
laplace_3d_nearly_singular_integrals.hpp File Reference

Nearly singular integrals for the Laplace kernels. More...

#include <boost/math/constants/constants.hpp>
#include "../core/formalism.hpp"
#include "../core/nearly_singular_integral.hpp"
#include "../core/nearly_singular_planar_constant_collocation_shortcut.hpp"
#include "../util/math_functions.hpp"
#include "field_type_helpers.hpp"
#include "laplace_kernel.hpp"
#include "nearly_singular_collocational.hpp"
#include "plane_element_helper.hpp"
#include "quadrature_store_helper.hpp"
Include dependency graph for laplace_3d_nearly_singular_integrals.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  NiHu::laplace_3d_SLP_collocation_constant_plane_nearly_singular
 Nearly singular collocational integral of the 3D Laplace SLP kernel over planes. More...
 
class  NiHu::laplace_3d_DLP_collocation_constant_plane_nearly_singular
 
class  NiHu::laplace_3d_DLPt_collocation_constant_plane_nearly_singular
 collocational near.sing. integral of the laplace 3D DLPt kernel over constant plane elements More...
 
class  NiHu::laplace_3d_HSP_collocation_constant_plane_nearly_singular
 
class  NiHu::nearly_singular_integral< laplace_3d_SLP_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&is_constant_tria< TrialField >::value >::type >
 Class enabling the specialisation for 3D SLP Laplace kernel. More...
 
class  NiHu::nearly_singular_integral< laplace_3d_SLP_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&!is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_integral< laplace_3d_DLP_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_integral< laplace_3d_DLP_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&!is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_integral< laplace_3d_DLPt_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_integral< laplace_3d_DLPt_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&!is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_integral< laplace_3d_HSP_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_integral< laplace_3d_HSP_kernel, TestField, TrialField, typename std::enable_if< is_collocational< TestField, TrialField >::value &&!is_constant_tria< TrialField >::value >::type >
 
class  NiHu::nearly_singular_planar_constant_collocation_shortcut< laplace_3d_SLP_kernel, Elem >
 
class  NiHu::nearly_singular_planar_constant_collocation_shortcut< laplace_3d_DLP_kernel, Elem >
 
class  NiHu::nearly_singular_planar_constant_collocation_shortcut< laplace_3d_DLPt_kernel, Elem >
 
class  NiHu::nearly_singular_planar_constant_collocation_shortcut< laplace_3d_HSP_kernel, Elem >
 

Detailed Description

Nearly singular integrals for the Laplace kernels.

This file contains the specialised implementations of some nearly singular integrals for the Laplace kernel and its normal derivatives. These include SLP, DLP, DLPt, and HSP kernels.

For planar elements, the method of integration generally relies on a planar transformation that transforms the element to plane parallel with the x-y plane. Then, a semi-analytical integration is performed in polar coordinates. The integration along the radius is evaluated analytically, while the integration with respect to the angle is performed using quadratures. The latter integration is performed by subdividing the planar element into plane triangular domains of integration.

The file also contains the shortcut classes that enable the specialised implementations for different kernels and element types.

Definition in file laplace_3d_nearly_singular_integrals.hpp.