@@ -15,19 +15,30 @@ function KrylovJL(args...; KrylovAlg = Krylov.gmres!,
1515 args, kwargs)
1616end
1717
18- KrylovJL_CG (args... ; kwargs... ) = KrylovJL (args... ; KrylovAlg = Krylov. cg!, kwargs... )
19- KrylovJL_GMRES (args... ; kwargs... ) = KrylovJL (args... ; KrylovAlg = Krylov. gmres!, kwargs... )
20- function KrylovJL_BICGSTAB (args... ; kwargs... )
21- KrylovJL (args... ; KrylovAlg = Krylov. bicgstab!, kwargs... )
18+ function KrylovJL_CG (args... ; kwargs... )
19+ KrylovJL (args... ; KrylovAlg = Krylov. cg!, kwargs... )
2220end
21+
2322function KrylovJL_MINRES (args... ; kwargs... )
2423 KrylovJL (args... ; KrylovAlg = Krylov. minres!, kwargs... )
2524end
2625
26+ function KrylovJL_GMRES (args... ; kwargs... )
27+ KrylovJL (args... ; KrylovAlg = Krylov. gmres!, kwargs... )
28+ end
29+
30+ function KrylovJL_BICGSTAB (args... ; kwargs... )
31+ KrylovJL (args... ; KrylovAlg = Krylov. bicgstab!, kwargs... )
32+ end
33+
2734function KrylovJL_LSMR (args... ; kwargs... )
2835 KrylovJL (args... ; KrylovAlg = Krylov. lsmr!, kwargs... )
2936end
3037
38+ function KrylovJL_CRAIGMR (args... ; kwargs... )
39+ KrylovJL (args... ; KrylovAlg = Krylov. craigmr!, kwargs... )
40+ end
41+
3142function get_KrylovJL_solver (KrylovAlg)
3243 KS = if (KrylovAlg === Krylov. lsmr!)
3344 Krylov. LsmrSolver
@@ -89,6 +100,10 @@ function get_KrylovJL_solver(KrylovAlg)
89100 Krylov. QmrSolver
90101 elseif (KrylovAlg === Krylov. gmres!)
91102 Krylov. GmresSolver
103+ elseif (KrylovAlg === Krylov. fgmres!)
104+ Krylov. FgmresSolver
105+ elseif (KrylovAlg === Krylov. gpmr!)
106+ Krylov. GpmrSolver
92107 elseif (KrylovAlg === Krylov. fom!)
93108 Krylov. FomSolver
94109 end
@@ -105,6 +120,8 @@ function init_cacheval(alg::KrylovJL, A, b, u, Pl, Pr, maxiters::Int, abstol, re
105120 solver = if (alg. KrylovAlg === Krylov. dqgmres! ||
106121 alg. KrylovAlg === Krylov. diom! ||
107122 alg. KrylovAlg === Krylov. gmres! ||
123+ alg. KrylovAlg === Krylov. fgmres! ||
124+ alg. KrylovAlg === Krylov. gpmr! ||
108125 alg. KrylovAlg === Krylov. fom!)
109126 KS (A, b, memory)
110127 elseif (alg. KrylovAlg === Krylov. minres! ||
0 commit comments