Skip to content

Commit 3f99914

Browse files
fix: fix simplification of empty systems
1 parent 413a98e commit 3f99914

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/systems/systemstructure.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -928,7 +928,7 @@ function mtkcompile!(state::TearingState; simplify = false,
928928
time_domains = merge(Dict(state.fullvars .=> ci.var_domain),
929929
Dict(default_toterm.(state.fullvars) .=> ci.var_domain))
930930
tss, clocked_inputs, continuous_id, id_to_clock = ModelingToolkit.split_system(ci)
931-
if continuous_id == 0
931+
if !isempty(tss) && continuous_id == 0
932932
# do a trait check here - handle fully discrete system
933933
additional_passes = get(kwargs, :additional_passes, nothing)
934934
if !isnothing(additional_passes) && any(discrete_compile_pass, additional_passes)

test/odesystem.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,3 +1628,9 @@ import Test: @test
16281628
@mtkbuild sys = System(D(x) ~ t, t)
16291629
@test sys isa System
16301630
end
1631+
1632+
@testset "Empty system can be simplified" begin
1633+
@named sys = System(Equation[], t)
1634+
ss = mtkcompile(sys)
1635+
@test length(equations(ss)) == length(unknowns(ss)) == 0
1636+
end

0 commit comments

Comments
 (0)