Skip to content

Commit e14115c

Browse files
Merge pull request #1138 from jClugstor/nonlinear_alias
Use NonlinearAliasSpecifier for NonlinearProblem
2 parents fce3589 + 7f7f38b commit e14115c

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
@@ -1107,13 +1107,38 @@ function solve(prob::NonlinearProblem, args...; sensealg = nothing,
11071107
sensealg = prob.kwargs[:sensealg]
11081108
end
11091109

1110+
1111+
if haskey(prob.kwargs, :alias_u0)
1112+
@warn "The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
1113+
alias_spec = NonlinearAliasSpecifier(alias_u0 = prob.kwargs[:alias_u0])
1114+
elseif haskey(kwargs, :alias_u0)
1115+
@warn "The `alias_u0` keyword argument is deprecated. Please use a NonlinearAliasSpecifier, e.g. `alias = NonlinearAliasSpecifier(alias_u0 = true)`."
1116+
alias_spec = NonlinearAliasSpecifier(alias_u0 = kwargs[:alias_u0])
1117+
end
1118+
1119+
if haskey(prob.kwargs, :alias) && prob.kwargs[:alias] isa Bool
1120+
alias_spec = NonlinearAliasSpecifier(alias = prob.kwargs[:alias])
1121+
elseif haskey(kwargs, :alias) && kwargs[:alias] isa Bool
1122+
alias_spec = NonlinearAliasSpecifier(alias = kwargs[:alias])
1123+
end
1124+
1125+
if haskey(prob.kwargs, :alias) && prob.kwargs[:alias] isa NonlinearAliasSpecifier
1126+
alias_spec = prob.kwargs[:alias]
1127+
elseif haskey(kwargs, :alias) && kwargs[:alias] isa NonlinearAliasSpecifier
1128+
alias_spec = kwargs[:alias]
1129+
else
1130+
alias_spec = NonlinearAliasSpecifier(alias_u0 = false)
1131+
end
1132+
1133+
alias_u0 = alias_spec.alias_u0
1134+
11101135
u0 = u0 !== nothing ? u0 : prob.u0
11111136
p = p !== nothing ? p : prob.p
11121137

11131138
if wrap isa Val{true}
1114-
wrap_sol(solve_up(prob, sensealg, u0, p, args...; kwargs...))
1139+
wrap_sol(solve_up(prob, sensealg, u0, p, args...; alias_u0 = alias_u0, kwargs...))
11151140
else
1116-
solve_up(prob, sensealg, u0, p, args...; kwargs...)
1141+
solve_up(prob, sensealg, u0, p, args...; alias_u0 = alias_u0, kwargs...)
11171142
end
11181143
end
11191144

0 commit comments

Comments
 (0)