Skip to content

Commit fe6b1b0

Browse files
committed
make use of new SciMLVerbosity stuff
1 parent 5ddde85 commit fe6b1b0

File tree

6 files changed

+15
-32
lines changed

6 files changed

+15
-32
lines changed

ext/LinearSolveHYPREExt.jl

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ using LinearSolve: HYPREAlgorithm, LinearCache, LinearProblem, LinearSolve,
77
OperatorAssumptions, default_tol, init_cacheval, __issquare,
88
__conditioning, LinearSolveAdjoint, LinearVerbosity
99
using SciMLBase: LinearProblem, LinearAliasSpecifier, SciMLBase
10-
using SciMLVerbosity: @match, Verbosity
10+
using SciMLVerbosity: @match, Verbosity, verbosity_to_int
1111
using UnPack: @unpack
1212
using Setfield: @set!
1313

@@ -162,15 +162,7 @@ function create_solver(alg::HYPREAlgorithm, cache::LinearCache)
162162
# Construct solver options
163163

164164

165-
# This should be a function in SciMLVerbosity
166-
verbose = @match cache.verbose.numerical.HYPRE_verbosity begin
167-
Verbosity.None() => 0
168-
Verbosity.Info() => 1
169-
Verbosity.Warn() => 2
170-
Verbosity.Error() => 3
171-
Verbosity.Level(i) => i
172-
end
173-
165+
verbose = verbosity_to_int(cache.verbose.numerical.HYPRE_verbosity)
174166

175167
solver_options = (;
176168
AbsoluteTol = cache.abstol,

ext/LinearSolveKrylovKitExt.jl

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module LinearSolveKrylovKitExt
22

33
using LinearSolve, KrylovKit, LinearAlgebra
4-
using SciMLVerbosity: @match, Verbosity
4+
using SciMLVerbosity: @match, Verbosity, verbosity_to_int
55
using LinearSolve: LinearCache, DEFAULT_PRECS
66

77
function LinearSolve.KrylovKitJL(args...;
@@ -26,7 +26,7 @@ function SciMLBase.solve!(cache::LinearCache, alg::KrylovKitJL; kwargs...)
2626
atol = float(cache.abstol)
2727
rtol = float(cache.reltol)
2828
maxiter = cache.maxiters
29-
verbosity = verbosity_to_KrylovKit(cache.verbose.numerical.KrylovKit_verbosity)
29+
verbosity = verbosity_to_int(cache.verbose.numerical.KrylovKit_verbosity)
3030
krylovdim = (alg.gmres_restart == 0) ? min(20, size(cache.A, 1)) : alg.gmres_restart
3131

3232
kwargs = (atol = atol, rtol = rtol, maxiter = maxiter, verbosity = verbosity,
@@ -42,15 +42,4 @@ function SciMLBase.solve!(cache::LinearCache, alg::KrylovKitJL; kwargs...)
4242
iters = iters)
4343
end
4444

45-
function verbosity_to_KrylovKit(verb::Verbosity.Type)
46-
@match verb begin
47-
Verbosity.None() => 0
48-
Verbosity.Warn() => 1
49-
Verbosity.Error() => 2
50-
Verbosity.Info() => 3
51-
Verbosity.Level(x) => x
52-
_ => error("Not a valid verbosity level for KrylovKit.")
53-
end
54-
end
55-
5645
end

ext/LinearSolvePardisoExt.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ function LinearSolve.init_cacheval(alg::PardisoJL,
7373
error("Number type not supported by Pardiso")
7474
end
7575
end
76-
verbose && Pardiso.set_msglvl!(solver, Pardiso.MESSAGE_LEVEL_ON)
76+
77+
@SciMLMessage(verbose, :pardiso_verbosity, :numerical) do
78+
Pardiso.set_msglvl!(solver, Pardiso.MESSAGE_LEVEL_ON)
79+
end
7780

7881
#=
7982
Note: It is recommended to use IPARM(11)=1 (scaling) and IPARM(13)=1 (matchings) for

src/LinearSolve.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ using SciMLBase: SciMLBase, LinearAliasSpecifier, AbstractSciMLOperator,
1818
init, solve!, reinit!, solve, ReturnCode, LinearProblem
1919
using SciMLOperators: SciMLOperators, AbstractSciMLOperator, IdentityOperator, MatrixOperator,
2020
has_ldiv!, issquare
21-
using SciMLVerbosity: Verbosity, @SciMLMessage, @match, AbstractVerbositySpecifier
21+
using SciMLVerbosity: Verbosity, @SciMLMessage, @match, AbstractVerbositySpecifier, verbosity_to_int, verbosity_to_bool
2222
using Setfield: @set, @set!
2323
using UnPack: @unpack
2424
using DocStringExtensions: DocStringExtensions

src/iterative_wrappers.jl

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -284,11 +284,7 @@ function SciMLBase.solve!(cache::LinearCache, alg::KrylovJL; kwargs...)
284284
cache.cacheval
285285
end
286286

287-
krylovJL_verbose = SciMLBase.@match verbose.numerical.KrylovJL_verbosity begin
288-
Verbosity.None() => 0
289-
::Verbosity.Type => 1
290-
_ => error("Invalid verbosity.")
291-
end
287+
krylovJL_verbose = verbosity_to_int(verbose.numerical.KrylovJL_verbosity)
292288

293289
args = (cacheval, cache.A, cache.b)
294290
kwargs = (atol = atol, rtol, itmax, verbose = krylovJL_verbose,

src/verbosity.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const linear_defaults = Dict{Symbol, Verbosity.Type}(
88
:IterativeSolvers_iterations => Verbosity.Warn(),
99
:KrylovKit_verbosity => Verbosity.Warn(),
1010
:KrylovJL_verbosity => Verbosity.None(),
11-
:HYPRE_verbosity => Verbosity.Level(1)
11+
:HYPRE_verbosity => Verbosity.Level(1),
12+
:pardiso_verbosity => Verbosity.None()
1213
)
1314
mutable struct LinearErrorControlVerbosity
1415
default_lu_fallback::Verbosity.Type
@@ -78,13 +79,15 @@ mutable struct LinearNumericalVerbosity
7879
KrylovKit_verbosity::Verbosity.Type
7980
KrylovJL_verbosity::Verbosity.Type
8081
HYPRE_verbosity::Verbosity.Type
82+
pardiso_verbosity::Verbosity.Type
8183

8284
function LinearNumericalVerbosity(;
8385
using_IterativeSolvers = linear_defaults[:using_IterativeSolvers],
8486
IterativeSolvers_iterations = linear_defaults[:IterativeSolvers_iterations],
8587
KrylovKit_verbosity = linear_defaults[:KrylovKit_verbosity],
8688
KrylovJL_verbosity = linear_defaults[:KrylovJL_verbosity],
87-
HYPRE_verbosity = linear_defaults[:HYPRE_verbosity])
89+
HYPRE_verbosity = linear_defaults[:HYPRE_verbosity],
90+
pardiso_verbosity = linear_defaults[:pardiso_verbosity])
8891
new(using_IterativeSolvers, IterativeSolvers_iterations,
8992
KrylovKit_verbosity, KrylovJL_verbosity, HYPRE_verbosity)
9093
end

0 commit comments

Comments
 (0)