Skip to content

Commit bbfa99d

Browse files
Merge pull request #826 from termi-official/do/krylovjl-fgmres
Add Krylovjl FGMRES
2 parents e35529a + 1498577 commit bbfa99d

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/LinearSolve.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ export LUFactorization, SVDFactorization, QRFactorization, GenericFactorization,
490490
export LinearSolveFunction, DirectLdiv!, show_algorithm_choices
491491

492492
export KrylovJL, KrylovJL_CG, KrylovJL_MINRES, KrylovJL_GMRES,
493-
KrylovJL_BICGSTAB, KrylovJL_LSMR, KrylovJL_CRAIGMR,
493+
KrylovJL_BICGSTAB, KrylovJL_LSMR, KrylovJL_CRAIGMR, KrylovJL_FGMRES,
494494
IterativeSolversJL, IterativeSolversJL_CG, IterativeSolversJL_GMRES,
495495
IterativeSolversJL_BICGSTAB, IterativeSolversJL_MINRES, IterativeSolversJL_IDRS,
496496
KrylovKitJL, KrylovKitJL_CG, KrylovKitJL_GMRES, KrylovJL_MINARES

src/iterative_wrappers.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ function KrylovJL_GMRES(args...; kwargs...)
6363
KrylovJL(args...; KrylovAlg = Krylov.gmres!, kwargs...)
6464
end
6565

66+
"""
67+
```julia
68+
KrylovJL_FGMRES(args...; gmres_restart = 0, window = 0, kwargs...)
69+
```
70+
71+
A generic FGMRES implementation for square non-Hermitian linear systems
72+
"""
73+
function KrylovJL_FGMRES(args...; kwargs...)
74+
KrylovJL(args...; KrylovAlg = Krylov.fgmres!, kwargs...)
75+
end
76+
6677
"""
6778
```julia
6879
KrylovJL_BICGSTAB(args...; kwargs...)

test/basictests.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,9 @@ end
390390
("Default", KrylovJL(kwargs...)),
391391
("CG", KrylovJL_CG(kwargs...)),
392392
("GMRES", KrylovJL_GMRES(kwargs...)),
393+
("FGMRES", KrylovJL_FGMRES(kwargs...)),
393394
("GMRES_prec", KrylovJL_GMRES(; precs, ldiv = false, kwargs...)),
395+
("FGMRES_prec", KrylovJL_FGMRES(; precs, ldiv = false, kwargs...)),
394396
# ("BICGSTAB",KrylovJL_BICGSTAB(kwargs...)),
395397
("MINRES", KrylovJL_MINRES(kwargs...)),
396398
("MINARES", KrylovJL_MINARES(kwargs...))

0 commit comments

Comments
 (0)