In the solution of sequences of linear systems $$A_ix_i=b_i\quad\text{for}\quad i=1,2,\dots$$ with Krylov subspace methods, data can be recycled from already solved linear systems in order to speed up the computation of subsequent linear systems (complementary to preconditioning). For the analysis of recycling strategies I developed in my PhD thesis and which are implemented in KryPy, I'm looking for interesting cases of sequences of linear systems that satisfy the following conditions:
- The (possibly preconditioned) matrices exhibit only a few eigenvalues close to zero that are separated from the remaining spectrum. Often, the presence of a few eigenvalues of small magnitude is responsible for an initial slow convergence of CG, MINRES or GMRES.
- The matrices are sparse.
- The problem can be boiled down to small scale (dim<1000).
- The matrices and/or the right hand sides of the linear systems may change but the difference should be within limits.
- The problem can be implemented in a few lines of code, preferably based on well-known Python packages such as NumPy, SciPy, FEniCS, PyAMG, ...
- Symmetric/Hermitian matrices would be nice but are not a must.
Candidates for such sequences are time-dependent problems, nonlinear problems (e.g. with Newton's method), parameter-dependent problems, shifted linear systems, ...
One application that satisfies the above criteria and benefits from recycling Krylov solvers are nonlinear Schrödinger equations, see this paper on arxiv. I'm now looking for a simpler model problem in order to demonstrate the mathematical idea without being computationally cumbersome.