-
-
Notifications
You must be signed in to change notification settings - Fork 233
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
The example
using ModelingToolkit
using ModelingToolkit: t_nounits as t, D_nounits as D
@testset "Non-1-indexed variable array" begin
@variables x(t)[0:1] # 0-indexed variable array
sys = ODESystem([
x[0] ~ 0.0
D(x[1]) ~ x[0]
], t, [x], []; name=:sys)
@test_nowarn sys = structural_simplify(sys)
@test equations(sys) == [D(x[1]) ~ 0.0]
end
fails because this hack tries to access the 1-indexed vector [x[0], x[1]]
at index [0]
:
BoundsError: attempt to access 2-element Vector{SymbolicUtils.BasicSymbolic{Real}} at index [0]
Stacktrace:
[1] getindex(A::Vector{SymbolicUtils.BasicSymbolic{Real}}, i1::Int64)
@ Base .\essentials.jl:13
[2] fast_substitute(expr::SymbolicUtils.BasicSymbolic{Real},
subs::Dict{Any, Any}; operator::Type)
@ Symbolics C:\Users\herma\.julia\packages\Symbolics\Eas9m\src\variable.jl:489
[3] fast_substitute(eq::Equation, subs::Dict{Any, Any}; operator::Type)
@ Symbolics C:\Users\herma\.julia\packages\Symbolics\Eas9m\src\variable.jl:455
[4] tearing_reassemble(state::TearingState{ODESystem}, var_eq_matching::ModelingToolkit.BipartiteGraphs.Matching{Union{ModelingToolkit.BipartiteGraphs.Unassigned, ModelingToolkit.StructuralTransformations.SelectedState}, Vector{Union{ModelingToolkit.BipartiteGraphs.Unassigned, ModelingToolkit.StructuralTransformations.SelectedState, Int64}}}, full_var_eq_matching::Nothing; simplify::Bool, mm::ModelingToolkit.SparseMatrixCLIL{Int64, Int64})
@ ModelingToolkit.StructuralTransformations C:\Users\herma\.julia\packages\ModelingToolkit\kByuD\src\structural_transformation\symbolics_tearing.jl:582
[5] tearing_reassemble (repeats 2 times)
@ C:\Users\herma\.julia\packages\ModelingToolkit\kByuD\src\structural_transformation\symbolics_tearing.jl:220 [inlined]
[6] #dummy_derivative#128
@ C:\Users\herma\.julia\packages\ModelingToolkit\kByuD\src\structural_transformation\symbolics_tearing.jl:675 [inlined]
[7] _structural_simplify!(state::TearingState{ODESystem}, io::Nothing; simplify::Bool, check_consistency::Bool, fully_determined::Bool, warn_initialize_determined::Bool, dummy_derivative::Bool, kwargs::@Kwargs{})
@ ModelingToolkit C:\Users\herma\.julia\packages\ModelingToolkit\kByuD\src\systems\systemstructure.jl:692
[8] _structural_simplify!
@ C:\Users\herma\.julia\packages\ModelingToolkit\kByuD\src\systems\systemstructure.jl:672 [inlined]
[9] structural_simplify!(state::TearingState{ODESystem}, io::Nothing; simplify::Bool, check_consistency::Bool, fully_determined::Bool, warn_initialize_determined::Bool, kwargs::@Kwargs{})
@ ModelingToolkit C:\Users\herma\.julia\packages\ModelingToolkit\kByuD\src\systems\systemstructure.jl:635
...
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working