Non-linear eigenvalue problems with GetDP and SLEPc: Eigenmode computations of frequency-dispersive photonic open structures
We present a framework to solve non-linear eigenvalue problems suitable for a Finite Element discretization. The implementation is based on the open-source finite element software GetDP and the open-source library SLEPc. As template examples, we propose and compare in detail different ways to address the numerical computation of the electromagnetic modes of frequency-dispersive objects. This is a non-linear eigenvalue problem involving a non-Hermitian operator. A classical finite element formulation is derived for five different solutions and solved using algorithms adapted to the large size of the resulting discrete problem. The proposed solutions are applied to the computation of the dispersion relation of a diffraction grating made of a Drude material. The important numerical consequences linked to the presence of sharp corners and sign-changing coefficients are carefully examined. For each method, the convergence of the eigenvalues with respect to the mesh refinement and the shape function order, as well as computation time and memory requirements are investigated. The open-source template model used to obtain the numerical results is provided. Details of the implementation of polynomial and rational eigenvalue problems in GetDP are given in the appendix.