Skip to content

Conversation

@blegat
Copy link
Contributor

@blegat blegat commented May 6, 2025

When executing this example line by line, the output of the line:

matrices, simplified_sys = linearize(filt_ckt, [filter_input.V.u],[filter_output.v]; op)

gives

((A = [-1.0;;], B = [1.0;;], C = [1.0;;], D = [0.0;;]), ODESystem(0x000000000000001e, Equation[Differential(t)(capacitor₊v(t)) ~ capacitor₊i(t) / capacitor₊C], t, Any[capacitor₊v(t)], Any[resistor₊R, filter_input₊V₊u(t), capacitor₊C, Initial(capacitor₊p₊v(t)), Initial(capacitor₊p₊iˍt(t)), Initial(filter_output₊vˍt(t)), Initial(filter_input₊iˍt(t)), Initial(filter_input₊p₊v(t)), Initial(ground₊g₊vˍt(t)), Initial(resistor₊i(t))  …  Initial(filter_input₊n₊v(t)), Initial(filter_output₊p₊iˍt(t)), Initial(resistor₊v(t)), Initial(resistor₊p₊i(t)), Initial(capacitor₊p₊i(t)), Initial(filter_input₊p₊iˍt(t)), Initial(filter_output₊v(t)), Initial(filter_output₊p₊i(t)), Initial(resistor₊vˍt(t)), Initial(filter_input₊v(t))], nothing, Dict{Any, Any}(:resistor₊R => resistor₊R, :filter_input₊v => filter_input₊v(t), :capacitor₊p₊v => capacitor₊p₊v(t), :filter_input₊n₊v => filter_input₊n₊v(t), :resistor₊i => resistor₊i(t), :filter_output₊p₊i => filter_output₊p₊i(t), :ground₊g₊v => ground₊g₊v(t), :capacitor₊C => capacitor₊C, :filter_input₊p₊i => filter_input₊p₊i(t), :filter_input₊i => filter_input₊i(t)…), Any[], Equation[filter_input₊v(t) ~ filter_input₊V₊u(t), capacitor₊p₊v(t) ~ capacitor₊v(t), filter_output₊p₊i(t) ~ 0.0, filter_output₊n₊i(t) ~ 0.0, ground₊g₊v(t) ~ 0.0, capacitor₊n₊v(t) ~ -0.0, filter_input₊n₊v(t) ~ 0.0, filter_output₊n₊v(t) ~ -0.0, resistor₊v(t) ~ -capacitor₊v(t) + filter_input₊v(t), filter_input₊p₊v(t) ~ filter_input₊v(t)  …  filter_output₊p₊v(t) ~ filter_output₊v(t), resistor₊p₊i(t) ~ resistor₊i(t), capacitor₊i(t) ~ resistor₊i(t), filter_input₊i(t) ~ -resistor₊i(t), resistor₊n₊i(t) ~ -resistor₊p₊i(t), capacitor₊n₊i(t) ~ -capacitor₊i(t), capacitor₊p₊i(t) ~ capacitor₊i(t), ground₊g₊i(t) ~ -resistor₊i(t) + capacitor₊i(t), filter_input₊p₊i(t) ~ filter_input₊i(t), filter_input₊n₊i(t) ~ -filter_input₊p₊i(t)], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :filt_ckt, "", ODESystem[], Dict{Any, Any}(Initial(capacitor₊p₊v(t)) => false, Initial(capacitor₊p₊iˍt(t)) => false, Initial(filter_output₊vˍt(t)) => false, Initial(filter_input₊iˍt(t)) => false, Initial(filter_input₊p₊v(t)) => false, Initial(ground₊g₊vˍt(t)) => false, Initial(resistor₊i(t)) => false, capacitor₊C => 1.0, Initial(capacitor₊p₊vˍt(t)) => false, resistor₊R => 1.0…), Dict{Any, Any}(filter_input₊V₊u(t) => 0.0), nothing, nothing, Equation[], ModelingToolkit.Schedule(Union{ModelingToolkit.BipartiteGraphs.Unassigned, ModelingToolkit.StructuralTransformations.SelectedState, Int64}[8, ModelingToolkit.StructuralTransformations.SelectedState(), 17, 1, 19, 2, 3, 4, 22, 5  …  10, 11, 18, 13, 14, 24, 15, 20, 16, 25], Dict{Any, Any}(Differential(t)(capacitor₊v(t)) => capacitor₊i(t) / capacitor₊C)), nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, nothing, false, Any[], TearingState of ODESystem, ModelingToolkit.Substitutions(Equation[filter_input₊v(t) ~ filter_input₊V₊u(t), capacitor₊p₊v(t) ~ capacitor₊v(t), filter_output₊p₊i(t) ~ 0.0, filter_output₊n₊i(t) ~ 0.0, ground₊g₊v(t) ~ 0.0, capacitor₊n₊v(t) ~ -0.0, filter_input₊n₊v(t) ~ 0.0, filter_output₊n₊v(t) ~ -0.0, resistor₊v(t) ~ -capacitor₊v(t) + filter_input₊v(t), filter_input₊p₊v(t) ~ filter_input₊v(t)  …  filter_output₊p₊v(t) ~ filter_output₊v(t), resistor₊p₊i(t) ~ resistor₊i(t), capacitor₊i(t) ~ resistor₊i(t), filter_input₊i(t) ~ -resistor₊i(t), resistor₊n₊i(t) ~ -resistor₊p₊i(t), capacitor₊n₊i(t) ~ -capacitor₊i(t), capacitor₊p₊i(t) ~ capacitor₊i(t), ground₊g₊i(t) ~ -resistor₊i(t) + capacitor₊i(t), filter_input₊p₊i(t) ~ filter_input₊i(t), filter_input₊n₊i(t) ~ -filter_input₊p₊i(t)], [Int64[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9]  …  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  12, 13, 14, 15, 16, 17, 18, 19, 20, 21], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  13, 14, 15, 16, 17, 18, 19, 20, 21, 22], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  14, 15, 16, 17, 18, 19, 20, 21, 22, 23]], nothing), false, true, ModelingToolkit.IndexCache(Dict{SymbolicUtils.BasicSymbolic, Union{Int64, AbstractArray{Int64}}}(filt_ckt₊capacitor₊v(t) => 1, capacitor₊v(t) => 1), Dict{Union{SymbolicUtils.BasicSymbolic, Symbolics.CallWithMetadata}, ModelingToolkit.DiscreteIndex}(), Dict{Any, Vector{Int64}}(), Dict{SymbolicUtils.BasicSymbolic, Union{UnitRange{Int64}, Int64, Base.ReshapedArray{Int64, N, UnitRange{Int64}} where N}}(resistor₊R => 1, filter_input₊V₊u(t) => 2, capacitor₊C => 3), Dict{SymbolicUtils.BasicSymbolic, Union{UnitRange{Int64}, Int64, Base.ReshapedArray{Int64, N, UnitRange{Int64}} where N}}(Initial(capacitor₊p₊v(t)) => 1, Initial(capacitor₊p₊iˍt(t)) => 2, Initial(filter_output₊vˍt(t)) => 3, Initial(filter_input₊iˍt(t)) => 4, Initial(filter_input₊p₊v(t)) => 5, Initial(ground₊g₊vˍt(t)) => 6, Initial(resistor₊i(t)) => 7, Initial(capacitor₊p₊vˍt(t)) => 8, Initial(capacitor₊n₊vˍt(t)) => 9, Initial(filter_input₊p₊i(t)) => 10…), Dict{SymbolicUtils.BasicSymbolic, Tuple{Int64, Int64}}(), Dict{Union{SymbolicUtils.BasicSymbolic, Symbolics.CallWithMetadata}, Tuple{Int64, Int64}}(), Dict{SymbolicUtils.BasicSymbolic, Set{Union{SymbolicIndexingInterface.ContinuousTimeseries, Int64}}}(filt_ckt₊filter_output₊p₊i(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), filter_input₊i(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), filt_ckt₊filter_input₊n₊v(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), filt_ckt₊filter_input₊i(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), capacitor₊p₊i(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), filter_output₊n₊v(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), capacitor₊n₊i(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), filter_output₊p₊i(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), filter_input₊p₊v(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()]), resistor₊n₊v(t) => Set([SymbolicIndexingInterface.ContinuousTimeseries()])…), Dict{Union{SymbolicUtils.BasicSymbolic, Symbolics.CallWithMetadata}, Set{Union{SymbolicIndexingInterface.ContinuousTimeseries, Int64}}}(), Vector{ModelingToolkit.BufferTemplate}[], ModelingToolkit.BufferTemplate(Real, 3), ModelingToolkit.BufferTemplate(Real, 50), ModelingToolkit.BufferTemplate[], ModelingToolkit.BufferTemplate[], Dict{Symbol, Union{SymbolicUtils.BasicSymbolic, Symbolics.CallWithMetadata}}(:filt_ckt₊resistor₊i => filt_ckt₊resistor₊i(t), :filter_input₊v => filter_input₊v(t), :filt_ckt₊resistor₊n₊i => filt_ckt₊resistor₊n₊i(t), :filter_input₊p₊i => filter_input₊p₊i(t), :filt_ckt₊filter_output₊v => filt_ckt₊filter_output₊v(t), :resistor₊p₊v => resistor₊p₊v(t), :capacitor₊n₊i => capacitor₊n₊i(t), :capacitor₊n₊v => capacitor₊n₊v(t), :filt_ckt₊filter_output₊n₊v => filt_ckt₊filter_output₊n₊v(t), :filter_output₊n₊i => filter_output₊n₊i(t)…)), nothing, nothing, nothing, nothing, ODESystem(0x0000000000000017, Equation[connect(filter_input.p, resistor.p), connect(resistor.n, capacitor.p, filter_output.p), connect(filter_input.n, capacitor.n, ground.g, filter_output.n)], t, Any[], Any[], nothing, Dict{Any, Any}(), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :filt_ckt, "", ODESystem[ODESystem(0x0000000000000006, Equation[v(t) ~ p₊v(t) - n₊v(t), 0 ~ n₊i(t) + p₊i(t), i(t) ~ p₊i(t), v(t) ~ R*i(t)], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], SymbolicUtils.BasicSymbolic{Real}[R], nothing, Dict{Any, Any}(:R => R, :v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :resistor, "", ODESystem[ODESystem(0x0000000000000002, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :p, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x0000000000000003, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :n, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing)], Dict{Any, Any}(R => 1.0), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Resistor), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x000000000000000b, Equation[v(t) ~ p₊v(t) - n₊v(t), 0 ~ n₊i(t) + p₊i(t), i(t) ~ p₊i(t), Differential(t)(v(t)) ~ i(t) / C], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], SymbolicUtils.BasicSymbolic{Real}[C], nothing, Dict{Any, Any}(:v => v(t), :i => i(t), :C => C), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :capacitor, "", ODESystem[ODESystem(0x0000000000000007, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :p, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x0000000000000008, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :n, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing)], Dict{Any, Any}(v(t) => 0.0, C => 1.0), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Capacitor), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x0000000000000013, Equation[v(t) ~ p₊v(t) - n₊v(t), 0 ~ n₊i(t) + p₊i(t), i(t) ~ p₊i(t), v(t) ~ V₊u(t)], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :filter_input, "", ODESystem[ODESystem(0x000000000000000e, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :p, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x000000000000000f, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :n, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x0000000000000011, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[u(t)], Any[], nothing, Dict{Any, Any}(:u => u(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :V, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(u(t) => 0.0), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Blocks.RealInput), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing)], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Voltage), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x0000000000000016, Equation[p₊i(t) ~ 0, n₊i(t) ~ 0, v(t) ~ p₊v(t) - n₊v(t)], t, SymbolicUtils.BasicSymbolic{Real}[v(t)], Any[], nothing, Dict{Any, Any}(:v => v(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :filter_output, "", ODESystem[ODESystem(0x0000000000000014, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :p, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x0000000000000015, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :n, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing)], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.VoltageSensor), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing), ODESystem(0x000000000000000d, Equation[g₊v(t) ~ 0], t, Any[], Any[], nothing, Dict{Any, Any}(), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :ground, "", ODESystem[ODESystem(0x000000000000000c, Equation[], t, SymbolicUtils.BasicSymbolic{Real}[v(t), i(t)], Any[], nothing, Dict{Any, Any}(:v => v(t), :i => i(t)), Any[], Equation[], nothing, Any[], nothing, Base.RefValue{Vector{Num}}(Num[]), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Any}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), Base.RefValue{Matrix{Num}}(Matrix{Num}(undef, 0, 0)), :g, "", ODESystem[], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, ModelingToolkit.RegularConnector(), nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Pin), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing)], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, ModelingToolkit.GUIMetadata(:(ModelingToolkitStandardLibrary.Electrical.Ground), nothing), false, Any[], nothing, nothing, true, false, nothing, nothing, nothing, nothing, nothing, nothing)], Dict{Any, Any}(), Dict{Any, Any}(), nothing, nothing, Equation[], nothing, nothing, nothing, ModelingToolkit.SymbolicContinuousCallback[], ModelingToolkit.SymbolicDiscreteCallback[], Equation[], Dict{SymbolicUtils.BasicSymbolic, String}(), nothing, nothing, false, Any[], nothing, nothing, false, true, nothing, nothing, nothing, nothing, nothing, nothing)))

which is bad. The issue is that show(::IO, ::MIME"text/plain", ::Tuple) is redirected to show(::IO, ::Tuple) which then calls show(::IO, simplified_sys) which just calls the default one Base.show_default.
This PR simply redirects that method to the one with MIME"text/plain"

@ChrisRackauckas ChrisRackauckas merged commit 5a80fd0 into SciML:master May 6, 2025
32 of 45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants