Skip to content

Commit b03e284

Browse files
fix: fix MTKParameters creation using defaults of parameters not in the system
1 parent a203b86 commit b03e284

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/systems/parameter_buffer.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ function MTKParameters(
3232
p = Dict()
3333
end
3434
p = todict(p)
35-
defs = Dict(default_toterm(unwrap(k)) => v
36-
for (k, v) in defaults(sys)
37-
if unwrap(k) in all_ps || default_toterm(unwrap(k)) in all_ps)
35+
defs = Dict(default_toterm(unwrap(k)) => v for (k, v) in defaults(sys))
3836
if eltype(u0) <: Pair
3937
u0 = todict(u0)
4038
elseif u0 isa AbstractArray && !isempty(u0)

test/initial_values.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,20 @@ target_varmap = Dict(p => ones(3), q => 2ones(3), q[1] => 2.0, q[2] => 2.0, q[3]
7474
eqs = [D(D(z)) ~ ones(2, 2)]
7575
@mtkbuild sys = ODESystem(eqs, t)
7676
@test_nowarn ODEProblem(sys, [z => zeros(2, 2), D(z) => ones(2, 2)], (0.0, 10.0))
77+
78+
# Initialization with defaults involving parameters that are not part of the system
79+
# Issue#2817
80+
@parameters A1 A2 B1 B2
81+
@variables x1(t) x2(t)
82+
@mtkbuild sys = ODESystem(
83+
[
84+
x1 ~ B1,
85+
x2 ~ B2
86+
], t; defaults = [
87+
A2 => 1 - A1,
88+
B1 => A1,
89+
B2 => A2
90+
])
91+
prob = ODEProblem(sys, [], (0.0, 1.0), [A1 => 0.3])
92+
@test prob.ps[B1] == 0.3
93+
@test prob.ps[B2] == 0.7

0 commit comments

Comments
 (0)