@@ -50,30 +50,24 @@ function solve(prob::AbstractNonlinearProblem, args...; sensealg = nothing,
5050 sensealg = prob. kwargs[:sensealg ]
5151 end
5252
53- if haskey (prob. kwargs, :alias_u0 )
54- @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
55- alias_spec = NonlinearAliasSpecifier (alias_u0 = prob. kwargs[:alias_u0 ])
56- elseif haskey (kwargs, :alias_u0 )
57- @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
58- alias_spec = NonlinearAliasSpecifier (alias_u0 = kwargs[:alias_u0 ])
59- end
60-
61- if haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa Bool
62- alias_spec = NonlinearAliasSpecifier (alias = prob. kwargs[:alias ])
53+ alias_spec = if haskey (kwargs, :alias ) && kwargs[:alias ] isa NonlinearAliasSpecifier
54+ kwargs[:alias ]
55+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa NonlinearAliasSpecifier
56+ prob. kwargs[:alias ]
6357 elseif haskey (kwargs, :alias ) && kwargs[:alias ] isa Bool
64- alias_spec = NonlinearAliasSpecifier (alias = kwargs[:alias ])
65- end
66-
67- if haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa NonlinearAliasSpecifier
68- alias_spec = prob. kwargs[:alias ]
69- elseif haskey (kwargs, :alias ) && kwargs[:alias ] isa NonlinearAliasSpecifier
70- alias_spec = kwargs[:alias ]
58+ NonlinearAliasSpecifier (alias = kwargs[:alias ])
59+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa Bool
60+ NonlinearAliasSpecifier (alias = prob. kwargs[:alias ])
61+ elseif haskey (kwargs, :alias_u0 )
62+ @warn lazy " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
63+ NonlinearAliasSpecifier (alias_u0 = kwargs[:alias_u0 ])
64+ elseif haskey (prob. kwargs, :alias_u0 )
65+ @warn lazy " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
66+ NonlinearAliasSpecifier (alias_u0 = prob. kwargs[:alias_u0 ])
7167 else
72- alias_spec = NonlinearAliasSpecifier (alias_u0 = false )
68+ NonlinearAliasSpecifier (alias_u0 = false )
7369 end
7470
75- alias_u0 = alias_spec. alias_u0
76-
7771 u0 = u0 != = nothing ? u0 : prob. u0
7872 p = p != = nothing ? p : prob. p
7973
@@ -83,7 +77,7 @@ function solve(prob::AbstractNonlinearProblem, args...; sensealg = nothing,
8377 u0,
8478 p,
8579 args... ;
86- alias_u0 = alias_u0 ,
80+ alias = alias_spec ,
8781 originator = SciMLBase. ChainRulesOriginator (),
8882 kwargs... ))
8983 else
@@ -92,7 +86,7 @@ function solve(prob::AbstractNonlinearProblem, args...; sensealg = nothing,
9286 u0,
9387 p,
9488 args... ;
95- alias_u0 = alias_u0 ,
89+ alias = alias_spec ,
9690 originator = SciMLBase. ChainRulesOriginator (),
9791 kwargs... )
9892 end
@@ -170,10 +164,28 @@ function init(
170164 sensealg = prob. kwargs[:sensealg ]
171165 end
172166
167+ alias_spec = if haskey (kwargs, :alias ) && kwargs[:alias ] isa NonlinearAliasSpecifier
168+ kwargs[:alias ]
169+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa NonlinearAliasSpecifier
170+ prob. kwargs[:alias ]
171+ elseif haskey (kwargs, :alias ) && kwargs[:alias ] isa Bool
172+ NonlinearAliasSpecifier (alias = kwargs[:alias ])
173+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa Bool
174+ NonlinearAliasSpecifier (alias = prob. kwargs[:alias ])
175+ elseif haskey (kwargs, :alias_u0 )
176+ @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
177+ NonlinearAliasSpecifier (alias_u0 = kwargs[:alias_u0 ])
178+ elseif haskey (prob. kwargs, :alias_u0 )
179+ @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
180+ NonlinearAliasSpecifier (alias_u0 = prob. kwargs[:alias_u0 ])
181+ else
182+ NonlinearAliasSpecifier (alias_u0 = false )
183+ end
184+
173185 u0 = u0 != = nothing ? u0 : prob. u0
174186 p = p != = nothing ? p : prob. p
175187
176- init_up (prob, sensealg, u0, p, args... ; kwargs... )
188+ init_up (prob, sensealg, u0, p, args... ; alias = alias_spec, kwargs... )
177189end
178190
179191function init_up (prob:: AbstractNonlinearProblem ,
@@ -375,13 +387,14 @@ end
375387
376388@generated function __generated_polysolve (
377389 prob:: AbstractNonlinearProblem , alg:: NonlinearSolvePolyAlgorithm{Val{N}} , args... ;
378- stats = NLStats (0 , 0 , 0 , 0 , 0 ), alias_u0 = false , verbose = true ,
390+ stats = NLStats (0 , 0 , 0 , 0 , 0 ), alias = NonlinearAliasSpecifier ( alias_u0 = false ) , verbose = true ,
379391 initializealg = NonlinearSolveDefaultInit (), kwargs...
380392) where {N}
381393 sol_syms = [gensym (" sol" ) for _ in 1 : N]
382394 prob_syms = [gensym (" prob" ) for _ in 1 : N]
383395 u_result_syms = [gensym (" u_result" ) for _ in 1 : N]
384396 calls = [quote
397+ alias_u0 = alias. alias_u0
385398 current = alg. start_index
386399 if alias_u0 && ! ArrayInterface. ismutable (prob. u0)
387400 verbose && @warn " `alias_u0` has been set to `true`, but `u0` is \
0 commit comments