Open
Description
using OrdinaryDiffEq, ModelingToolkit
function purcell_single_ode(du,u,p,t)
Δ,g,κ,γ = p
α = u[1]
dα = -γ/2 * α
for i in 1:length(Δ)
β = u[1+i]
dα += -1im*(g[i]*β)
du[1+i] = -1im*(Δ[i]*β + g[i]*α) - κ[i]/2*β
end
du[1] = dα
return nothing
end
fun = ODEFunction{true}(purcell_single_ode);
p = (Δ=[5,-8,2], g=[0.4,0.08,0.1]*2π, κ=[2,3,1], γ=0.02)
prob = ODEProblem(fun,ComplexF64[1;zeros(length(p.Δ))],(0.0,5),p)
sol = solve(prob,DP8(),abstol=1e-9,reltol=1e-9);
sys = modelingtoolkitize(prob)
ERROR: KeyError: key 'Δ' not found
Stacktrace:
[1] getindex at .\dict.jl:477 [inlined]
[2] #1 at .\none:0 [inlined]
[3] iterate at .\generator.jl:47 [inlined]
[4] join(::Base.GenericIOBuffer{Array{UInt8,1}}, ::Base.Generator{String,ModelingToolkit.var"#1#2"}, ::String) at .\strings\io.jl:294
[5] join(::Base.GenericIOBuffer{Array{UInt8,1}}, ::Base.Generator{String,ModelingToolkit.var"#1#2"}) at .\strings\io.jl:293
[6] sprint(::Function, ::Base.Generator{String,ModelingToolkit.var"#1#2"}; context::Nothing, sizehint::Int64) at .\strings\io.jl:105
[7] sprint at .\strings\io.jl:101 [inlined]
[8] join at .\strings\io.jl:300 [inlined]
[9] map_subscripts at C:\Users\Jeremy\.julia\packages\ModelingToolkit\TAGTl\src\variables.jl:14 [inlined]
[10] _broadcast_getindex_evalf at .\broadcast.jl:631 [inlined]
[11] _broadcast_getindex at .\broadcast.jl:604 [inlined]
[12] #19 at .\broadcast.jl:1024 [inlined]
[13] ntuple at .\ntuple.jl:41 [inlined]
[14] copy at .\broadcast.jl:1024 [inlined]
[15] materialize at .\broadcast.jl:820 [inlined]
[16] Variable(::Symbol, ::Symbol) at C:\Users\Jeremy\.julia\packages\ModelingToolkit\TAGTl\src\variables.jl:59
[17] #111 at .\none:0 [inlined]
[18] iterate at .\generator.jl:47 [inlined]
[19] collect(::Base.Generator{NTuple{4,Symbol},ModelingToolkit.var"#111#114"}) at .\array.jl:665
[20] modelingtoolkitize(::ODEProblem{Array{Complex{Float64},1},Tuple{Float64,Float64},true,NamedTuple{(:Δ, :g, :κ, :γ),Tuple{Array{Int64,1},Array{Float64,1},Array{Int64,1},Float64}},ODEFunction{true,typeof(purcell_single_ode),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}) at C:\Users\Jeremy\.julia\packages\ModelingToolkit\TAGTl\src\systems\diffeqs\modelingtoolkitize.jl:11