I am trying to solve an eigenvalue problem, and I know the eigenvalue solver “solvers.PINVIT” is available as in 2.4.1 Maxwell eigenvalue problem — NGS-Py 6.2.1907 documentation. May I know that if there is any other eigenvalue solver available in NGSolve? Thanks in advance for any suggestion.
Dear S. Yang,
there are many eigenvalue solvers implemented within NGSolve:
There is an Arnoldi Solver, you can find an example here,
There is an example on how to code the Knyazev PINVT algorithm for the Poisson equation here,
As you pointed out there is an example on how to use PINVT for the Maxwell eigenvalue problem, here.
Furthermore, you can check here for a list of eigenvalue solvers algorithms implemented in Python (again Arnoldi and PINVT).
Last it is possible to work with SLEPc now that NGSolve supports PETSc, in particular, this gives you access to a very wide range of eigenvalue solvers, among those: Power Iteration, Inverse Iteration, RQI, Subspace Iteration, Arnoldi, Lanczos, Krylov-Schur, and Jacobi-Davidson (full list here). If you want to use the native ngs2petsc module you can find examples here and here, but I would suggest you to use the NGSOLVE PETSC interface ngs-petsc with petsc4py, more info on the dedicated repo.
Best,
Umberto