Skip to content

Commit d21883e

Browse files
fix: fix structural_simplify/@mtkbuild for JumpSystem
1 parent eb329c2 commit d21883e

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/systems/systems.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function structural_simplify(
2828
end
2929
if newsys isa ODESystem
3030
@set! newsys.parent = complete(sys; split)
31-
else
31+
elseif has_parent(newsys)
3232
@set! newsys.parent = complete(sys; split)
3333
end
3434
newsys = complete(newsys; split)
@@ -49,6 +49,11 @@ function structural_simplify(
4949
return newsys
5050
end
5151
end
52+
53+
function __structural_simplify(sys::JumpSystem, args...; kwargs...)
54+
return sys
55+
end
56+
5257
function __structural_simplify(sys::AbstractSystem, io = nothing; simplify = false,
5358
kwargs...)
5459
sys = expand_connections(sys)

test/jumpsystem.jl

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,17 @@ dp2 = DiscreteProblem(js2, u0, tspan)
256256
dp3 = DiscreteProblem(js3, u0, tspan, ps)
257257
dp4 = DiscreteProblem(js4, u0, tspan)
258258

259-
jp1 = JumpProblem(js1, dp1, Direct())
260-
jp2 = JumpProblem(js2, dp2, Direct())
261-
jp3 = JumpProblem(js3, dp3, Direct())
262-
jp4 = JumpProblem(js4, dp4, Direct())
259+
@test_nowarn jp1 = JumpProblem(js1, dp1, Direct())
260+
@test_nowarn jp2 = JumpProblem(js2, dp2, Direct())
261+
@test_nowarn jp3 = JumpProblem(js3, dp3, Direct())
262+
@test_nowarn jp4 = JumpProblem(js4, dp4, Direct())
263+
264+
# Ensure `structural_simplify` (and `@mtkbuild`) works on JumpSystem (by doing nothing)
265+
# Issue#2558
266+
@parameters k
267+
@variables X(t)
268+
rate = k
269+
affect = [X ~ X - 1]
270+
271+
j1 = ConstantRateJump(k, [X ~ X - 1])
272+
@test_nowarn @mtkbuild js1 = JumpSystem([j1], t, [X], [k])

0 commit comments

Comments
 (0)