Skip to content

Commit 3c0df88

Browse files
committed
Add MinAres solver to iterative wrappers
1 parent de8b1c1 commit 3c0df88

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/iterative_wrappers.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,17 @@ function KrylovJL_CRAIGMR(args...; kwargs...)
9696
KrylovJL(args...; KrylovAlg = Krylov.craigmr!, kwargs...)
9797
end
9898

99+
"""
100+
```julia
101+
KrylovJL_MINARES(args...; kwargs...)
102+
```
103+
104+
A generic MINARES implementation for Hermitian linear systems
105+
"""
106+
function KrylovJL_MINARES(args...; kwargs...)
107+
KrylovJL(args...; KrylovAlg = Krylov.minares!, kwargs...)
108+
end
109+
99110
function get_KrylovJL_solver(KrylovAlg)
100111
KS = if (KrylovAlg === Krylov.lsmr!)
101112
Krylov.LsmrSolver
@@ -163,6 +174,8 @@ function get_KrylovJL_solver(KrylovAlg)
163174
Krylov.GpmrSolver
164175
elseif (KrylovAlg === Krylov.fom!)
165176
Krylov.FomSolver
177+
elseif (KrylovAlg === Krylov.minares!)
178+
Krylov.MinaresSolver
166179
else
167180
error("Invalid Krylov method detected")
168181
end

test/basictests.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,8 @@ end
274274
("GMRES", KrylovJL_GMRES(kwargs...)),
275275
("GMRES_prec", KrylovJL_GMRES(; precs, ldiv = false, kwargs...)),
276276
# ("BICGSTAB",KrylovJL_BICGSTAB(kwargs...)),
277-
("MINRES", KrylovJL_MINRES(kwargs...))
277+
("MINRES", KrylovJL_MINRES(kwargs...)),
278+
("MINARES", KrylovJL_MINARES(kwards...))
278279
)
279280
for (name, algorithm) in algorithms
280281
@testset "$name" begin

0 commit comments

Comments
 (0)