I mentioned this on slack, but I took me a while to create an MWE, so I’m posting it here again.
Here is the MWE:
using ModelingToolkit
@variables t u(t)[1:2]
D=Differential(t)
eqs = [u[1] ~ 1
D(u[2]) ~ u[1]-u[2]]
@named sys = ODESystem(eqs) #Model sys with 2 equations
sys = structural_simplify(sys) #Model sys with 1 equations
sys = structural_simplify(sys) #ERROR: ExtraVariablesSystemException...
The error is
ERROR: ExtraVariablesSystemException: The system is unbalanced. There are 2 highest order derivative variables and 1 equations.
More variables than equations, here are the potential extra variable(s):
(u(t))[2]
(u(t))[1]
Stacktrace:
[5] structural_simplify(sys::ODESystem, io::Nothing; simplify::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ ModelingToolkit C:\Users\*\.julia\packages\ModelingToolkit\QxF9d\src\systems\systems.jl:39 [6] structural_simplify (repeats 2 times)
@ C:\Users\*\.julia\packages\ModelingToolkit\QxF9d\src\systems\systems.jl:19 [inlined]
[7] top-level scope
I was informed on slack that this error is not expected, but is it a problem? I guess there isnt really a reason to use structural_simplify in this way, should I open an Issue anyway?