Skip to content

Commit 476f0da

Browse files
committed
use SciMLMessage
1 parent 8341ae3 commit 476f0da

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

ext/LinearSolveIterativeSolversExt.jl

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,26 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
5656

5757
iterable = if alg.generate_iterator === IterativeSolvers.cg_iterator!
5858
!LinearSolve._isidentity_struct(Pr) &&
59-
@warn "$(alg.generate_iterator) doesn't support right preconditioning"
59+
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
60+
verbose, :no_right_preconditioning, :performance)
6061
alg.generate_iterator(u, A, b, Pl;
6162
kwargs...)
6263
elseif alg.generate_iterator === IterativeSolvers.gmres_iterable!
6364
alg.generate_iterator(u, A, b; Pl = Pl, Pr = Pr, restart = restart,
6465
kwargs...)
6566
elseif alg.generate_iterator === IterativeSolvers.idrs_iterable!
6667
!!LinearSolve._isidentity_struct(Pr) &&
67-
@warn "$(alg.generate_iterator) doesn't support right preconditioning"
68+
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
69+
verbose, :no_right_preconditioning, :performance)
6870
history = IterativeSolvers.ConvergenceHistory(partial = true)
6971
history[:abstol] = abstol
7072
history[:reltol] = reltol
7173
IterativeSolvers.idrs_iterable!(history, u, A, b, s, Pl, abstol, reltol, maxiters;
7274
alg.kwargs...)
7375
elseif alg.generate_iterator === IterativeSolvers.bicgstabl_iterator!
7476
!!LinearSolve._isidentity_struct(Pr) &&
75-
@warn "$(alg.generate_iterator) doesn't support right preconditioning"
77+
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
78+
verbose, :no_right_preconditioning, :performance)
7679
alg.generate_iterator(u, A, b, alg.args...; Pl = Pl,
7780
abstol = abstol, reltol = reltol,
7881
max_mv_products = maxiters * 2,
@@ -103,14 +106,13 @@ function SciMLBase.solve!(cache::LinearCache, alg::IterativeSolversJL; kwargs...
103106
end
104107
purge_history!(cache.cacheval, cache.u, cache.b)
105108

106-
cache.verbose && println("Using IterativeSolvers.$(alg.generate_iterator)")
109+
@SciMLMessage("Using IterativeSolvers.$(alg.generate_iterator)", cache.verbose, :using_IterativeSolvers, :numerical)
107110
i = 0
108111
for iter in enumerate(cache.cacheval)
109112
i += 1
110-
cache.verbose && println("Iter: $(iter[1]), residual: $(iter[2])")
113+
@SciMLMessage("Iter: $(iter[1]), residual: $(iter[2])", cache.verbose, :IterativeSolvers_iterations)
111114
# TODO inject callbacks KSP into solve! cb!(cache.cacheval)
112115
end
113-
cache.verbose && println()
114116

115117
resid = cache.cacheval isa IterativeSolvers.IDRSIterable ? cache.cacheval.R :
116118
cache.cacheval.residual

src/iterative_wrappers.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,15 +290,17 @@ function SciMLBase.solve!(cache::LinearCache, alg::KrylovJL; kwargs...)
290290

291291
if cache.cacheval isa Krylov.CgWorkspace
292292
N !== I &&
293-
@warn "$(alg.KrylovAlg) doesn't support right preconditioning."
293+
@SciMLMessage("$(alg.KrylovAlg) doesn't support right preconditioning.",
294+
verbose, :no_right_preconditioning, :performance)
294295
Krylov.krylov_solve!(args...; M, kwargs...)
295296
elseif cache.cacheval isa Krylov.GmresWorkspace
296297
Krylov.krylov_solve!(args...; M, N, restart = alg.gmres_restart > 0, kwargs...)
297298
elseif cache.cacheval isa Krylov.BicgstabWorkspace
298299
Krylov.krylov_solve!(args...; M, N, kwargs...)
299300
elseif cache.cacheval isa Krylov.MinresWorkspace
300301
N !== I &&
301-
@warn "$(alg.KrylovAlg) doesn't support right preconditioning."
302+
@SciMLMessage("$(alg.KrylovAlg) doesn't support right preconditioning.",
303+
verbose, :no_right_preconditioning, :performance)
302304
Krylov.krylov_solve!(args...; M, kwargs...)
303305
else
304306
Krylov.krylov_solve!(args...; kwargs...)

0 commit comments

Comments
 (0)