Skip to content

Commit 33edf5c

Browse files
Merge pull request #4780 from SciML/as/singular-param-eqs
fix: allow parameter-only equations after `mtkcompile`
2 parents 7518dff + 09102da commit 33edf5c

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

lib/ModelingToolkitBase/src/systems/abstractsystem.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,8 @@ This namespacing functionality can also be toggled independently of `complete`
632632
using [`toggle_namespacing`](@ref).
633633
"""
634634
function complete(
635-
sys::T; split = true, flatten = true, add_initial_parameters = true
635+
sys::T; split = true, flatten = true, add_initial_parameters = true,
636+
allow_parameter_eqs = false
636637
) where {T <: AbstractSystem}
637638
sys = discover_globalscoped(sys)
638639

@@ -647,7 +648,7 @@ function complete(
647648
@set! newsys.parent = complete(sys; split = false, flatten = false)::T
648649
end
649650
sys = newsys
650-
check_no_parameter_equations(sys)
651+
allow_parameter_eqs || check_no_parameter_equations(sys)
651652
_unhack_sys = reverse_all_default_reversible_transformations(sys)
652653
if add_initial_parameters
653654
sys = add_initialization_parameters(sys; split, _unhack_sys)::T

lib/ModelingToolkitBase/src/systems/systems.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ function mtkcompile(
106106
newsys = pass(newsys)
107107
end
108108
@set! newsys.parent = toggle_namespacing(sys, false)
109-
newsys = complete(newsys; split)
109+
# Singular systems may end up with parameter-only equations, which shouldn't error on `complete`
110+
newsys = complete(newsys; split, allow_parameter_eqs = true)
110111
return newsys
111112
end
112113

0 commit comments

Comments
 (0)