18#ifndef BEM_RWG_OPINT_OBS_QUAD_H
19#define BEM_RWG_OPINT_OBS_QUAD_H
48template <
typename TriangleQuadratureType = GaussTriangleQuadrature<3>,
typename SrcIntegratorType = SrcStrategic<>>
55 "ObsQuadrature: `TriangleQuadratureType` must derive from `TriangleQuadratureBase<3>`"
58 std::is_base_of<SrcIntegratorBase, SrcIntegratorType>::value,
59 "ObsQuadrature: `SrcIntegratorType` must derive from `SrcIntegratorBase`"
94 {
return tri_quad_; };
102 {
return tri_quad_; };
110 {
return src_integrator_; };
118 {
return src_integrator_; };
Base class for integration over the observation triangle for RWG-based BEM operators.
Class for quadrature over the observation triangle for RWG-based BEM operators. Reference: O....
TriangleQuadratureType & quadrature_object()
Provides writable access to the triangle quadrature object.
const SrcIntegratorType & src_integrator() const
Provides read-only access to the source integrator for inspection.
ObsResult integrate(const Complex k, const Triangle< 3 > &obs_tri, const Triangle< 2 > &src_tri) override
Computes the integral over the observation triangle.
const TriangleQuadratureType & quadrature_object() const
Provides read-only access to the triangle quadrature object for inspection.
SrcIntegratorType & src_integrator()
Provides writable access to the source integrator object.
ObsQuadrature(const TriangleQuadratureType tri_quad=GaussTriangleQuadrature< 3 >(), const SrcIntegratorType src_integrator=SrcStrategic<>())
Constructs an ObsQuadrature with a specified triangle quadrature 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 observation triangle.
Data structure to hold the results of integration over the source triangle.