18#ifndef BEM_RWG_PROJ_SINGLE_LAYER_I
19#define BEM_RWG_PROJ_SINGLE_LAYER_I
30template <
typename SrcIntegratorType>
43 src_integrator_.set_compute_terms(
true,
false);
63template <
typename SrcIntegratorType>
76 src_integrator_.set_compute_terms(
true,
false);
84template <
typename SrcIntegratorType>
97 src_integrator_.set_compute_terms(
false,
true);
110template <
typename SrcIntegratorType>
EigMatXN< Complex, 1 > compute(const Complex k, ConstEigRef< EigMatNX< Float, 3 > > obs_points, const Triangle< 3 > &src_tri) override
Computes the gradient of the scalar single-layer projector.
static Float normalization(const Triangle< 3 > &tri)
Defines the normalization factor for the pulse function associated with a given triangle.
static EigRowVecN< Float, 3 > normalization(const Triangle< 3 > &tri)
Defines the normalization factor for each RWG function associated with a given triangle.
EigMatXN< Complex, 1 > compute(const Complex k, ConstEigRef< EigMatNX< Float, 3 > > obs_points, const Triangle< 3 > &src_tri) override
Computes the scalar single-layer projector.
EigMatXN< Complex, 3 > compute(const Complex k, ConstEigRef< EigMatNX< Float, 3 > > obs_points, const Triangle< 3 > &src_tri) override
Computes the vector hypersingular projector.
EigMatXN< Complex, 3 > compute(const Complex k, ConstEigRef< EigMatNX< Float, 3 > > obs_points, const Triangle< 3 > &src_tri) override
Computes the vector single-layer projector.
Eigen::Matrix< T, Eigen::Dynamic, N > EigMatXN
Fixed-width matrix with N columns containing type T.
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.