Skip to content

Commit 207585b

Browse files
committed
use SciMLMessage
1 parent edd41c9 commit 207585b

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
@@ -60,23 +60,26 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
6060

6161
iterable = if alg.generate_iterator === IterativeSolvers.cg_iterator!
6262
!LinearSolve._isidentity_struct(Pr) &&
63-
@warn "$(alg.generate_iterator) doesn't support right preconditioning"
63+
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
64+
verbose, :no_right_preconditioning, :performance)
6465
alg.generate_iterator(u, A, b, Pl;
6566
kwargs...)
6667
elseif alg.generate_iterator === IterativeSolvers.gmres_iterable!
6768
alg.generate_iterator(u, A, b; Pl = Pl, Pr = Pr, restart = restart,
6869
kwargs...)
6970
elseif alg.generate_iterator === IterativeSolvers.idrs_iterable!
7071
!!LinearSolve._isidentity_struct(Pr) &&
71-
@warn "$(alg.generate_iterator) doesn't support right preconditioning"
72+
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
73+
verbose, :no_right_preconditioning, :performance)
7274
history = IterativeSolvers.ConvergenceHistory(partial = true)
7375
history[:abstol] = abstol
7476
history[:reltol] = reltol
7577
IterativeSolvers.idrs_iterable!(history, u, A, b, s, Pl, abstol, reltol, maxiters;
7678
alg.kwargs...)
7779
elseif alg.generate_iterator === IterativeSolvers.bicgstabl_iterator!
7880
!!LinearSolve._isidentity_struct(Pr) &&
79-
@warn "$(alg.generate_iterator) doesn't support right preconditioning"
81+
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
82+
verbose, :no_right_preconditioning, :performance)
8083
alg.generate_iterator(u, A, b, alg.args...; Pl = Pl,
8184
abstol = abstol, reltol = reltol,
8285
max_mv_products = maxiters * 2,
@@ -107,14 +110,13 @@ function SciMLBase.solve!(cache::LinearCache, alg::IterativeSolversJL; kwargs...
107110
end
108111
purge_history!(cache.cacheval, cache.u, cache.b)
109112

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

119121
resid = cache.cacheval isa IterativeSolvers.IDRSIterable ? cache.cacheval.R :
120122
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)