Skip to content

Commit 7c3886e

Browse files
fix: ensure => nothing overrides defaults
1 parent 29f3c6e commit 7c3886e

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/systems/nonlinear/initializesystem.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
7373
op = anydict(op)
7474
u0map = anydict()
7575
pmap = anydict()
76-
build_operating_point!(sys, op, u0map, pmap, defs, unknowns(sys),
76+
build_operating_point!(sys, op, u0map, pmap, Dict(), unknowns(sys),
7777
parameters(sys; initial_parameters = true))
7878
for (k, v) in op
7979
if has_parameter_dependency_with_lhs(sys, k) && is_variable_floatingpoint(k)
@@ -144,7 +144,7 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
144144

145145
# 3) process other variables
146146
for var in vars
147-
if var keys(defs)
147+
if var keys(op)
148148
push!(eqs_ics, var ~ defs[var])
149149
elseif var keys(guesses)
150150
push!(defs, var => guesses[var])
@@ -238,7 +238,7 @@ function generate_initializesystem_timeindependent(sys::AbstractSystem;
238238
op = anydict(op)
239239
u0map = anydict()
240240
pmap = anydict()
241-
build_operating_point!(sys, op, u0map, pmap, defs, unknowns(sys),
241+
build_operating_point!(sys, op, u0map, pmap, Dict(), unknowns(sys),
242242
parameters(sys; initial_parameters = true))
243243
for (k, v) in op
244244
if has_parameter_dependency_with_lhs(sys, k) && is_variable_floatingpoint(k)

test/initializationsystem.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1664,3 +1664,10 @@ end
16641664
sol = solve(prob, Tsit5())
16651665
@test SciMLBase.successful_retcode(sol)
16661666
end
1667+
1668+
@testset "Defaults removed with ` => nothing` aren't retained" begin
1669+
@variables x(t)[1:2]
1670+
@mtkbuild sys = System([D(x[1]) ~ -x[1], x[1] + x[2] ~ 3], t; defaults = [x[1] => 1])
1671+
prob = ODEProblem(sys, [x[1] => nothing, x[2] => 1], (0.0, 1.0))
1672+
@test SciMLBase.initialization_status(prob) == SciMLBase.FULLY_DETERMINED
1673+
end

0 commit comments

Comments
 (0)