@@ -109,73 +109,73 @@ end
109
109
110
110
function get_KrylovJL_solver (KrylovAlg)
111
111
KS = if (KrylovAlg === Krylov. lsmr!)
112
- Krylov. LsmrSolver
112
+ Krylov. LsmrWorkspace
113
113
elseif (KrylovAlg === Krylov. cgs!)
114
- Krylov. CgsSolver
114
+ Krylov. CgsWorkspace
115
115
elseif (KrylovAlg === Krylov. usymlq!)
116
- Krylov. UsymlqSolver
116
+ Krylov. UsymlqWorkspace
117
117
elseif (KrylovAlg === Krylov. lnlq!)
118
- Krylov. LnlqSolver
118
+ Krylov. LnlqWorkspace
119
119
elseif (KrylovAlg === Krylov. bicgstab!)
120
- Krylov. BicgstabSolver
120
+ Krylov. BicgstabWorkspace
121
121
elseif (KrylovAlg === Krylov. crls!)
122
- Krylov. CrlsSolver
122
+ Krylov. CrlsWorkspace
123
123
elseif (KrylovAlg === Krylov. lsqr!)
124
- Krylov. LsqrSolver
124
+ Krylov. LsqrWorkspace
125
125
elseif (KrylovAlg === Krylov. minres!)
126
- Krylov. MinresSolver
126
+ Krylov. MinresWorkspace
127
127
elseif (KrylovAlg === Krylov. cgne!)
128
- Krylov. CgneSolver
128
+ Krylov. CgneWorkspace
129
129
elseif (KrylovAlg === Krylov. dqgmres!)
130
- Krylov. DqgmresSolver
130
+ Krylov. DqgmresWorkspace
131
131
elseif (KrylovAlg === Krylov. symmlq!)
132
- Krylov. SymmlqSolver
132
+ Krylov. SymmlqWorkspace
133
133
elseif (KrylovAlg === Krylov. trimr!)
134
- Krylov. TrimrSolver
134
+ Krylov. TrimrWorkspace
135
135
elseif (KrylovAlg === Krylov. usymqr!)
136
- Krylov. UsymqrSolver
136
+ Krylov. UsymqrWorkspace
137
137
elseif (KrylovAlg === Krylov. bilqr!)
138
- Krylov. BilqrSolver
138
+ Krylov. BilqrWorkspace
139
139
elseif (KrylovAlg === Krylov. cr!)
140
- Krylov. CrSolver
140
+ Krylov. CrWorkspace
141
141
elseif (KrylovAlg === Krylov. craigmr!)
142
- Krylov. CraigmrSolver
142
+ Krylov. CraigmrWorkspace
143
143
elseif (KrylovAlg === Krylov. tricg!)
144
- Krylov. TricgSolver
144
+ Krylov. TricgWorkspace
145
145
elseif (KrylovAlg === Krylov. craig!)
146
- Krylov. CraigSolver
146
+ Krylov. CraigWorkspace
147
147
elseif (KrylovAlg === Krylov. diom!)
148
- Krylov. DiomSolver
148
+ Krylov. DiomWorkspace
149
149
elseif (KrylovAlg === Krylov. lslq!)
150
- Krylov. LslqSolver
150
+ Krylov. LslqWorkspace
151
151
elseif (KrylovAlg === Krylov. trilqr!)
152
- Krylov. TrilqrSolver
152
+ Krylov. TrilqrWorkspace
153
153
elseif (KrylovAlg === Krylov. crmr!)
154
- Krylov. CrmrSolver
154
+ Krylov. CrmrWorkspace
155
155
elseif (KrylovAlg === Krylov. cg!)
156
- Krylov. CgSolver
156
+ Krylov. CgWorkspace
157
157
elseif (KrylovAlg === Krylov. cg_lanczos!)
158
- Krylov. CgLanczosShiftSolver
158
+ Krylov. CgLanczosShiftWorkspace
159
159
elseif (KrylovAlg === Krylov. cgls!)
160
- Krylov. CglsSolver
160
+ Krylov. CglsWorkspace
161
161
elseif (KrylovAlg === Krylov. cg_lanczos!)
162
- Krylov. CgLanczosSolver
162
+ Krylov. CgLanczosWorkspace
163
163
elseif (KrylovAlg === Krylov. bilq!)
164
- Krylov. BilqSolver
164
+ Krylov. BilqWorkspace
165
165
elseif (KrylovAlg === Krylov. minres_qlp!)
166
- Krylov. MinresQlpSolver
166
+ Krylov. MinresQlpWorkspace
167
167
elseif (KrylovAlg === Krylov. qmr!)
168
- Krylov. QmrSolver
168
+ Krylov. QmrWorkspace
169
169
elseif (KrylovAlg === Krylov. gmres!)
170
- Krylov. GmresSolver
170
+ Krylov. GmresWorkspace
171
171
elseif (KrylovAlg === Krylov. fgmres!)
172
- Krylov. FgmresSolver
172
+ Krylov. FgmresWorkspace
173
173
elseif (KrylovAlg === Krylov. gpmr!)
174
- Krylov. GpmrSolver
174
+ Krylov. GpmrWorkspace
175
175
elseif (KrylovAlg === Krylov. fom!)
176
- Krylov. FomSolver
176
+ Krylov. FomWorkspace
177
177
elseif (KrylovAlg === Krylov. minares!)
178
- Krylov. MinaresSolver
178
+ Krylov. MinaresWorkspace
179
179
else
180
180
error (" Invalid Krylov method detected" )
181
181
end
@@ -196,11 +196,11 @@ function init_cacheval(alg::KrylovJL, A, b, u, Pl, Pr, maxiters::Int, abstol, re
196
196
alg. KrylovAlg === Krylov. gpmr! ||
197
197
alg. KrylovAlg === Krylov. fom!)
198
198
if issparsematrixcsc (A)
199
- KS (makeempty_SparseMatrixCSC (A), eltype (b)[], 1 )
199
+ KS (makeempty_SparseMatrixCSC (A), eltype (b)[]; memory = 1 )
200
200
elseif A isa Matrix
201
- KS (Matrix {eltype(A)} (undef, 0 , 0 ), eltype (b)[], 1 )
201
+ KS (Matrix {eltype(A)} (undef, 0 , 0 ), eltype (b)[]; memory = 1 )
202
202
else
203
- KS (A, b, 1 )
203
+ KS (A, b; memory = 1 )
204
204
end
205
205
else
206
206
if issparsematrixcsc (A)
@@ -220,7 +220,7 @@ function init_cacheval(alg::KrylovJL, A, b, u, Pl, Pr, maxiters::Int, abstol, re
220
220
alg. KrylovAlg === Krylov. fgmres! ||
221
221
alg. KrylovAlg === Krylov. gpmr! ||
222
222
alg. KrylovAlg === Krylov. fom!)
223
- KS (A, b, memory)
223
+ KS (A, b; memory)
224
224
elseif (alg. KrylovAlg === Krylov. minres! ||
225
225
alg. KrylovAlg === Krylov. symmlq! ||
226
226
alg. KrylovAlg === Krylov. lslq! ||
@@ -288,20 +288,20 @@ function SciMLBase.solve!(cache::LinearCache, alg::KrylovJL; kwargs...)
288
288
kwargs = (atol = atol, rtol, itmax, verbose,
289
289
ldiv = true , history = true , alg. kwargs... )
290
290
291
- if cache. cacheval isa Krylov. CgSolver
291
+ if cache. cacheval isa Krylov. CgWorkspace
292
292
N != = I &&
293
293
@warn " $(alg. KrylovAlg) doesn't support right preconditioning."
294
- Krylov. solve ! (args... ; M, kwargs... )
295
- elseif cache. cacheval isa Krylov. GmresSolver
296
- Krylov. solve ! (args... ; M, N, restart = alg. gmres_restart > 0 , kwargs... )
297
- elseif cache. cacheval isa Krylov. BicgstabSolver
298
- Krylov. solve ! (args... ; M, N, kwargs... )
299
- elseif cache. cacheval isa Krylov. MinresSolver
294
+ Krylov. krylov_solve ! (args... ; M, kwargs... )
295
+ elseif cache. cacheval isa Krylov. GmresWorkspace
296
+ Krylov. krylov_solve ! (args... ; M, N, restart = alg. gmres_restart > 0 , kwargs... )
297
+ elseif cache. cacheval isa Krylov. BicgstabWorkspace
298
+ Krylov. krylov_solve ! (args... ; M, N, kwargs... )
299
+ elseif cache. cacheval isa Krylov. MinresWorkspace
300
300
N != = I &&
301
301
@warn " $(alg. KrylovAlg) doesn't support right preconditioning."
302
- Krylov. solve ! (args... ; M, kwargs... )
302
+ Krylov. krylov_solve ! (args... ; M, kwargs... )
303
303
else
304
- Krylov. solve ! (args... ; kwargs... )
304
+ Krylov. krylov_solve ! (args... ; kwargs... )
305
305
end
306
306
307
307
stats = @get_cacheval (cache, :KrylovJL_GMRES ). stats
0 commit comments