@@ -62,30 +62,24 @@ function solve(prob::AbstractNonlinearProblem, args...; sensealg = nothing,
6262 verbose = NonlinearVerbosity (verbose)
6363 end
6464
65- if haskey (prob. kwargs, :alias_u0 )
66- @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
67- alias_spec = NonlinearAliasSpecifier (alias_u0 = prob. kwargs[:alias_u0 ])
68- elseif haskey (kwargs, :alias_u0 )
69- @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
70- alias_spec = NonlinearAliasSpecifier (alias_u0 = kwargs[:alias_u0 ])
71- end
72-
73- if haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa Bool
74- alias_spec = NonlinearAliasSpecifier (alias = prob. kwargs[:alias ])
65+ alias_spec = if haskey (kwargs, :alias ) && kwargs[:alias ] isa NonlinearAliasSpecifier
66+ kwargs[:alias ]
67+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa NonlinearAliasSpecifier
68+ prob. kwargs[:alias ]
7569 elseif haskey (kwargs, :alias ) && kwargs[:alias ] isa Bool
76- alias_spec = NonlinearAliasSpecifier (alias = kwargs[:alias ])
77- end
78-
79- if haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa NonlinearAliasSpecifier
80- alias_spec = prob. kwargs[:alias ]
81- elseif haskey (kwargs, :alias ) && kwargs[:alias ] isa NonlinearAliasSpecifier
82- alias_spec = kwargs[:alias ]
70+ NonlinearAliasSpecifier (alias = kwargs[:alias ])
71+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa Bool
72+ NonlinearAliasSpecifier (alias = prob. kwargs[:alias ])
73+ elseif haskey (kwargs, :alias_u0 )
74+ @warn lazy " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
75+ NonlinearAliasSpecifier (alias_u0 = kwargs[:alias_u0 ])
76+ elseif haskey (prob. kwargs, :alias_u0 )
77+ @warn lazy " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
78+ NonlinearAliasSpecifier (alias_u0 = prob. kwargs[:alias_u0 ])
8379 else
84- alias_spec = NonlinearAliasSpecifier (alias_u0 = false )
80+ NonlinearAliasSpecifier (alias_u0 = false )
8581 end
8682
87- alias_u0 = alias_spec. alias_u0
88-
8983 u0 = u0 != = nothing ? u0 : prob. u0
9084 p = p != = nothing ? p : prob. p
9185
@@ -95,7 +89,7 @@ function solve(prob::AbstractNonlinearProblem, args...; sensealg = nothing,
9589 u0,
9690 p,
9791 args... ;
98- alias_u0 = alias_u0 ,
92+ alias = alias_spec ,
9993 originator = SciMLBase. ChainRulesOriginator (),
10094 verbose,
10195 kwargs... ))
@@ -105,7 +99,7 @@ function solve(prob::AbstractNonlinearProblem, args...; sensealg = nothing,
10599 u0,
106100 p,
107101 args... ;
108- alias_u0 = alias_u0 ,
102+ alias = alias_spec ,
109103 originator = SciMLBase. ChainRulesOriginator (),
110104 verbose,
111105 kwargs... )
@@ -184,6 +178,24 @@ function init(
184178 sensealg = prob. kwargs[:sensealg ]
185179 end
186180
181+ alias_spec = if haskey (kwargs, :alias ) && kwargs[:alias ] isa NonlinearAliasSpecifier
182+ kwargs[:alias ]
183+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa NonlinearAliasSpecifier
184+ prob. kwargs[:alias ]
185+ elseif haskey (kwargs, :alias ) && kwargs[:alias ] isa Bool
186+ NonlinearAliasSpecifier (alias = kwargs[:alias ])
187+ elseif haskey (prob. kwargs, :alias ) && prob. kwargs[:alias ] isa Bool
188+ NonlinearAliasSpecifier (alias = prob. kwargs[:alias ])
189+ elseif haskey (kwargs, :alias_u0 )
190+ @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
191+ NonlinearAliasSpecifier (alias_u0 = kwargs[:alias_u0 ])
192+ elseif haskey (prob. kwargs, :alias_u0 )
193+ @warn " The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
194+ NonlinearAliasSpecifier (alias_u0 = prob. kwargs[:alias_u0 ])
195+ else
196+ NonlinearAliasSpecifier (alias_u0 = false )
197+ end
198+
187199 if verbose isa Bool
188200 # @warn "Using `true` or `false` for `verbose` is being deprecated. Please use a `NonlinearVerbosity` type to specify verbosity settings.
189201 # For details see the verbosity section of the common solver options documentation page."
@@ -199,7 +211,7 @@ function init(
199211 u0 = u0 != = nothing ? u0 : prob. u0
200212 p = p != = nothing ? p : prob. p
201213
202- init_up (prob, sensealg, u0, p, args... ; verbose, kwargs... )
214+ init_up (prob, sensealg, u0, p, args... ; alias = alias_spec, verbose, kwargs... )
203215end
204216
205217function init_up (prob:: AbstractNonlinearProblem ,
401413
402414@generated function __generated_polysolve (
403415 prob:: AbstractNonlinearProblem , alg:: NonlinearSolvePolyAlgorithm{Val{N}} , args... ;
404- stats = NLStats (0 , 0 , 0 , 0 , 0 ), alias_u0 = false , verbose = NonlinearVerbosity (),
416+ stats = NLStats (0 , 0 , 0 , 0 , 0 ), alias = NonlinearAliasSpecifier ( alias_u0 = false ) , verbose = NonlinearVerbosity (),
405417 initializealg = NonlinearSolveDefaultInit (), kwargs...
406418) where {N}
407419
419431 prob_syms = [gensym (" prob" ) for _ in 1 : N]
420432 u_result_syms = [gensym (" u_result" ) for _ in 1 : N]
421433 calls = [quote
434+ alias_u0 = alias. alias_u0
422435 current = alg. start_index
423436 if alias_u0 && ! ArrayInterface. ismutable (prob. u0)
424437 @SciMLMessage (" `alias_u0` has been set to `true`, but `u0` is
0 commit comments