Eigenmode analysis#

3D cavity eigenmode solver#

Resonant modes are computed from the discrete curl-curl generalised eigenvalue problem

\[ \mathbf C^{\mathsf T} \mathbf M_\mu^{-1} \mathbf C\, \hat e = \omega^2\, \mathbf M_\varepsilon\, \hat e \]

(solver/eigenmode_3d.py), the standard FIT eigenformulation [2, 3]. PEC walls are imposed by degree-of-freedom elimination, which also removes the gradient null space for all-PEC cavities (DD-009); PMC walls are the natural boundary condition (DD-065).

The default backend is ARPACK shift-invert Lanczos (scipy.sparse.linalg.eigsh with a SuperLU factorisation of \(A - \sigma B\); DD-007), i.e. the implicitly restarted Arnoldi/Lanczos method of Lehoucq, Sorensen and Yang [55]. The shift \(\sigma\) is auto-estimated boundary-condition-aware, an in-house heuristic (DD-010).

Two experimental backends exist (DD-033):

  • a CHOLMOD Cholesky path with tree-cotree gauging to eliminate the gradient null space; tree-cotree/spanning-tree gauging of curl-curl systems is established FEM practice, e.g. Albanese and Rubinacci [56] and Manges and Cendes [57]; CHOLMOD is [58];

  • an AMG-preconditioned path via pyamg [59], documented as not recommended (scalar smoothed-aggregation AMG does not achieve mesh-independent convergence on the vector curl-curl operator — a known limitation in the literature on AMG for Maxwell problems).

Quality factors of eigenmodes are evaluated with the perturbative wall-loss route (see conductor losses) [16, 38].

2D mode solver#

The port-plane 2D eigenmode machinery (curl-curl restriction, TEM/QTEM Laplace) is described in the ports chapter; it shares the matrices and the ARPACK backend with the 3D solver.