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