@@ -6,7 +6,7 @@ using HYPRE: HYPRE, HYPREMatrix, HYPRESolver, HYPREVector
66using LinearSolve: HYPREAlgorithm, LinearCache, LinearProblem, LinearSolve,
77 OperatorAssumptions, default_tol, init_cacheval, __issquare,
88 __conditioning, LinearSolveAdjoint
9- using SciMLBase: LinearProblem, SciMLBase
9+ using SciMLBase: LinearProblem, LinearAliasSpecifier, SciMLBase
1010using UnPack: @unpack
1111using Setfield: @set!
1212
5555
5656function SciMLBase. init (prob:: LinearProblem , alg:: HYPREAlgorithm ,
5757 args... ;
58- alias_A = false , alias_b = false ,
58+ alias = LinearAliasSpecifier () ,
5959 # TODO : Implement eltype for HYPREMatrix in HYPRE.jl? Looks useful
6060 # even if it is not AbstractArray.
6161 abstol = default_tol (prob. A isa HYPREMatrix ? HYPRE_Complex :
@@ -72,6 +72,45 @@ function SciMLBase.init(prob::LinearProblem, alg::HYPREAlgorithm,
7272 kwargs... )
7373 @unpack A, b, u0, p = prob
7474
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+
75114 A = A isa HYPREMatrix ? A : HYPREMatrix (A)
76115 b = b isa HYPREVector ? b : HYPREVector (b)
77116 u0 = u0 isa HYPREVector ? u0 : (u0 === nothing ? nothing : HYPREVector (u0))
0 commit comments