18#ifndef BEM_RWG_INTEQ_NMFIE_H
19#define BEM_RWG_INTEQ_NMFIE_H
57template <
typename MatrixType = EigenDenseMatrix<Complex>>
98 if (!base::flip_normals_)
125 Tr.scale(
J * two_pi *
f * eps + sigma);
127 if (base::flip_normals_)
170 MatrixType
inc (base::obs_mesh_.num_edges(),
exc.num_excitations());
173 if (!base::flip_normals_)
226 T.scale(-(
J * two_pi *
f * eps + sigma));
Class defining a general material with a constant (zero or non-zero) electrical conductivity and real...
virtual Complex eps() const
Returns the permittivity.
virtual Complex k(const Float f) const
Returns the frequency-dependent complex wavenumber.
virtual Float sigma() const
Returns the electrical conductivity.
Class for generating excitation matrices for RWG-based BEM systems with RWG testing functions.
Class for generating operator matrices for RWG observation and source functions.
Base class defining an RWG-based integral equation.
Class defining the RWG-based NMFIE.
MatrixType exc_matrix(const Float f, const Material &material, ExcitationBase< 3 > &exc)
Returns the excitation matrix for a given excitation operator.
MatrixType m_matrix(const Float f, const Material &material)
Computes the operator matrix associated with the magnetic surface current density.
MatrixType id_matrix()
Returns the identity operator matrix associated with the electric surface current density.
MatrixType m_projector(const Float f, const Material &material, const PointCloud< 3 > &points)
Returns the projector matrix associated with the magnetic surface current density.
MatrixType j_matrix(const Float f, const Material &material)
Computes the operator matrix associated with the electric surface current density.
void set_operators(const RotVectorHypersingularOp<> &op_Tr, const RotVectorDoubleLayerPvOp<> &op_Kr)
Sets custom operators for the Nmfie object.
MatrixType j_projector(const Float f, const Material &material, const PointCloud< 3 > &points)
Returns the projector matrix associated with the electric surface current density.
void assemble(MatrixBase< Complex > &mat, OperatorType op, const Complex k)
Assembles the operator matrix for a given operator object and source and observation meshes.
const Complex J
Imaginary unit.
Eigen::Matrix< T, 1, Eigen::Dynamic > EigRowVec
Dynamic-size row vector containing type T.
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.
Namespace for RWG-based BEM functionality.