Skip to content

Commit 83f19e8

Browse files
committed
fix init_cacheval issues
1 parent e832be5 commit 83f19e8

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

ext/LinearSolveHYPREExt.jl

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,18 @@ function SciMLBase.init(prob::LinearProblem, alg::HYPREAlgorithm,
115115
if verbose isa Bool
116116
#@warn "Using `true` or `false` for `verbose` is being deprecated. Please use a `LinearVerbosity` type to specify verbosity settings.
117117
# For details see the verbosity section of the common solver options documentation page."
118+
init_cache_verb = verbose
118119
if verbose
119-
verbose = LinearVerbosity()
120+
verb_spec = LinearVerbosity()
120121
else
121-
verbose = LinearVerbosity(SciMLLogging.None())
122+
verb_spec = LinearVerbosity(SciMLLogging.None())
122123
end
123-
elseif verbose isa SciMLLogging.AbstractMessageLevel
124-
verbose = LinearVerbosity(verbose)
124+
elseif verbose isa SciMLLogging.AbstractVerbosityPreset
125+
verb_spec = LinearVerbosity(verbose)
126+
init_cache_verb = verb_spec
127+
else
128+
verb_spec = verbose
129+
init_cache_verb = verb_spec
125130
end
126131

127132
A = A isa HYPREMatrix ? A : HYPREMatrix(A)
@@ -134,7 +139,7 @@ function SciMLBase.init(prob::LinearProblem, alg::HYPREAlgorithm,
134139
end
135140

136141
# Initialize internal alg cache
137-
cacheval = init_cacheval(alg, A, b, u0, Pl, Pr, maxiters, abstol, reltol, verbose,
142+
cacheval = init_cacheval(alg, A, b, u0, Pl, Pr, maxiters, abstol, reltol, init_cache_verb,
138143
assumptions)
139144
Tc = typeof(cacheval)
140145
isfresh = true

ext/LinearSolveIterativeSolversExt.jl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,15 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
4949
abstol,
5050
reltol,
5151
verbose::Union{LinearVerbosity, Bool}, assumptions::OperatorAssumptions)
52+
if verbose isa Bool
53+
if verbose
54+
verbosity = LinearVerbosity(no_right_preconditioning = SciMLLogging.WarnLevel())
55+
else
56+
verbosity = LinearVerbosity(SciMLLogging.None())
57+
end
58+
else
59+
verbosity = verbose
60+
end
5261
restart = (alg.gmres_restart == 0) ? min(20, size(A, 1)) : alg.gmres_restart
5362
s = :idrs_s in keys(alg.kwargs) ? alg.kwargs.idrs_s : 4 # shadow space
5463

@@ -58,7 +67,7 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
5867
iterable = if alg.generate_iterator === IterativeSolvers.cg_iterator!
5968
!LinearSolve._isidentity_struct(Pr) &&
6069
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
61-
verbose, :no_right_preconditioning)
70+
verbosity, :no_right_preconditioning)
6271
alg.generate_iterator(u, A, b, Pl;
6372
kwargs...)
6473
elseif alg.generate_iterator === IterativeSolvers.gmres_iterable!
@@ -67,7 +76,7 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
6776
elseif alg.generate_iterator === IterativeSolvers.idrs_iterable!
6877
!!LinearSolve._isidentity_struct(Pr) &&
6978
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
70-
verbose, :no_right_preconditioning)
79+
verbosity, :no_right_preconditioning)
7180
history = IterativeSolvers.ConvergenceHistory(partial = true)
7281
history[:abstol] = abstol
7382
history[:reltol] = reltol
@@ -76,7 +85,7 @@ function LinearSolve.init_cacheval(alg::IterativeSolversJL, A, b, u, Pl, Pr, max
7685
elseif alg.generate_iterator === IterativeSolvers.bicgstabl_iterator!
7786
!!LinearSolve._isidentity_struct(Pr) &&
7887
@SciMLMessage("$(alg.generate_iterator) doesn't support right preconditioning",
79-
verbose, :no_right_preconditioning)
88+
verbosity, :no_right_preconditioning)
8089
alg.generate_iterator(u, A, b, alg.args...; Pl = Pl,
8190
abstol = abstol, reltol = reltol,
8291
max_mv_products = maxiters * 2,

src/common.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ function __init(prob::LinearProblem, alg::SciMLLinearSolveAlgorithm,
267267
abstol = default_tol(real(eltype(prob.b))),
268268
reltol = default_tol(real(eltype(prob.b))),
269269
maxiters::Int = length(prob.b),
270-
verbose = LinearVerbosity(),
270+
verbose = true,
271271
Pl = nothing,
272272
Pr = nothing,
273273
assumptions = OperatorAssumptions(issquare(prob.A)),
@@ -325,17 +325,20 @@ function __init(prob::LinearProblem, alg::SciMLLinearSolveAlgorithm,
325325
end
326326

327327
if verbose isa Bool
328-
@warn "Using `true` or `false` for `verbose` is being deprecated. Please use a `LinearVerbosity` type to specify verbosity settings.
329-
For details see the verbosity section of the common solver options documentation page."
328+
# @warn "Using `true` or `false` for `verbose` is being deprecated. Please use a `LinearVerbosity` type to specify verbosity settings.
329+
# For details see the verbosity section of the common solver options documentation page."
330+
init_cache_verb = verbose
330331
if verbose
331332
verbose_spec = LinearVerbosity()
332333
else
333334
verbose_spec = LinearVerbosity(SciMLLogging.None())
334335
end
335336
elseif verbose isa SciMLLogging.AbstractVerbosityPreset
336337
verbose_spec = LinearVerbosity(verbose)
338+
init_cache_verb = verbose_spec
337339
else
338340
verbose_spec = verbose
341+
init_cache_verb = verbose_spec
339342
end
340343

341344
b = if issparsematrix(b) && !(A isa Diagonal)
@@ -375,7 +378,7 @@ function __init(prob::LinearProblem, alg::SciMLLinearSolveAlgorithm,
375378
# TODO: deprecate once all docs are updated to the new form
376379
#@warn "passing Preconditioners at `init`/`solve` time is deprecated. Instead add a `precs` function to your algorithm."
377380
end
378-
cacheval = init_cacheval(alg, A, b, u0_, Pl, Pr, maxiters, abstol, reltol, verbose_spec,
381+
cacheval = init_cacheval(alg, A, b, u0_, Pl, Pr, maxiters, abstol, reltol, init_cache_verb,
379382
assumptions)
380383
isfresh = true
381384
precsisfresh = false

test/verbosity.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,6 @@ end
106106
prob,
107107
verbose = LinearVerbosity(default_lu_fallback = WarnLevel()))
108108

109-
@test_logs (:warn, r"Using `true` or `false` for `verbose` is being deprecated") match_mode=:any min_level=SciMLLogging.Logging.Warn solve(prob, verbose = false)
110-
111109
@test_logs (:info,
112110
"LU factorization failed, falling back to QR factorization. `A` is potentially rank-deficient.") solve(
113111
prob,

0 commit comments

Comments
 (0)