-
-
Notifications
You must be signed in to change notification settings - Fork 236
Open
Labels
bugSomething isn't workingSomething isn't working
Description
ERROR: type NameState has no field symbolify when trying to create an ODEProblem.
In the MRE below, creating an ODEProblem fails when extra equations, parameters, variables and initial conditions are added to the pre-existing system.
using ModelingToolkit, DifferentialEquations
const t = Num(Sym{Real}(:t))
const D = Differential(t)
params = @parameters Cₘ, τCa, Ca∞, calc_multiplier, τav, Na₊g, Na₊ENa, CaS₊g, CaT₊g, Ka₊g, Ka₊EK, KCa₊g, KCa₊EK, Kdr₊g, Kdr₊EK, H₊g, H₊EH, leak₊g, leak₊ELeak
vars = @variables V(t), Ca(t), Avg(t), ECa(t), Na₊mNa(t), Na₊hNa(t), Na₊INa(t), CaS₊mCaS(t), CaS₊hCaS(t), CaS₊ICa(t), CaT₊mCaT(t), CaT₊hCaT(t), CaT₊ICa(t), Ka₊mKa(t), Ka₊hKa(t), Ka₊IK(t), KCa₊mKCa(t), KCa₊IK(t), Kdr₊mKdr(t), Kdr₊IK(t), H₊mH(t), H₊IH(t), leak₊ILeak(t)
eqs = [D(V)~(Na₊INa+Ka₊IK+KCa₊IK+Kdr₊IK+leak₊ILeak+CaT₊ICa+H₊IH+CaS₊ICa)/Cₘ,
D(Ca)~(Ca∞-Ca+(calc_multiplier*(CaT₊ICa+CaS₊ICa))/Cₘ)/τCa,
D(Avg)~(Ca-Avg)/τav,
ECa ~ 12.20008405*log(max(3000.0 / Ca, 0.001)),
D(Na₊mNa)~(1.0/(1.0+exp(-0.1890359168241966(25.5 + V)))-Na₊mNa)/(1.32+-1.26/(1+exp(-0.04(120.0 + V)))),
D(Na₊hNa)~((-Na₊hNa+1.0/(1.0+exp(0.19305019305019305(48.9 + V))))*(1.0+exp(-0.1(62.9 + V))))/(0.67(1.5+1.0/(1.0+exp(0.2777777777777778(34.9 + V))))),
D(CaS₊mCaS)~(1.0/(1.0+exp(-0.1234567901234568(33.0 + V)))-CaS₊mCaS)/(1.4+7.0/(exp(0.1(27.0 + V))+exp(-0.07692307692307693(70.0 + V)))),
D(CaS₊hCaS)~(-CaS₊hCaS+1.0/(1.0+exp(0.16129032258064516(60.0 + V))))/(60.0+150.0/(exp(0.1111111111111111(55.0 + V))+exp(-0.0625(65.0 + V)))),
D(CaT₊mCaT)~(-CaT₊mCaT+1.0/(1.0+exp(-0.1388888888888889(27.1 + V))))/(21.7+-21.3/(1.0+exp(-0.04878048780487805(68.1 + V)))),
D(CaT₊hCaT)~(-CaT₊hCaT+1.0/(1.0+exp(0.18181818181818182(32.1 + V))))/(105.0+-89.8/(1.0+exp(-0.0591715976331361(55.0 + V)))),
D(Ka₊mKa)~(-Ka₊mKa+1.0/(1.0+exp(-0.1149425287356322(27.2 + V))))/(11.6+-10.4/(1.0+exp(-0.06578947368421052(32.9 + V)))),
D(Ka₊hKa)~(-Ka₊hKa+1.0/(1.0+exp(0.2040816326530612(56.9 + V))))/(38.6+-29.2/(1.0+exp(-0.03773584905660377(38.9 + V)))),
D(KCa₊mKCa)~(Ca/((1.0+exp(-0.07936507936507936(28.3 + V)))*(3.0+Ca))-KCa₊mKCa)/(90.3+-75.1/(1.0+exp(-0.04405286343612335(46.0 + V)))),
D(Kdr₊mKdr)~(1.0/(1.0+exp(-0.0847457627118644(12.3 + V)))-Kdr₊mKdr)/(7.2+-6.4/(1.0+exp(-0.052083333333333336(28.3 + V)))),
D(H₊mH)~(1.0/(1.0+exp(0.16666666666666666(70.0 + V)))-H₊mH)/(272.0+1499.0/(1.0+exp(-0.1145475372279496(42.2 + V)))),
Na₊INa ~ Na₊g * (Na₊ENa - V) * Na₊hNa * (Na₊mNa^3),
CaS₊ICa ~ CaS₊g * (ECa - V) * CaS₊hCaS * (CaS₊mCaS^3),
CaT₊ICa ~ CaT₊g * (ECa - V) * CaT₊hCaT * (CaT₊mCaT^3),
Ka₊IK ~ Ka₊g * (Ka₊EK - V) * Ka₊hKa * (Ka₊mKa^3),
KCa₊IK ~ KCa₊g * (KCa₊EK - V) * (KCa₊mKCa^4),
Kdr₊IK ~ Kdr₊g * (Kdr₊EK - V) * (Kdr₊mKdr^4),
H₊IH ~ H₊g * (H₊EH - V) * H₊mH,
leak₊ILeak ~ (leak₊ELeak - V) * leak₊g];
ics = Dict(
Kdr₊g => 50.0,
Na₊ENa => 50.0,
Na₊g => 1000.0,
leak₊g => 0.1,
CaS₊hCaS => 0.5,
leak₊ELeak => -50.0,
Ca∞ => 0.05,
KCa₊g => 186.0,
Kdr₊mKdr => 0.0172529,
CaT₊hCaT => 0.993774,
V => -60.0,
KCa₊EK => -80.0,
H₊g => 0.2,
Ka₊g => 160.0,
Ka₊hKa => 0.653091,
CaS₊g => 12.0,
CaT₊g => 6.0,
τCa => 20.0,
CaT₊mCaT => 0.0102574,
Avg => 1.91964,
Ca => 0.05,
KCa₊mKCa => 0.00122546,
τav => 3000.0,
Na₊mNa => 0.00146895,
H₊EH => -20.0,
Ka₊mKa => 0.0225301,
Kdr₊EK => -80.0,
Cₘ => 10.0,
Ka₊EK => -80.0,
H₊mH => 0.158869,
Na₊hNa => 0.894999,
calc_multiplier => 0.939488,
CaS₊mCaS => 0.0344452,
ECa => 85.0,
Na₊INa => 0.0,
CaS₊ICa => 0.0,
CaT₊ICa => 0.0,
Ka₊IK => 0.0,
KCa₊IK => 0.0,
Kdr₊IK => 0.0,
H₊IH => 0.0,
leak₊ILeak => 0.0
);
sys_basic = structural_simplify(ODESystem(eqs, t, vars, params; defaults=ics, name=:neuron));
prob_basic = ODEProblem{true}(sys_basic, [], (0.0,3000.0), [])
sol_basic = OrdinaryDiffEq.solve(prob_basic, Tsit5(), dt=0.01; save_idxs=[1,2,3])
"""
Recursive gradient of average calcium.
New dynamics need
- gradient of v wrt conductances
∇_g v = [u₁, u₂, ..., uₙ]'
where
u̇ = - (g̃/c) u + Φ(x(t))'
and
Φ(x(t)) = [E_Na * m_Na^3(t) * h_Na(t), E_Cas * m_CaS^3(t) * h_CaS(t), ...]
- gradient of <Ca> wrt conductances
∇_g <Ca> = [z₁, z₂, ..., zₙ]'
where ż = - (1/τₐ)z + w
and ẇ = - (1/τcₐ)w + [∇_g Φ_Ca(u(t),x(t),v(t)) * g_Ca + Φ_Ca(x(t))']
"""
function parametrizedby_g()
sum([ics[Na₊g] * ics[Na₊mNa]^3 * ics[Na₊hNa],
ics[CaS₊g] * ics[CaS₊mCaS]^3 * ics[CaS₊hCaS],
ics[CaT₊g] * ics[CaT₊mCaT]^3 * ics[CaT₊hCaT],
ics[Ka₊g] * ics[Ka₊mKa]^3 * ics[Ka₊hKa] ,
ics[KCa₊g] * ics[KCa₊mKCa]^4,
ics[Kdr₊g] * ics[Kdr₊mKdr]^4,
ics[H₊g] * ics[H₊mH]])
#returns a constant, need to choose where gates are evaluated. Atm iniitial conditions are at -60
end
function Φᵥ()
[Na₊ENa * Na₊mNa^3 * Na₊hNa,
ECa * CaS₊mCaS^3 * CaS₊hCaS, #ECa is function of t
ECa * CaT₊mCaT^3 * CaT₊hCaT,
Ka₊EK * Ka₊mKa^3 * Ka₊hKa,
KCa₊EK * KCa₊mKCa^4,
Kdr₊EK * Kdr₊mKdr^4,
H₊EH * H₊mH]
end
function sigmoid(V, vhalf, slope)
return 1.0 / (1.0 + exp((V + vhalf) / slope))
end
function dsigmoid_dV(V, vhalf, slope)
(-exp((V + vhalf) / slope)) / (slope * (sigmoid(V, vhalf, slope))^2)
end
function dΦ_Ca_dv()
[3 * CaS₊mCaS^2 * CaS₊dmCaS_dV * CaS₊hCaS * (ECa - V) + CaS₊mCaS^3 * CaS₊dhCaS_dV * (ECa - V) - CaS₊mCaS^3 * CaS₊hCaS,
3 * CaT₊mCaT^2 * CaT₊dmCaT_dV * CaT₊hCaT * (ECa - V) + CaT₊mCaT^3 * CaT₊dhCaT_dV * (ECa - V) - CaT₊mCaT^3 * CaT₊hCaT]
end
function ∇_gΦ_Ca()
[dΦ_Ca_dv()[1] .* u dΦ_Ca_dv()[2] .* u]
#return a 7x2 matrix
end
function Φ_Ca()
[0.0,
CaS₊mCaS^3 * CaS₊hCaS * (ECa - V),
CaT₊mCaT^3 * CaT₊hCaT * (ECa - V),
0.0,
0.0,
0.0,
0.0]
end
extra_params = @parameters g̃
extra_vars = @variables (w(t))[1:7], (u(t))[1:7], (z(t))[1:7], CaS₊dmCaS_dV(t), CaS₊dhCaS_dV(t), CaT₊dmCaT_dV(t), CaT₊dhCaT_dV(t)
extra_eqs = [
D(CaS₊dmCaS_dV) ~ (-CaS₊dmCaS_dV + dsigmoid_dV(V, 33.0, -8.1)) / (1.4 + 7.0 / (exp(0.1(27.0 + V)) + exp(-0.07692307692307693(70.0 + V)))),
D(CaS₊dhCaS_dV) ~ (-CaS₊dhCaS_dV + dsigmoid_dV(V, 60.0, 6.2)) / (60.0 + 150.0 / (exp(0.1111111111111111(55.0 + V)) + exp(-0.0625(65.0 + V)))),
D(CaT₊dmCaT_dV) ~ (-CaT₊dmCaT_dV + dsigmoid_dV(V, 27.1, -7.2)) / (21.7 + -21.3 / (1.0 + exp(-0.04878048780487805(68.1 + V)))),
D(CaT₊dhCaT_dV) ~ (-CaT₊dhCaT_dV + dsigmoid_dV(V, 32.1, 5.5)) / (105.0 + -89.8 / (1.0 + exp(-0.0591715976331361(55.0 + V)))),
[D(u[i]) ~ -(g̃ / Cₘ) * (u[i] + Φᵥ()[i]) for i in 1:7]...,
[D(w[i]) ~ -(1 / τCa) * (w[i] + (∇_gΦ_Ca()*[CaS₊g, CaT₊g] + Φ_Ca())[i]) for i in 1:7]...,
[D(z[i]) ~ -(1 / τav) * (z[i] + w[i]) for i in 1:7]...,
]
extra_ics = merge(Dict(
g̃ => parametrizedby_g(),
CaS₊dmCaS_dV => 0.0,
CaS₊dhCaS_dV => 0.0,
CaT₊dmCaT_dV => 0.0,
CaT₊dhCaT_dV => 0.0),
Dict([u...] .=> [0.0 for i = 1:7]),
Dict([w...] .=> [0.0 for i=1:7]),
Dict([z...] .=> [0.0 for i = 1:7]))
Eqs = vcat(eqs, extra_eqs)
Params = vcat(params, extra_params)
Vars = vcat(vars, extra_vars)
Ics = merge(ics, extra_ics)
sys_recursive = ODESystem(Eqs, t, Vars, Params; defaults=Ics, name=:neuron);
sys_recursive = structural_simplify(sys_recursive)
prob_recursive = ODEProblem{true}(sys_recursive, [], (0.0, 5000.0), [])
Error & Stacktrace
LoadError: type NameState has no field symbolify
Stacktrace:
[1] getproperty
@ ./Base.jl:37 [inlined]
[2] toexpr(x::Symbolics.ArrayOp{AbstractVector{Real}}, st::SymbolicUtils.Code.NameState)
@ Symbolics ~/.julia/packages/Symbolics/Eas9m/src/arrays.jl:993
[3] (::SymbolicUtils.Code.var"#4#5"{SymbolicUtils.Code.NameState})(x::Symbolics.ArrayOp{AbstractVector{Real}})
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:187
[4] iterate
@ ./generator.jl:47 [inlined]
[5] _collect(c::Vector{Any}, itr::Base.Generator{Vector{Any}, SymbolicUtils.Code.var"#4#5"{SymbolicUtils.Code.NameState}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:854
[6] collect_similar(cont::Vector{Any}, itr::Base.Generator{Vector{Any}, SymbolicUtils.Code.var"#4#5"{SymbolicUtils.Code.NameState}})
@ Base ./array.jl:763
[7] map(f::Function, A::Vector{Any})
@ Base ./abstractarray.jl:3285
[8] toexpr(O::SymbolicUtils.BasicSymbolic{Real}, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:187
[9] (::Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState})(y::SymbolicUtils.BasicSymbolic{Real})
@ Base ./operators.jl:1135
[10] iterate
@ ./generator.jl:47 [inlined]
[11] collect_to!(dest::Vector{Any}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, offs::Int64, st::Int64)
@ Base ./array.jl:892
[12] collect_to!(dest::Vector{Int64}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, offs::Int64, st::Int64)
@ Base ./array.jl:900
[13] collect_to_with_first!(dest::Vector{Int64}, v1::Int64, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, st::Int64)
@ Base ./array.jl:870
[14] _collect(c::Vector{Any}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:864
[15] collect_similar
@ ./array.jl:763 [inlined]
[16] map
@ ./abstractarray.jl:3285 [inlined]
[17] function_to_expr(op::typeof(*), O::SymbolicUtils.BasicSymbolic{Real}, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:127
[18] toexpr(O::SymbolicUtils.BasicSymbolic{Real}, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:181
[19] (::Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState})(y::SymbolicUtils.BasicSymbolic{Real})
@ Base ./operators.jl:1135
[20] iterate
@ ./generator.jl:47 [inlined]
[21] collect_to!(dest::Vector{Expr}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, offs::Int64, st::Int64)
@ Base ./array.jl:892
[22] collect_to_with_first!(dest::Vector{Expr}, v1::Expr, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, st::Int64)
@ Base ./array.jl:870
[23] _collect(c::Vector{Any}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(toexpr), SymbolicUtils.Code.NameState}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:864
[24] collect_similar
@ ./array.jl:763 [inlined]
[25] map
@ ./abstractarray.jl:3285 [inlined]
[26] function_to_expr(op::typeof(+), O::SymbolicUtils.BasicSymbolic{Real}, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:127
[27] toexpr(O::SymbolicUtils.BasicSymbolic{Real}, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:181
[28] (::SymbolicUtils.Code.var"#4#5"{SymbolicUtils.Code.NameState})(x::SymbolicUtils.BasicSymbolic{Real})
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:187
[29] iterate
@ ./generator.jl:47 [inlined]
[30] _collect(c::Vector{Any}, itr::Base.Generator{Vector{Any}, SymbolicUtils.Code.var"#4#5"{SymbolicUtils.Code.NameState}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:854
[31] collect_similar(cont::Vector{Any}, itr::Base.Generator{Vector{Any}, SymbolicUtils.Code.var"#4#5"{SymbolicUtils.Code.NameState}})
@ Base ./array.jl:763
[32] map(f::Function, A::Vector{Any})
@ Base ./abstractarray.jl:3285
[33] toexpr(O::SymbolicUtils.BasicSymbolic{Real}, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:187
[34] #29
@ ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:472 [inlined]
[35] iterate
@ ./generator.jl:47 [inlined]
[36] collect_to!(dest::Vector{Expr}, itr::Base.Generator{Vector{SymbolicUtils.BasicSymbolic{Real}}, SymbolicUtils.Code.var"#29#30"{SymbolicUtils.Code.NameState}}, offs::Int64, st::Int64)
@ Base ./array.jl:892
[37] collect_to_with_first!(dest::Vector{Expr}, v1::Expr, itr::Base.Generator{Vector{SymbolicUtils.BasicSymbolic{Real}}, SymbolicUtils.Code.var"#29#30"{SymbolicUtils.Code.NameState}}, st::Int64)
@ Base ./array.jl:870
[38] _collect(c::Vector{SymbolicUtils.BasicSymbolic{Real}}, itr::Base.Generator{Vector{SymbolicUtils.BasicSymbolic{Real}}, SymbolicUtils.Code.var"#29#30"{SymbolicUtils.Code.NameState}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:864
[39] collect_similar(cont::Vector{SymbolicUtils.BasicSymbolic{Real}}, itr::Base.Generator{Vector{SymbolicUtils.BasicSymbolic{Real}}, SymbolicUtils.Code.var"#29#30"{SymbolicUtils.Code.NameState}})
@ Base ./array.jl:763
[40] map(f::Function, A::Vector{SymbolicUtils.BasicSymbolic{Real}})
@ Base ./abstractarray.jl:3285
[41] toexpr(a::SymbolicUtils.Code.MakeArray, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:467
[42] toexpr(l::SymbolicUtils.Code.Let, st::SymbolicUtils.Code.NameState) (repeats 3 times)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:292
[43] toexpr(l::SymbolicUtils.Code.Let, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:285
[44] toexpr(f::SymbolicUtils.Code.Func, st::SymbolicUtils.Code.NameState)
@ SymbolicUtils.Code ~/.julia/packages/SymbolicUtils/qyMYa/src/code.jl:373
[45] _build_function(::Symbolics.JuliaTarget, ::Vector{SymbolicUtils.BasicSymbolic{Real}}, ::Vector{SymbolicUtils.BasicSymbolic{Real}}, ::Vararg{Any}; conv::typeof(toexpr), expression::Type, expression_module::Module, checkbounds::Bool, postprocess_fbody::ModelingToolkit.var"#73#77"{ModelingToolkit.var"#64#66"}, linenumbers::Bool, outputidxs::Nothing, skipzeros::Bool, force_SA::Bool, wrap_code::Tuple{ComposedFunction{typeof(identity), ModelingToolkit.var"#184#191"{Dict{Any, AbstractArray{Int64}}}}, ComposedFunction{typeof(identity), ModelingToolkit.var"#186#193"{Dict{Any, AbstractArray{Int64}}}}}, fillzeros::Bool, states::SymbolicUtils.Code.NameState, iip_config::Tuple{Bool, Bool}, nanmath::Bool, parallel::Symbolics.SerialForm, cse::Bool, kwargs::@Kwargs{check_length::Bool})
@ Symbolics ~/.julia/packages/Symbolics/Eas9m/src/build_function.jl:333
[46] build_function(::Vector{SymbolicUtils.BasicSymbolic{Real}}, ::Vararg{Any}; target::Symbolics.JuliaTarget, kwargs::@Kwargs{postprocess_fbody::ModelingToolkit.var"#73#77"{ModelingToolkit.var"#64#66"}, states::SymbolicUtils.Code.NameState, wrap_code::Tuple{ComposedFunction{typeof(identity), ModelingToolkit.var"#184#191"{Dict{Any, AbstractArray{Int64}}}}, ComposedFunction{typeof(identity), ModelingToolkit.var"#186#193"{Dict{Any, AbstractArray{Int64}}}}}, expression::DataType, expression_module::Module, checkbounds::Bool, linenumbers::Bool, parallel::Symbolics.SerialForm, check_length::Bool})
@ Symbolics ~/.julia/packages/Symbolics/Eas9m/src/build_function.jl:87
[47] generate_function(sys::ODESystem, dvs::Vector{SymbolicUtils.BasicSymbolic{Real}}, ps::Vector{Any}; implicit_dae::Bool, ddvs::Nothing, isdde::Bool, wrap_code::Nothing, kwargs::@Kwargs{expression::DataType, expression_module::Module, checkbounds::Bool, linenumbers::Bool, parallel::Symbolics.SerialForm, check_length::Bool})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:194
[48] (ODEFunction{true, SciMLBase.AutoSpecialize})(sys::ODESystem, dvs::Vector{SymbolicUtils.BasicSymbolic{Real}}, ps::Vector{Any}, u0::Vector{Float64}; version::Nothing, tgrad::Bool, jac::Bool, p::ModelingToolkit.MTKParameters{Tuple{Vector{Float64}}, Tuple{}, Tuple{}, Tuple{}, Tuple{}, Nothing, Nothing}, t::Nothing, eval_expression::Bool, sparse::Bool, simplify::Bool, eval_module::Module, steady_state::Bool, checkbounds::Bool, sparsity::Bool, analytic::Nothing, split_idxs::Nothing, initializeprob::Nothing, initializeprobmap::Nothing, kwargs::@Kwargs{ddvs::Nothing, linenumbers::Bool, parallel::Symbolics.SerialForm, check_length::Bool})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:331
[49] process_DEProblem(constructor::Type, sys::ODESystem, u0map::Vector{Any}, parammap::Vector{Any}; implicit_dae::Bool, du0map::Nothing, version::Nothing, tgrad::Bool, jac::Bool, checkbounds::Bool, sparse::Bool, simplify::Bool, linenumbers::Bool, parallel::Symbolics.SerialForm, eval_expression::Bool, use_union::Bool, tofloat::Bool, symbolic_u0::Bool, u0_constructor::typeof(identity), guesses::Dict{Any, Any}, t::Float64, warn_initialize_determined::Bool, build_initializeprob::Bool, kwargs::@Kwargs{check_length::Bool})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:972
[50] process_DEProblem
@ ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:835 [inlined]
[51] (ODEProblem{true, SciMLBase.AutoSpecialize})(sys::ODESystem, u0map::Vector{Any}, tspan::Tuple{Float64, Float64}, parammap::Vector{Any}; callback::Nothing, check_length::Bool, warn_initialize_determined::Bool, kwargs::@Kwargs{})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:1086
[52] (ODEProblem{true, SciMLBase.AutoSpecialize})(sys::ODESystem, u0map::Vector{Any}, tspan::Tuple{Float64, Float64}, parammap::Vector{Any})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:1076
[53] (ODEProblem{true})(::ODESystem, ::Vector{Any}, ::Vararg{Any}; kwargs::@Kwargs{})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:1063
[54] (ODEProblem{true})(::ODESystem, ::Vector{Any}, ::Vararg{Any})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/BAG22/src/systems/diffeqs/abstractodesystem.jl:1062
[55] top-level scope
@ ~/Cambridge University Dropbox/Andrea Ramirez/ConstrainedRedundantModulation/tests/recursive_grad.jl:185
[56] include(fname::String)
@ Base.MainInclude ./client.jl:489
Environment:
ModelingToolkit v9.14.0
DifferentialEquations v7.13.0
Julia Version 1.10.3 on MacOS
Additional context:
I'm trying to expand the equations for a model neuron by adding the equations for online gradients.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working