18#ifndef BEM_RWG_OPINT_SRC_SINGULARITY_H
19#define BEM_RWG_OPINT_SRC_SINGULARITY_H
51template <
typename TriangleQuadratureType = GaussTriangleQuadrature<2>,
typename ScalarKernelType = SingularitySubtractedTaylorHGF>
58 "SrcSingularity: `TriangleQuadratureType` must derive from `TriangleQuadratureBase<2>`"
62 "SrcSingularity: `ScalarKernelType` must derive from `ScalarKernelBase<3>`"
97 {
return src_quad_.quadrature_object(); };
105 {
return src_quad_.quadrature_object(); };
115 void compute_integral_terms(
Class for computing the scalar Green's function for homogeneous, linear, and isotropic materials,...
Base class for integration over the source triangle for RWG-based BEM operators.
Class for 2D quadrature over the source triangle with singularity treatment for RWG-based BEM operato...
TriangleQuadratureType & quadrature_object()
Provides writable access to the triangle quadrature object.
SrcResult integrate(const Complex k, const Triangle< 2 > &src_tri, ConstEigRef< EigMatNX< Float, 3 > > r_obs) override
Computes the integral over the source triangle.
const TriangleQuadratureType & quadrature_object() const
Provides read-only access to the triangle quadrature object for inspection.
SrcSingularity(const TriangleQuadratureType tri_quad=GaussTriangleQuadrature< 2 >(), const ScalarKernelType kernel=SingularitySubtractedTaylorHGF())
Constructs a SrcSingularity with a specified triangle quadrature object.
const Eigen::Ref< const EigObj > ConstEigRef
Read-only reference to an Eigen object.
std::complex< Float > Complex
Complex floating point number.
Eigen::Matrix< T, N, 1 > EigColVecN
Fixed-size column vector of size N containing type T.
Namespace for RWG-based BEM functionality.
Data structure to hold the results of integration over the source triangle.