OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
bem::rwg::InfinitesimalGap Class Reference

Class for setting infinitesimal gap excitation coefficients for RWG-based BEM systems. More...

#include <inf_gap.hpp>

+ Inheritance diagram for bem::rwg::InfinitesimalGap:

Detailed Description

Class for setting infinitesimal gap excitation coefficients for RWG-based BEM systems.

Definition at line 52 of file inf_gap.hpp.

Constructor & Destructor Documentation

◆ InfinitesimalGap()

bem::rwg::InfinitesimalGap::InfinitesimalGap ( const std::vector< EigMatNX< Float, 3 > > &  segments,
ConstEigRef< EigRowVec< Complex > >  amp,
const Float  tol = INF_GAP_DEFAULT_TOL 
)
inline

Constructs an InfinitesimalGap object along a given set of line segments.

Parameters
[in]segments- Coordinates of the line segments along which the gap excitations are set.
[in]amp- Complex amplitudes of each gap excitation.
[in]tol- Tolerance used to find the mesh edges associated with the line segments (optional).

Each column of pos_start and pos_stop (and each entry of amp) corresponds to a different excitation. Multiple columns imply multiple right-hand sides to solve. The excitations are placed along the RWG edges that lie along the line segments, within tol, i.e., those RWG edges where both vertices of the RWG edge lie on the line segments. Therefore, segments should be defined such that the lines connecting them run along existing mesh edges. IMPORTANT: if the line segments are supposed to define a closed loop, then the first coordinate must explicitly be re-added as the last coordinate, otherwise the loop will not be closed by default. The InfinitesimalGap object is agnostic to which field (electric or magnetic) is being considered. In the case of an electric field, it represents a voltage source in the infinitesimal gap between the two triangles associated with all the RWG edge(s). If the testing function is nxRWG rather than RWG, then a magnetic field gap excitation along a closed contour of nxRWG edges could be used to represent a current source.

Definition at line 74 of file inf_gap.hpp.

Member Function Documentation

◆ num_excitations()

Index bem::rwg::InfinitesimalGap::num_excitations ( ) const
inlineoverridevirtual

Returns the number of excitations (right-hand sides) to be generated.

Returns
Number of excitations (right-hand sides).

Implements bem::rwg::ExcitationBase< 3 >.

Definition at line 97 of file inf_gap.hpp.

◆ compute()

EigMatNX< Complex, 3 > bem::rwg::InfinitesimalGap::compute ( const Complex  k,
const Triangle< 3 > &  obs_tri 
)
overridevirtual

Computes the gap excitation coefficients.

Parameters
[in]k- Complex wavenumber (ignored).
[in]obs_tri- Observation triangle in the local coordinate system of src_tri.
Returns
Excitation coefficient matrix, where each row corresponds to each edge of obs_tri, and each column corresponds to each excitation when there is more than one excitation (i.e., more than one right-hand side).

For each edge of obs_tri, checks if that edge lies on the line segment(s) defined by pos_start and pos_stop. If yes, the excitation amplitude, halved, is assigned. If not, then that edge is skipped. The amplitude is halved because there will be an equal contribution from the other triangle associated with the same edge. If the excitation is placed along a half-edge so that there is only one triangle associated with the half-RWG, then the physical interpretation of such an excitation is left up to the user.

Implements bem::rwg::ExcitationBase< 3 >.

Definition at line 28 of file inf_gap.cpp.


The documentation for this class was generated from the following files: