Description
Hi,
I'm working on a package called LightKrylov
. It is quite similar to Krylov.jl
except that it is developed for Fortran. The philosophy is quite the same: provide some abstract implementations of standard Krylov processes and Krylov-based solvers which people can use simply by extending the abstract vector and linear operator types to accommodate for their own definition/data structure.
I'd like to say that Krylov.jl
served as the inspiration, but to fairly honest I found about it quite recently. Nonetheless, I'd like to congratulates you guys. It looks like an awesome package! In comparison, LightKrylov
is nowhere as feature-complete yet. For the moment, we focused on the most widely used techniques which, in my opinion are:
- Krylov processes : Hermitian Lanczos, Arnoldi and Golub-Kahan.
- Krylov solver : GMRES (and FGMRES) for nonsymmetric systems and Conjugate Gradient for sym. pos. def. ones.
When looking at your code base, I couldn't help but notice that you are not doing any kind of re-orthogonalization (whether full or partial) of the Krylov bases for the symmetric and non-symmetric Lanczos factorizations. I was wondering if there are any particular reasons for that? Don't your implementations suffer from a gradual loss of (bi-) orthogonality as the Krylov process proceeds?