Skip to content

Commit 9462b80

Browse files
fix: ensure => nothing overrides defaults
1 parent 88bd570 commit 9462b80

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
@@ -42,7 +42,7 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
4242
op = anydict(op)
4343
u0map = anydict()
4444
pmap = anydict()
45-
build_operating_point!(sys, op, u0map, pmap, defs, unknowns(sys),
45+
build_operating_point!(sys, op, u0map, pmap, Dict(), unknowns(sys),
4646
parameters(sys; initial_parameters = true))
4747
for (k, v) in op
4848
if has_parameter_dependency_with_lhs(sys, k) && is_variable_floatingpoint(k)
@@ -113,7 +113,7 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
113113

114114
# 3) process other variables
115115
for var in vars
116-
if var keys(defs)
116+
if var keys(op)
117117
push!(eqs_ics, var ~ defs[var])
118118
elseif var keys(guesses)
119119
push!(defs, var => guesses[var])
@@ -207,7 +207,7 @@ function generate_initializesystem_timeindependent(sys::AbstractSystem;
207207
op = anydict(op)
208208
u0map = anydict()
209209
pmap = anydict()
210-
build_operating_point!(sys, op, u0map, pmap, defs, unknowns(sys),
210+
build_operating_point!(sys, op, u0map, pmap, Dict(), unknowns(sys),
211211
parameters(sys; initial_parameters = true))
212212
for (k, v) in op
213213
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)