This julia
package provides a proof-of-concept implementation of the multi-preconditioned GMRES iterative solution method for shifted systems
of linear problems (see Bakhos T. et al., Multipreconditioned GMRES for Shifted Systems).
As of now, it is still in an early experimental stage.
Note that some Krylov-based preconditioning solves are currently not compatible with certain preconditioning techniques provided by ExtendableSparse.jl
and IncompleteLU.jl
.
Specifically, an in-place ldiv!
routine is missing in jacobi.jl
of ExtendableSparse.jl
which is required by both the GMRES and BiCGStabl solvers as provided by IterativeSolvers.jl
.
Additionally, IncompleteLU
lacks support for complex matrices which can be fixed by changing
function append_col!(A::SparseMatrixCSC{Tv}, y::SparseVectorAccumulator{Tv}, j::Int, drop::Tv, scale::Tv = one(Tv)) where {Tv}
in sparse_vector_accumulator.jl
to
function append_col!(A::SparseMatrixCSC{Tv}, y::SparseVectorAccumulator{Tv}, j::Int, drop::Td, scale::Tv = one(Tv)) where {Tv,Td}