18#ifndef BEM_RWG_OPINT_SRC_QUAD_H
19#define BEM_RWG_OPINT_SRC_QUAD_H
47template <
typename TriangleQuadratureType = GaussTriangleQuadrature<2>,
typename ScalarKernelType = HGF>
54 "SrcQuadrature: `TriangleQuadratureType` must derive from `TriangleQuadratureBase<2>`"
58 "SrcQuadrature: `ScalarKernelType` must derive from `ScalarKernelBase<3>`"
71 ): tri_quad_(
tri_quad), kernel_(kernel) {};
93 {
return tri_quad_; };
101 {
return tri_quad_; };
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 quadrature over the source triangle for RWG-based BEM operators. Reference:
const TriangleQuadratureType & quadrature_object() const
Provides read-only access to the triangle quadrature object for inspection.
TriangleQuadratureType & quadrature_object()
Provides writable access to the triangle quadrature object.
SrcQuadrature(const TriangleQuadratureType tri_quad=GaussTriangleQuadrature< 2 >(), const ScalarKernelType kernel=HGF())
Constructs a SrcQuadrature with a specified 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 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.