Skip to content

ERROR: type NameState has no field symbolify #2839

@AndreaRamirezH

Description

@AndreaRamirezH

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

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions