Skip to content

Commit 7f7f38b

Browse files
committed
use NonlinearAliasSpecifier in solve for NonlinearProblem
1 parent ad17258 commit 7f7f38b

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/DiffEqBase.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ using SciMLBase: @def, DEIntegrator, AbstractDEProblem,
7979
AbstractDAEIntegrator, unwrap_cache, has_reinit, reinit!,
8080
postamble!, last_step_failed, islinear, has_stats,
8181
initialize_dae!, build_solution, solution_new_retcode,
82-
solution_new_tslocation, plot_indices,
82+
solution_new_tslocation, plot_indices, NonlinearAliasSpecifier,
8383
NullParameters, isinplace, AbstractADType, AbstractDiscretization,
8484
DISCRETE_OUTOFPLACE_DEFAULT, DISCRETE_INPLACE_DEFAULT,
8585
has_analytic, calculate_solution_errors!, AbstractNoiseProcess,

src/solve.jl

+27-2
Original file line numberDiff line numberDiff line change
@@ -1089,13 +1089,38 @@ function solve(prob::NonlinearProblem, args...; sensealg = nothing,
10891089
sensealg = prob.kwargs[:sensealg]
10901090
end
10911091

1092+
1093+
if haskey(prob.kwargs, :alias_u0)
1094+
@warn "The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
1095+
alias_spec = NonlinearAliasSpecifier(alias_u0 = prob.kwargs[:alias_u0])
1096+
elseif haskey(kwargs, :alias_u0)
1097+
@warn "The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
1098+
alias_spec = NonlinearAliasSpecifier(alias_u0 = kwargs[:alias_u0])
1099+
end
1100+
1101+
if haskey(prob.kwargs, :alias) && prob.kwargs[:alias] isa Bool
1102+
alias_spec = NonlinearAliasSpecifier(alias = prob.kwargs[:alias])
1103+
elseif haskey(kwargs, :alias) && kwargs[:alias] isa Bool
1104+
alias_spec = NonlinearAliasSpecifier(alias = kwargs[:alias])
1105+
end
1106+
1107+
if haskey(prob.kwargs, :alias) && prob.kwargs[:alias] isa NonlinearAliasSpecifier
1108+
alias_spec = prob.kwargs[:alias]
1109+
elseif haskey(kwargs, :alias) && kwargs[:alias] isa NonlinearAliasSpecifier
1110+
alias_spec = kwargs[:alias]
1111+
else
1112+
alias_spec = NonlinearAliasSpecifier(alias_u0 = false)
1113+
end
1114+
1115+
alias_u0 = alias_spec.alias_u0
1116+
10921117
u0 = u0 !== nothing ? u0 : prob.u0
10931118
p = p !== nothing ? p : prob.p
10941119

10951120
if wrap isa Val{true}
1096-
wrap_sol(solve_up(prob, sensealg, u0, p, args...; kwargs...))
1121+
wrap_sol(solve_up(prob, sensealg, u0, p, args...; alias_u0 = alias_u0, kwargs...))
10971122
else
1098-
solve_up(prob, sensealg, u0, p, args...; kwargs...)
1123+
solve_up(prob, sensealg, u0, p, args...; alias_u0 = alias_u0, kwargs...)
10991124
end
11001125
end
11011126

0 commit comments

Comments
 (0)