18#ifndef BEM_RWG_EXC_INF_GAP_H
19#define BEM_RWG_EXC_INF_GAP_H
31template <u
int8_t dim>
class Triangle;
83 if (segments_.size() != amp_.cols())
85 throw std::invalid_argument(
86 "InfinitesimalGap: `segments` and `amp` must have the same number of columns."
120 const std::vector<EigMatNX<Float, 3>> segments_;
Base class for generating excitation coefficients for RWG-based BEM systems.
Class for setting infinitesimal gap excitation coefficients for RWG-based BEM systems.
Index num_excitations() const override
Returns the number of excitations (right-hand sides) to be generated.
InfinitesimalGap(const std::vector< EigMatNX< Float, 3 > > &segments, ConstEigRef< EigRowVec< Complex > > amp, const Float tol=INF_GAP_DEFAULT_TOL)
Constructs an InfinitesimalGap object along a given set of line segments.
EigMatNX< Complex, 3 > compute(const Complex k, const Triangle< 3 > &obs_tri) override
Computes the gap excitation coefficients.
const Eigen::Ref< const EigObj > ConstEigRef
Read-only reference to an Eigen object.
double Float
Floating point number.
std::complex< Float > Complex
Complex floating point number.
Eigen::Matrix< T, N, 1 > EigColVecN
Fixed-size column vector of size N containing type T.
std::size_t Index
Unsigned integer type for indices and container sizes.
Namespace for RWG-based BEM functionality.
const Float INF_GAP_DEFAULT_TOL
Default tolerance used to identify mesh edges to associate with the infinitesimal gap coordinates.
Primary namespace for the OpenBEM library.