18#ifndef BEM_RWG_OPINT_SRC_QUAD_I
19#define BEM_RWG_OPINT_SRC_QUAD_I
28template <
typename TriangleQuadratureType,
typename ScalarKernelType>
45 tri_quad_.compute_points_weights(
src_tri, eval);
48 points_3d.topRows(2) = tri_quad_.points();
53 if (base::compute_g_terms_)
62 ).array() * tri_quad_.weights().array();
64 result.rs_g.col(
ro) = tri_quad_.points() *
gw.transpose();
68 if (base::compute_grad_g_terms_)
74 result.grad_g.col(
ro) = kernel_.compute_grad(
76 ) * tri_quad_.weights().transpose();
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.
Eigen::Matrix< T, N, Eigen::Dynamic > EigMatNX
Fixed-height matrix with N rows containing type T.
Namespace for RWG-based BEM functionality.
Data structure to hold the results of integration over the source triangle.