@@ -6,7 +6,7 @@ using HYPRE: HYPRE, HYPREMatrix, HYPRESolver, HYPREVector
6
6
using LinearSolve: HYPREAlgorithm, LinearCache, LinearProblem, LinearSolve,
7
7
OperatorAssumptions, default_tol, init_cacheval, __issquare,
8
8
__conditioning, LinearSolveAdjoint
9
- using SciMLBase: LinearProblem, SciMLBase
9
+ using SciMLBase: LinearProblem, LinearAliasSpecifier, SciMLBase
10
10
using UnPack: @unpack
11
11
using Setfield: @set!
12
12
55
55
56
56
function SciMLBase. init (prob:: LinearProblem , alg:: HYPREAlgorithm ,
57
57
args... ;
58
- alias_A = false , alias_b = false ,
58
+ alias = LinearAliasSpecifier () ,
59
59
# TODO : Implement eltype for HYPREMatrix in HYPRE.jl? Looks useful
60
60
# even if it is not AbstractArray.
61
61
abstol = default_tol (prob. A isa HYPREMatrix ? HYPRE_Complex :
@@ -72,6 +72,45 @@ function SciMLBase.init(prob::LinearProblem, alg::HYPREAlgorithm,
72
72
kwargs... )
73
73
@unpack A, b, u0, p = prob
74
74
75
+ if haskey (kwargs, :alias_A ) || haskey (kwargs, :alias_b )
76
+ aliases = LinearAliasSpecifier ()
77
+
78
+ if haskey (kwargs, :alias_A )
79
+ message = " `alias_A` keyword argument is deprecated, to set `alias_A`,
80
+ please use an ODEAliasSpecifier, e.g. `solve(prob, alias = LinearAliasSpecifier(alias_A = true))"
81
+ Base. depwarn (message, :init )
82
+ Base. depwarn (message, :solve )
83
+ aliases = LinearAliasSpecifier (alias_A = values (kwargs). alias_A)
84
+ end
85
+
86
+ if haskey (kwargs, :alias_b )
87
+ message = " `alias_b` keyword argument is deprecated, to set `alias_b`,
88
+ please use an ODEAliasSpecifier, e.g. `solve(prob, alias = LinearAliasSpecifier(alias_b = true))"
89
+ Base. depwarn (message, :init )
90
+ Base. depwarn (message, :solve )
91
+ aliases = LinearAliasSpecifier (
92
+ alias_A = aliases. alias_A, alias_b = values (kwargs). alias_b)
93
+ end
94
+ else
95
+ if alias isa Bool
96
+ aliases = LinearAliasSpecifier (alias = alias)
97
+ else
98
+ aliases = alias
99
+ end
100
+ end
101
+
102
+ if isnothing (aliases. alias_A)
103
+ alias_A = false
104
+ else
105
+ alias_A = aliases. alias_A
106
+ end
107
+
108
+ if isnothing (aliases. alias_b)
109
+ alias_b = false
110
+ else
111
+ alias_b = aliases. alias_b
112
+ end
113
+
75
114
A = A isa HYPREMatrix ? A : HYPREMatrix (A)
76
115
b = b isa HYPREVector ? b : HYPREVector (b)
77
116
u0 = u0 isa HYPREVector ? u0 : (u0 === nothing ? nothing : HYPREVector (u0))
0 commit comments