Skip to content

Instantly share code, notes, and snippets.

@contradict
Last active November 27, 2020 23:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save contradict/948cf099fa7e191de9a6ffff06f97f15 to your computer and use it in GitHub Desktop.
Save contradict/948cf099fa7e191de9a6ffff06f97f15 to your computer and use it in GitHub Desktop.
Error using ModelingToolkit
using ModelingToolkit, IfElse
# Extracted from a model of a pneumatic system, just a valve and part of the cylinder DiffEQ.
# Approximate shape of the valve response to a command
function deadbandTanh(command, deadband)
tanhmin = -one(command)
tanhmax = one(command)
s = (command - deadband) / (one(command) - deadband) * (tanhmax - tanhmin) + tanhmin
IfElse.ifelse(signbit(deadband - command), (tanh(s) - tanh(tanhmin) ) / (tanh(tanhmax) - tanh(tanhmin)), 0)
end
# response scaled to valve area
valveArea(command, Amax, db) = Amax * deadbandTanh(abs(command), db)
# choked or subsonic flow
massFlow(Pu, Pd, T, Cd, a) = IfElse.ifelse(
signbit(1.0 - Pu/Pd),
a*sqrt(Pu/T*Pu),
Cd * a * sqrt(2 * Pu / T * Pu * ((Pd/Pu)^2 - (Pd/Pu)^3)))
# Is air flowing in our out of the cylinder?
function valveFlow(command, P, Pin, T, Cd, Amax, db)
a = valveArea(command, Amax, db)
IfElse.ifelse(
signbit(P - Pin),
massFlow(Pin, P, T, Cd, a),
-massFlow(P, Pin, T, Cd, a))
end
# select only air flowing into the cylinder
inflow(x) = IfElse.ifelse(signbit(-x), x, 0)
function example()
@parameters t Pin Tin
@variables u(t) Pb(t)
@derivatives D'~t
eqs = [
D(Pb) ~ inflow(valveFlow(u, Pb, Pin, Tin, 1, 1, 0.07)),
]
sys = ODESystem(eqs)
calculate_jacobian(sys)
end
example()
julia> include("example.jl")
ERROR: LoadError: Failed to apply rule ~(z::_isone) * ~x => ~x on expression (1 * sqrt((((2 * Pin) / Tin) * Pin) * (((Pb(t) / Pin) ^ 2) - ((Pb(t) / Pin) ^ 3)))) * (1 * ifelse(signbit(0.07 - abs(u(t))), (tanh((((abs(u(t)) - 0.07) / 0.9299999999999999) * 2) + -1) - -0.7615941559557649) / 1.5231883119115297, 0))
Stacktrace:
[1] (::SymbolicUtils.Rule{Term{Any},SymbolicUtils.var"#term_matcher#46"{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}},SymbolicUtils.var"#101#170"})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rule.jl:142
[2] (::SymbolicUtils.ACRule{typeof(Combinatorics.combinations),SymbolicUtils.Rule{Term{Any},SymbolicUtils.var"#term_matcher#46"{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}},SymbolicUtils.var"#101#170"}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rule.jl:324
[3] (::SymbolicUtils.Rewriters.Chain)(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:59
[4] (::SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#22#23"{typeof(*)},SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48
[5] (::SymbolicUtils.Rewriters.Chain)(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:59
[6] (::SymbolicUtils.Rewriters.RestartedChain{Array{SymbolicUtils.Rewriters.IfElse{F,SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty} where F,1}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:76
[7] (::SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#151#223",SymbolicUtils.Rewriters.RestartedChain{Array{SymbolicUtils.Rewriters.IfElse{F,SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty} where F,1}},SymbolicUtils.Rewriters.Empty})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48
[8] (::SymbolicUtils.Rewriters.Chain)(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:59
[9] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:140
[10] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[11] iterate at ./generator.jl:47 [inlined]
[12] collect_to!(::Array{Term,1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:732
[13] collect_to!(::Array{Term{Real},1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:740
[14] collect_to_with_first!(::Array{Term{Real},1}, ::Term{Real}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64) at ./array.jl:710
[15] _collect(::Array{Term,1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:704
[16] collect_similar at ./array.jl:628 [inlined]
[17] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term,1}) at ./abstractarray.jl:2162
[18] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[19] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[20] iterate at ./generator.jl:47 [inlined]
[21] collect_to!(::Array{Term{Real},1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:732
[22] collect_to_with_first!(::Array{Term{Real},1}, ::Term{Real}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64) at ./array.jl:710
[23] _collect(::Array{Term,1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:704
[24] collect_similar at ./array.jl:628 [inlined]
[25] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term,1}) at ./abstractarray.jl:2162
[26] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[27] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[28] iterate at ./generator.jl:47 [inlined]
[29] _collect(::Array{Term{Real},1}, ::Base.Generator{Array{Term{Real},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:699
... (the last 6 lines are repeated 3 more times)
[48] collect_similar at ./array.jl:628 [inlined]
[49] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term,1}) at ./abstractarray.jl:2162
[50] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[51] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[52] iterate at ./generator.jl:47 [inlined]
[53] collect_to!(::Array{Term{Number},1}, ::Base.Generator{Array{Term{Number},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:732
[54] collect_to_with_first!(::Array{Term{Number},1}, ::Term{Number}, ::Base.Generator{Array{Term{Number},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64) at ./array.jl:710
[55] _collect(::Array{Term{Number},1}, ::Base.Generator{Array{Term{Number},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:704
[56] collect_similar at ./array.jl:628 [inlined]
[57] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term{Number},1}) at ./abstractarray.jl:2162
[58] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[59] IfElse at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48 [inlined]
[60] (::SymbolicUtils.Rewriters.Fixpoint{SymbolicUtils.Rewriters.IfElse{typeof(SymbolicUtils.has_trig),SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#149#221",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#150#222",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty}},false},SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:101
[61] IfElse at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48 [inlined]
[62] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.IfElse{typeof(SymbolicUtils.istree),SymbolicUtils.Rewriters.Fixpoint{SymbolicUtils.Rewriters.IfElse{typeof(SymbolicUtils.has_trig),SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#149#221",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#150#222",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty}},false},SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}},SymbolicUtils.Rewriters.Empty}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[63] simplify(::Term{Number}; polynorm::Bool, threaded::Bool, thread_subtree_cutoff::Int64, rewriter::Nothing) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/api.jl:29
[64] simplify(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/api.jl:17
[65] expand_derivatives(::Term{Real}, ::Bool; occurances::Nothing) at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/differentials.jl:126
[66] expand_derivatives at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/differentials.jl:65 [inlined]
[67] jacobian(::Array{Term{Real},1}, ::Array{Term{Real},1}; simplify::Bool) at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/direct.jl:22
[68] calculate_jacobian(::ODESystem; sparse::Bool, simplify::Bool) at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/systems/diffeqs/abstractodesystem.jl:32
[69] calculate_jacobian at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/systems/diffeqs/abstractodesystem.jl:23 [inlined]
[70] MWE() at /home/russel/Desktop/Chomp/Stomp/WalkingSimulation/Pneumatic/example.jl:40
[71] top-level scope at /home/russel/Desktop/Chomp/Stomp/WalkingSimulation/Pneumatic/example.jl:43
[72] include(::String) at ./client.jl:457
in expression starting at /home/russel/Desktop/Chomp/Stomp/WalkingSimulation/Pneumatic/example.jl:43
caused by [exception 1]
TypeError: non-boolean (Term{Bool}) used in boolean context
Stacktrace:
[1] (::SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}})(::SymbolicUtils.var"#45#48"{SymbolicUtils.LL{SubArray{Num,1,Array{Num,1},Tuple{Array{Int64,1}},false}},SymbolicUtils.LL{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}}}, ::SymbolicUtils.LL{SubArray{Num,1,Array{Num,1},Tuple{Array{Int64,1}},false}}, ::Base.ImmutableDict{Symbol,Any}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/matchers.jl:23
[2] (::SymbolicUtils.var"#loop#47"{SymbolicUtils.var"#34#35"{SymbolicUtils.var"#101#170"}})(::SymbolicUtils.LL{SubArray{Num,1,Array{Num,1},Tuple{Array{Int64,1}},false}}, ::Base.ImmutableDict{Symbol,Any}, ::SymbolicUtils.LL{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/matchers.jl:100
[3] (::SymbolicUtils.var"#45#48"{Term{Number},Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}})(::Base.ImmutableDict{Symbol,Any}, ::Int64) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/matchers.jl:101
[4] (::SymbolicUtils.var"#literal_matcher#42"{typeof(*)})(::SymbolicUtils.var"#45#48"{Term{Number},Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}}, ::Term{Number}, ::Base.ImmutableDict{Symbol,Any}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/matchers.jl:10
[5] (::SymbolicUtils.var"#loop#47"{SymbolicUtils.var"#34#35"{SymbolicUtils.var"#101#170"}})(::Term{Number}, ::Base.ImmutableDict{Symbol,Any}, ::Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/matchers.jl:100
[6] (::SymbolicUtils.var"#term_matcher#46"{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}})(::SymbolicUtils.var"#34#35"{SymbolicUtils.var"#101#170"}, ::Tuple{Term{Number}}, ::Base.ImmutableDict{Symbol,Any}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/matchers.jl:105
[7] (::SymbolicUtils.Rule{Term{Any},SymbolicUtils.var"#term_matcher#46"{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}},SymbolicUtils.var"#101#170"})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rule.jl:137
[8] (::SymbolicUtils.ACRule{typeof(Combinatorics.combinations),SymbolicUtils.Rule{Term{Any},SymbolicUtils.var"#term_matcher#46"{Tuple{SymbolicUtils.var"#literal_matcher#42"{typeof(*)},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils._isone)}},SymbolicUtils.var"#slot_matcher#43"{SymbolicUtils.Slot{typeof(SymbolicUtils.alwaystrue)}}}},SymbolicUtils.var"#101#170"}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rule.jl:324
[9] (::SymbolicUtils.Rewriters.Chain)(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:59
[10] (::SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#22#23"{typeof(*)},SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48
[11] (::SymbolicUtils.Rewriters.Chain)(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:59
[12] (::SymbolicUtils.Rewriters.RestartedChain{Array{SymbolicUtils.Rewriters.IfElse{F,SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty} where F,1}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:76
[13] (::SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#151#223",SymbolicUtils.Rewriters.RestartedChain{Array{SymbolicUtils.Rewriters.IfElse{F,SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty} where F,1}},SymbolicUtils.Rewriters.Empty})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48
[14] (::SymbolicUtils.Rewriters.Chain)(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:59
[15] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:140
[16] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[17] iterate at ./generator.jl:47 [inlined]
[18] collect_to!(::Array{Term,1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:732
[19] collect_to!(::Array{Term{Real},1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:740
[20] collect_to_with_first!(::Array{Term{Real},1}, ::Term{Real}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64) at ./array.jl:710
[21] _collect(::Array{Term,1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:704
[22] collect_similar at ./array.jl:628 [inlined]
[23] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term,1}) at ./abstractarray.jl:2162
[24] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[25] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[26] iterate at ./generator.jl:47 [inlined]
[27] collect_to!(::Array{Term{Real},1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:732
[28] collect_to_with_first!(::Array{Term{Real},1}, ::Term{Real}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64) at ./array.jl:710
[29] _collect(::Array{Term,1}, ::Base.Generator{Array{Term,1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:704
[30] collect_similar at ./array.jl:628 [inlined]
[31] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term,1}) at ./abstractarray.jl:2162
[32] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[33] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Real}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[34] iterate at ./generator.jl:47 [inlined]
[35] _collect(::Array{Term{Real},1}, ::Base.Generator{Array{Term{Real},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:699
... (the last 6 lines are repeated 3 more times)
[54] collect_similar at ./array.jl:628 [inlined]
[55] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term,1}) at ./abstractarray.jl:2162
[56] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[57] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[58] iterate at ./generator.jl:47 [inlined]
[59] collect_to!(::Array{Term{Number},1}, ::Base.Generator{Array{Term{Number},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64, ::Int64) at ./array.jl:732
[60] collect_to_with_first!(::Array{Term{Number},1}, ::Term{Number}, ::Base.Generator{Array{Term{Number},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Int64) at ./array.jl:710
[61] _collect(::Array{Term{Number},1}, ::Base.Generator{Array{Term{Number},1},SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:704
[62] collect_similar at ./array.jl:628 [inlined]
[63] map(::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}, ::Array{Term{Number},1}) at ./abstractarray.jl:2162
[64] (::SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:138
[65] IfElse at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48 [inlined]
[66] (::SymbolicUtils.Rewriters.Fixpoint{SymbolicUtils.Rewriters.IfElse{typeof(SymbolicUtils.has_trig),SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#149#221",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#150#222",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty}},false},SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:101
[67] IfElse at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:48 [inlined]
[68] (::SymbolicUtils.Rewriters.PassThrough{SymbolicUtils.Rewriters.IfElse{typeof(SymbolicUtils.istree),SymbolicUtils.Rewriters.Fixpoint{SymbolicUtils.Rewriters.IfElse{typeof(SymbolicUtils.has_trig),SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#149#221",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.IfElse{SymbolicUtils.var"#150#222",SymbolicUtils.Rewriters.Chain,SymbolicUtils.Rewriters.Empty}},false},SymbolicUtils.Rewriters.Walk{:post,SymbolicUtils.Rewriters.Chain,false}}},SymbolicUtils.Rewriters.Empty}})(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/rewriters.jl:128
[69] simplify(::Term{Number}; polynorm::Bool, threaded::Bool, thread_subtree_cutoff::Int64, rewriter::Nothing) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/api.jl:29
[70] simplify(::Term{Number}) at /home/russel/.julia/packages/SymbolicUtils/K1sGK/src/api.jl:17
[71] expand_derivatives(::Term{Real}, ::Bool; occurances::Nothing) at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/differentials.jl:126
[72] expand_derivatives at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/differentials.jl:65 [inlined]
[73] jacobian(::Array{Term{Real},1}, ::Array{Term{Real},1}; simplify::Bool) at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/direct.jl:22
[74] calculate_jacobian(::ODESystem; sparse::Bool, simplify::Bool) at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/systems/diffeqs/abstractodesystem.jl:32
[75] calculate_jacobian at /home/russel/.julia/packages/ModelingToolkit/CPB4Z/src/systems/diffeqs/abstractodesystem.jl:23 [inlined]
[76] MWE() at /home/russel/Desktop/Chomp/Stomp/WalkingSimulation/Pneumatic/example.jl:40
[77] top-level scope at /home/russel/Desktop/Chomp/Stomp/WalkingSimulation/Pneumatic/example.jl:43
[78] include(::String) at ./client.jl:457
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment