18#ifndef BEM_RWG_OPINT_OBS_QUAD_I
19#define BEM_RWG_OPINT_OBS_QUAD_I
31template <
typename TriangleQuadratureType,
typename SrcIntegratorType>
42 src_integrator_.set_compute_terms(
true,
false);
46 tri_quad_.compute_points_weights(
obs_tri, eval);
49 src_integrator_.set_compute_terms(
50 base::compute_g_term_ || base::compute_rs_g_terms_,
51 base::compute_grad_g_terms_ || base::compute_rot_grad_g_terms_
57 if (base::compute_g_term_)
60 if (base::compute_rs_g_terms_)
63 if (base::compute_grad_g_terms_)
66 if (base::compute_rot_grad_g_terms_)
74template <
typename TriangleQuadratureType,
typename SrcIntegratorType>
83template <
typename TriangleQuadratureType,
typename SrcIntegratorType>
119template <
typename TriangleQuadratureType,
typename SrcIntegratorType>
148template <
typename TriangleQuadratureType,
typename SrcIntegratorType>
158 tri_quad_.points().row(0).array() * tri_quad_.points().row(1).array()
161 tri_quad_.points().row(0).array() * tri_quad_.points().row(2).array()
164 tri_quad_.points().row(1).array() * tri_quad_.points().row(2).array()
168 tri_quad_.points().row(0).array() * tri_quad_.points().row(0).array()
171 tri_quad_.points().row(1).array() * tri_quad_.points().row(1).array()
174 tri_quad_.points().row(2).array() * tri_quad_.points().row(2).array()
Class for quadrature over the observation triangle for RWG-based BEM operators. Reference: O....
ObsResult integrate(const Complex k, const Triangle< 3 > &obs_tri, const Triangle< 2 > &src_tri) override
Computes the integral over the observation triangle.
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, 1, N > EigRowVecN
Fixed-size row vector of size N containing type T.
Namespace for RWG-based BEM functionality.
Data structure to hold the results of integration over the observation triangle.
Data structure to hold the results of integration over the source triangle.