@@ -60,23 +60,26 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
60
60
61
61
iterable = if alg. generate_iterator === IterativeSolvers. cg_iterator!
62
62
! 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 )
64
65
alg. generate_iterator (u, A, b, Pl;
65
66
kwargs... )
66
67
elseif alg. generate_iterator === IterativeSolvers. gmres_iterable!
67
68
alg. generate_iterator (u, A, b; Pl = Pl, Pr = Pr, restart = restart,
68
69
kwargs... )
69
70
elseif alg. generate_iterator === IterativeSolvers. idrs_iterable!
70
71
! !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 )
72
74
history = IterativeSolvers. ConvergenceHistory (partial = true )
73
75
history[:abstol ] = abstol
74
76
history[:reltol ] = reltol
75
77
IterativeSolvers. idrs_iterable! (history, u, A, b, s, Pl, abstol, reltol, maxiters;
76
78
alg. kwargs... )
77
79
elseif alg. generate_iterator === IterativeSolvers. bicgstabl_iterator!
78
80
! !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 )
80
83
alg. generate_iterator (u, A, b, alg. args... ; Pl = Pl,
81
84
abstol = abstol, reltol = reltol,
82
85
max_mv_products = maxiters * 2 ,
@@ -107,14 +110,13 @@ function SciMLBase.solve!(cache::LinearCache, alg::IterativeSolversJL; kwargs...
107
110
end
108
111
purge_history! (cache. cacheval, cache. u, cache. b)
109
112
110
- cache . verbose && println (" Using IterativeSolvers.$(alg. generate_iterator) " )
113
+ @SciMLMessage (" Using IterativeSolvers.$(alg. generate_iterator) " , cache . verbose, :using_IterativeSolvers , :numerical )
111
114
i = 0
112
115
for iter in enumerate (cache. cacheval)
113
116
i += 1
114
- cache . verbose && println (" Iter: $(iter[1 ]) , residual: $(iter[2 ]) " )
117
+ @SciMLMessage (" Iter: $(iter[1 ]) , residual: $(iter[2 ]) " , cache . verbose, :IterativeSolvers_iterations )
115
118
# TODO inject callbacks KSP into solve! cb!(cache.cacheval)
116
119
end
117
- cache. verbose && println ()
118
120
119
121
resid = cache. cacheval isa IterativeSolvers. IDRSIterable ? cache. cacheval. R :
120
122
cache. cacheval. residual
0 commit comments