Skip to content

Commit 570cf35

Browse files
fix: fix MTKParameters construction edge case
1 parent 19d6280 commit 570cf35

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/systems/parameter_buffer.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function MTKParameters(
3939
u0 = Dict()
4040
end
4141
defs = merge(defs, u0)
42-
defs = merge(defs, Dict(eq.lhs => eq.rhs for eq in observed(sys)))
42+
defs = merge(Dict(eq.lhs => eq.rhs for eq in observed(sys)), defs)
4343
p = merge(defs, p)
4444
p = merge(Dict(unwrap(k) => v for (k, v) in p),
4545
Dict(default_toterm(unwrap(k)) => v for (k, v) in p))

test/initial_values.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,17 @@ desired_values = [p1, p2, p3]
4646
defaults = Dict([p3 => X])
4747
vals = ModelingToolkit.varmap_to_vars(var_vals, desired_values; defaults = defaults)
4848
@test vals == [1.0, 2.0, 3.0]
49+
50+
# Issue#2565
51+
# Create ODESystem.
52+
@variables X1(t) X2(t)
53+
@parameters k1 k2 Γ[1:1]=X1 + X2
54+
eq = D(X1) ~ -k1 * X1 + k2 * (-X1 + Γ[1])
55+
obs = X2 ~ Γ[1] - X1
56+
@mtkbuild osys_m = ODESystem([eq], t, [X1], [k1, k2, Γ[1]]; observed = [X2 ~ Γ[1] - X1])
57+
58+
# Creates ODEProblem.
59+
u0 = [X1 => 1.0, X2 => 2.0]
60+
tspan = (0.0, 1.0)
61+
ps = [k1 => 1.0, k2 => 5.0]
62+
@test_nowarn oprob = ODEProblem(osys_m, u0, tspan, ps)

0 commit comments

Comments
 (0)