# ModellingToolkit and arrays

**URL:** <https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722>\
**Category:** Modelling & Simulations\
**Tags:** question, package, modelingtoolkit\
**Created:** [August 1, 2024, 9:49am UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722 "2024-08-01T09:49:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 1, 2024, 9:49am UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/1 "2024-08-01T09:49:25Z")

</div>

I have the following code:

```julia
# Example one: Falling mass.
using ModelingToolkit, OrdinaryDiffEq

G_EARTH::Vector{Float64} = [0.0, 0.0, -9.81] # gravitational acceleration [m/s²]

# definiting the model
@independent_variables t
@variables pos(t)[1:3]=[0.0, 0.0, 0.0]
@variables vel(t)[1:3]=[0.0, 0.0, 50.0] 
@variables acc(t)[1:3]=[0.0, 0.0, -9.81] 
D = Differential(t)

pos = collect(pos)
vel = collect(vel)
acc = collect(acc)

eqs = vcat(D.(pos) .~ vel,
           D.(vel) .~ acc,
           acc .~ G_EARTH)

@named sys = ODESystem(eqs, t)
simple_sys = structural_simplify(sys)

# running the simulation
duration = 10.0
dt = 0.02
tol = 1e-6
ts = 0:dt:duration

prob = ODEProblem(simple_sys, nothing, (0.0, duration))
@time sol = solve(prob, Rodas5(), dt=dt, abstol=tol, reltol=tol, saveat=ts)

```

In older versions of ModelingToolkit the lines:

```julia
pos = collect(pos)
vel = collect(vel)
acc = collect(acc)

```

where not needed, but now they are. Without them I get the error message:

```julia
ERROR: LoadError: type Term has no field lhs.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] throw_no_field(::Val{:Term}, s::Symbol)
   @ Unityper ~/.julia/packages/Unityper/BiodR/src/compactify.jl:505
 [3] getproperty(x::SymbolicUtils.BasicSymbolic{Any}, s::Symbol)
   @ SymbolicUtils ~/.julia/packages/Unityper/BiodR/src/compactify.jl:310
 [4] ODESystem(eqs::Vector{Any}, iv::Num; kwargs::@Kwargs{name::Symbol})
   @ ModelingToolkit ~/.julia/packages/ModelingToolkit/jEIdO/src/systems/diffeqs/odesystem.jl:299
 [5] top-level scope
   @ ~/.julia/packages/ModelingToolkit/jEIdO/src/systems/abstractsystem.jl:1810
 [6] include(fname::String)
   @ Base.MainInclude ./client.jl:489
 [7] top-level scope
   @ REPL[3]:1
in expression starting at /home/ufechner/repos/Tethers.jl/src/Tether_01.jl:21

```

Any idea what is going on here?

Using `collect` looks ugly in my eyes. Is there a way to avoid it?

---

<div class="post-metadata">

**Author:** ![contradict](https://avatars.discourse-cdn.com/v4/letter/c/ac91a4/32.png) [@contradict](https://discourse.julialang.org/u/contradict)\
**Post date:** [August 1, 2024, 11:01pm UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/2 "2024-08-01T23:01:38Z")

</div>

If you leave the broadcast out when writing the equations, it works without the collect calls:

```julia
eqs = [D(pos) ~ vel
       D(vel) ~ acc
       acc ~ G_EARTH]

```

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 2, 2024, 6:54am UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/3 "2024-08-02T06:54:59Z")

</div>

Thanks a lot! So the first example is fixed, but there are more issues with the latest version of ModelingToolkit.

I have this code:

```julia
# Example two: Falling mass, attached to linear spring
using ModelingToolkit, OrdinaryDiffEq, LinearAlgebra

G_EARTH::Vector{Float64} = [0.0, 0.0, -9.81] # gravitational acceleration [m/s²]
L0::Float64 = -10.0 # initial spring length [m]

# defing the model, Z component upwards
@parameters mass=1.0 c_spring=50.0 damping=0.5 l0=L0
@independent_variables t
@variables pos(t)[1:3] = [0.0, 0.0, L0]
@variables vel(t)[1:3] = [0.0, 0.0, 0.0] 
@variables acc(t)[1:3] = G_EARTH
@variables unit_vector(t)[1:3] = [0.0, 0.0, -sign(L0)]
@variables spring_force(t)[1:3] = [0.0, 0.0, 0.0]
@variables norm1(t) = abs(l0) spring_vel(t) = 0.0
D = Differential(t)

eqs = vcat(D(pos) ~ vel,
           D(vel) ~ acc,
           norm1 ~ norm(pos),
           unit_vector ~ -pos/norm1, # direction from point mass to origin
           spring_vel ~ -unit_vector ⋅ vel,
           spring_force ~ (c_spring * (norm1 - abs(l0)) + damping * spring_vel) * unit_vector,
           acc ~ G_EARTH + spring_force/mass)

@named sys = ODESystem(eqs, t)
simple_sys = structural_simplify(sys)

# running the simulation
duration = 10.0
dt = 0.02
tol = 1e-6
tspan = (0.0, duration)
ts = 0:dt:duration

prob = ODEProblem(simple_sys, nothing, tspan)
@time sol = solve(prob, Rodas5(), dt=dt, abstol=tol, reltol=tol, saveat=ts)

nothing

```

It works fine with older versions of ModelingToolkit, with the latest version I get this output:

```julia
julia> include("src/Tether_02.jl")
┌ Warning: Internal error: Variable (pos(t))[1] was marked as being in 0 ~ sqrt(Symbolics._mapreduce(#396, +, pos(t), Colon(), (:init => false,))) - norm1(t), but was actually zero
└ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural_transformation/utils.jl:233
┌ Warning: Internal error: Variable (pos(t))[2] was marked as being in 0 ~ sqrt(Symbolics._mapreduce(#396, +, pos(t), Colon(), (:init => false,))) - norm1(t), but was actually zero
└ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural_transformation/utils.jl:233
┌ Warning: Internal error: Variable (pos(t))[3] was marked as being in 0 ~ sqrt(Symbolics._mapreduce(#396, +, pos(t), Colon(), (:init => false,))) - norm1(t), but was actually zero
└ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural_transformation/utils.jl:233
┌ Warning: Internal error: Variable (unit_vector(t))[1] was marked as being in 0 ~ -spring_vel(t) + (broadcast(-, unit_vector(t)))[1]*(vel(t))[1] + (broadcast(-, unit_vector(t)))[2]*(vel(t))[2] + (broadcast(-, unit_vector(t)))[3]*(vel(t))[3], but was actually zero
└ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural_transformation/utils.jl:233
┌ Warning: Internal error: Variable (unit_vector(t))[2] was marked as being in 0 ~ -spring_vel(t) + (broadcast(-, unit_vector(t)))[1]*(vel(t))[1] + (broadcast(-, unit_vector(t)))[2]*(vel(t))[2] + (broadcast(-, unit_vector(t)))[3]*(vel(t))[3], but was actually zero
└ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural_transformation/utils.jl:233
┌ Warning: Internal error: Variable (unit_vector(t))[3] was marked as being in 0 ~ -spring_vel(t) + (broadcast(-, unit_vector(t)))[1]*(vel(t))[1] + (broadcast(-, unit_vector(t)))[2]*(vel(t))[2] + (broadcast(-, unit_vector(t)))[3]*(vel(t))[3], but was actually zero
└ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural_transformation/utils.jl:233
  0.280586 seconds (727.74 k allocations: 41.242 MiB, 3.02% gc time, 95.96% compilation time)

```

Any idea? Is this a bug in ModelingToolkit, or is something wrong with my code?

@ChrisRackauckas Any comment?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 2, 2024, 3:07pm UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/4 "2024-08-02T15:07:46Z")

</div>

Open an issue for that.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 2, 2024, 3:51pm UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/5 "2024-08-02T15:51:24Z")

</div>

> <https://github.com/SciML/ModelingToolkit.jl/issues/2920>
>
> \*\*Describe the bug 🐞\*\*
> 
> ModelingToolkit v9.28.0 prints a lot of warnings (Inte…rnal error) for a script that was running fine with older versions of ModelingToolkit.
> 
> \*\*Expected behavior\*\*
> 
> No warning for the code that worked before.
> 
> \*\*Minimal Reproducible Example 👇\*\*
> 
> \`\`\`julia
> \# Example two: Falling mass, attached to linear spring
> using ModelingToolkit, OrdinaryDiffEq, LinearAlgebra
> using ModelingToolkit: t\_nounits as t, D\_nounits as D
> 
> G\_EARTH::Vector{Float64} = \[0.0, 0.0, -9.81\] # gravitational acceleration \[m/s²\]
> L0::Float64 = -10.0 # initial spring length \[m\]
> 
> \# defing the model, Z component upwards
> @parameters mass=1.0 c\_spring=50.0 damping=0.5 l0=L0
> @variables pos(t)\[1:3\] = \[0.0, 0.0, L0\]
> @variables vel(t)\[1:3\] = \[0.0, 0.0, 0.0\] 
> @variables acc(t)\[1:3\] = G\_EARTH
> @variables unit\_vector(t)\[1:3\] = \[0.0, 0.0, -sign(L0)\]
> @variables spring\_force(t)\[1:3\] = \[0.0, 0.0, 0.0\]
> @variables norm1(t) = abs(l0) spring\_vel(t) = 0.0
> 
> eqs = vcat(D(pos) ~ vel,
> D(vel) ~ acc,
> norm1 ~ norm(pos),
> unit\_vector ~ -pos/norm1, # direction from point mass to origin
> spring\_vel ~ -unit\_vector ⋅ vel,
> spring\_force ~ (c\_spring \* (norm1 - abs(l0)) + damping \* spring\_vel) \* unit\_vector,
> acc ~ G\_EARTH + spring\_force/mass)
> 
> @named sys = ODESystem(eqs, t)
> simple\_sys = structural\_simplify(sys)
> nothing
> \`\`\`
> 
> \*\*Error & Stacktrace ⚠️\*\*
> 
> \`\`\`julia
> julia\> include("src/Tether\_02.jl")
> ┌ Warning: Internal error: Variable (pos(t))\[1\] was marked as being in 0 ~ sqrt(Symbolics.\_mapreduce(#396, +, pos(t), Colon(), (:init =\> false,))) - norm1(t), but was actually zero
> └ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural\_transformation/utils.jl:233
> ┌ Warning: Internal error: Variable (pos(t))\[2\] was marked as being in 0 ~ sqrt(Symbolics.\_mapreduce(#396, +, pos(t), Colon(), (:init =\> false,))) - norm1(t), but was actually zero
> └ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural\_transformation/utils.jl:233
> ┌ Warning: Internal error: Variable (pos(t))\[3\] was marked as being in 0 ~ sqrt(Symbolics.\_mapreduce(#396, +, pos(t), Colon(), (:init =\> false,))) - norm1(t), but was actually zero
> └ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural\_transformation/utils.jl:233
> ┌ Warning: Internal error: Variable (unit\_vector(t))\[1\] was marked as being in 0 ~ -spring\_vel(t) + (broadcast(-, unit\_vector(t)))\[1\]\*(vel(t))\[1\] + (broadcast(-, unit\_vector(t)))\[2\]\*(vel(t))\[2\] + (broadcast(-, unit\_vector(t)))\[3\]\*(vel(t))\[3\], but was actually zero
> └ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural\_transformation/utils.jl:233
> ┌ Warning: Internal error: Variable (unit\_vector(t))\[2\] was marked as being in 0 ~ -spring\_vel(t) + (broadcast(-, unit\_vector(t)))\[1\]\*(vel(t))\[1\] + (broadcast(-, unit\_vector(t)))\[2\]\*(vel(t))\[2\] + (broadcast(-, unit\_vector(t)))\[3\]\*(vel(t))\[3\], but was actually zero
> └ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural\_transformation/utils.jl:233
> ┌ Warning: Internal error: Variable (unit\_vector(t))\[3\] was marked as being in 0 ~ -spring\_vel(t) + (broadcast(-, unit\_vector(t)))\[1\]\*(vel(t))\[1\] + (broadcast(-, unit\_vector(t)))\[2\]\*(vel(t))\[2\] + (broadcast(-, unit\_vector(t)))\[3\]\*(vel(t))\[3\], but was actually zero
> └ @ ModelingToolkit.StructuralTransformations ~/.julia/packages/ModelingToolkit/jEIdO/src/structural\_transformation/utils.jl:233
> \`\`\`
> 
> \*\*Environment (please complete the following information):\*\*
> 
> - Output of \`using Pkg; Pkg.status()\`
> 
> \`\`\`julia
> Project Tethers v0.2.0
> Status \`~/repos/Tethers.jl/Project.toml\`
> \[8f4d0f93\] Conda v1.10.2
> \[992eb4ea\] CondaPkg v0.2.23
> \[16fef848\] LiveServer v1.3.1
> \[961ee093\] ModelingToolkit v9.28.0
> \[1dea7af3\] OrdinaryDiffEq v6.87.0
> \[9b87118b\] PackageCompiler v2.1.17
> \[d96e819e\] Parameters v0.12.3
> \[438e738f\] PyCall v1.96.4
> \[d330b81b\] PyPlot v2.11.5
> \[21f18d07\] Timers v0.1.5
> \[44cfe95a\] Pkg v1.10.0
> \`\`\`
> 
> - Output of \`using Pkg; Pkg.status(; mode = PKGMODE\_MANIFEST)\`
> 
> \`\`\`julia
> Project Tethers v0.2.0
> Status \`~/repos/Tethers.jl/Manifest.toml\`
> \[47edcb42\] ADTypes v1.6.1
> \[1520ce14\] AbstractTrees v0.4.5
> \[7d9f7c33\] Accessors v0.1.37
> \[79e6a3ab\] Adapt v4.0.4
> \[66dad0bd\] AliasTables v1.1.3
> \[ec485272\] ArnoldiMethod v0.4.0
> \[4fba245c\] ArrayInterface v7.15.0
> \[4c555306\] ArrayLayouts v1.10.2
> \[e2ed5e7c\] Bijections v0.1.7
> \[d1d4a3ce\] BitFlags v0.1.9
> \[62783981\] BitTwiddlingConvenienceFunctions v0.1.6
> \[2a0fbf3d\] CPUSummary v0.2.6
> \[00ebfdb7\] CSTParser v3.4.3
> \[49dc2e85\] Calculus v0.5.1
> \[d360d2e6\] ChainRulesCore v1.24.0
> \[fb6a15b2\] CloseOpenIntervals v0.1.13
> \[944b1d66\] CodecZlib v0.7.5
> \[3da002f7\] ColorTypes v0.11.5
> \[5ae59095\] Colors v0.12.11
> \[861a8166\] Combinatorics v1.0.2
> \[a80b9123\] CommonMark v0.8.12
> \[38540f10\] CommonSolve v0.2.4
> \[bbf7d656\] CommonSubexpressions v0.3.0
> \[f70d9fcc\] CommonWorldInvalidations v1.0.0
> \[34da2185\] Compat v4.15.0
> \[b152e2b5\] CompositeTypes v0.1.4
> \[a33af91c\] CompositionsBase v0.1.2
> \[2569d6c7\] ConcreteStructs v0.2.3
> \[f0e56b4a\] ConcurrentUtilities v2.4.2
> \[8f4d0f93\] Conda v1.10.2
> \[992eb4ea\] CondaPkg v0.2.23
> \[187b0558\] ConstructionBase v1.5.6
> \[adafc99b\] CpuId v0.3.1
> \[a8cc5b0e\] Crayons v4.1.1
> \[9a962f9c\] DataAPI v1.16.0
> \[864edb3b\] DataStructures v0.18.20
> \[e2d170a0\] DataValueInterfaces v1.0.0
> \[2b5f629d\] DiffEqBase v6.152.2
> \[459566f4\] DiffEqCallbacks v3.7.0
> \[77a26b50\] DiffEqNoiseProcess v5.22.0
> \[163ba53b\] DiffResults v1.1.0
> \[b552c78f\] DiffRules v1.15.1
> \[a0c0ee7d\] DifferentiationInterface v0.5.10
> \[31c24e10\] Distributions v0.25.109
> \[ffbed154\] DocStringExtensions v0.9.3
> \[5b8099bc\] DomainSets v0.7.14
> \[fa6b7ba4\] DualNumbers v0.6.8
> ⌅ \[7c1d4256\] DynamicPolynomials v0.5.7
> ⌅ \[06fc5a27\] DynamicQuantities v0.13.2
> \[4e289a0a\] EnumX v1.0.4
> \[f151be2c\] EnzymeCore v0.7.7
> \[460bff9d\] ExceptionUnwrapping v0.1.10
> \[d4d017d3\] ExponentialUtilities v1.26.1
> \[e2ba6199\] ExprTools v0.1.10
> ⌅ \[6b7a57c9\] Expronicon v0.8.5
> \[7034ab61\] FastBroadcast v0.3.5
> \[9aa1b823\] FastClosures v0.3.2
> \[29a986be\] FastLapackInterface v2.0.4
> \[1a297f60\] FillArrays v1.11.0
> \[64ca27bc\] FindFirstFunctions v1.2.0
> \[6a86dc24\] FiniteDiff v2.23.1
> \[53c48c17\] FixedPointNumbers v0.8.5
> \[1fa38f19\] Format v1.3.7
> \[f6369f11\] ForwardDiff v0.10.36
> \[069b7b12\] FunctionWrappers v1.1.3
> \[77dc65aa\] FunctionWrappersWrappers v0.1.3
> \[d9f16b24\] Functors v0.4.12
> \[46192b85\] GPUArraysCore v0.1.6
> \[c145ed77\] GenericSchur v0.5.4
> \[c27321d9\] Glob v1.3.1
> \[86223c79\] Graphs v1.11.2
> \[cd3eb016\] HTTP v1.10.8
> \[3e5b6fbb\] HostCPUFeatures v0.1.17
> \[34004b35\] HypergeometricFunctions v0.3.23
> \[615f187c\] IfElse v0.1.1
> \[d25df0c9\] Inflate v0.1.5
> \[8197267c\] IntervalSets v0.7.10
> \[3587e190\] InverseFunctions v0.1.15
> \[92d709cd\] IrrationalConstants v0.2.2
> \[82899510\] IteratorInterfaceExtensions v1.0.0
> \[692b3bcd\] JLLWrappers v1.5.0
> \[682c06a0\] JSON v0.21.4
> \[0f8b85d8\] JSON3 v1.14.0
> \[98e50ef6\] JuliaFormatter v1.0.59
> \[ccbc3e58\] JumpProcesses v9.12.0
> \[ef3ab10e\] KLU v0.6.0
> \[ba0b0d4f\] Krylov v0.9.6
> \[b964fa9f\] LaTeXStrings v1.3.1
> \[2ee39098\] LabelledArrays v1.16.0
> \[984bce1d\] LambertW v0.4.6
> \[23fbe1c1\] Latexify v0.16.4
> \[10f19ff3\] LayoutPointers v0.1.17
> \[5078a376\] LazyArrays v2.1.9
> \[d3d80556\] LineSearches v7.2.0
> \[7ed4a6bd\] LinearSolve v2.31.1
> \[16fef848\] LiveServer v1.3.1
> \[2ab3a3ac\] LogExpFunctions v0.3.28
> \[e6f89c97\] LoggingExtras v1.0.3
> \[bdcacae8\] LoopVectorization v0.12.171
> \[6c6e2e6c\] MIMEs v0.1.4
> \[d8e11817\] MLStyle v0.4.17
> \[1914dd2f\] MacroTools v0.5.13
> \[d125e4d3\] ManualMemory v0.1.8
> \[bb5d69b7\] MaybeInplace v0.1.3
> \[739be429\] MbedTLS v1.1.9
> \[0b3b1443\] MicroMamba v0.1.14
> \[e1d29d7a\] Missings v1.2.0
> \[961ee093\] ModelingToolkit v9.28.0
> \[46d2c3a1\] MuladdMacro v0.2.4
> \[102ac46a\] MultivariatePolynomials v0.5.6
> \[d8a4904e\] MutableArithmetics v1.4.5
> \[d41bc354\] NLSolversBase v7.8.3
> \[77ba4419\] NaNMath v1.0.2
> \[8913a72c\] NonlinearSolve v3.13.1
> \[6fe1bfb0\] OffsetArrays v1.14.1
> \[4d8831e6\] OpenSSL v1.4.3
> \[429524aa\] Optim v1.9.4
> \[bac558e1\] OrderedCollections v1.6.3
> \[1dea7af3\] OrdinaryDiffEq v6.87.0
> \[90014a1f\] PDMats v0.11.31
> \[9b87118b\] PackageCompiler v2.1.17
> \[65ce6f38\] PackageExtensionCompat v1.0.2
> \[d96e819e\] Parameters v0.12.3
> \[69de0a69\] Parsers v2.8.1
> \[fa939f87\] Pidfile v1.3.0
> \[e409e4f3\] PoissonRandom v0.4.4
> \[f517fe37\] Polyester v0.7.15
> \[1d0040c9\] PolyesterWeave v0.2.2
> \[85a6dd25\] PositiveFactorizations v0.2.4
> \[d236fae5\] PreallocationTools v0.4.23
> \[aea7be01\] PrecompileTools v1.2.1
> \[21216c6a\] Preferences v1.4.3
> \[43287f4e\] PtrArrays v1.2.0
> \[438e738f\] PyCall v1.96.4
> \[d330b81b\] PyPlot v2.11.5
> \[1fd47b50\] QuadGK v2.10.1
> \[74087812\] Random123 v1.7.0
> \[e6cf234a\] RandomNumbers v1.5.3
> \[3cdcf5f2\] RecipesBase v1.3.4
> \[731186ca\] RecursiveArrayTools v3.26.0
> \[f2c3362d\] RecursiveFactorization v0.2.23
> \[189a3867\] Reexport v1.2.2
> \[05181044\] RelocatableFolders v1.0.1
> \[ae029012\] Requires v1.3.0
> \[ae5879a3\] ResettableStacks v1.1.1
> \[79098fc4\] Rmath v0.7.1
> \[7e49a35a\] RuntimeGeneratedFunctions v0.5.13
> \[94e857df\] SIMDTypes v0.1.0
> \[476501e8\] SLEEFPirates v0.6.43
> \[0bca4576\] SciMLBase v2.48.1
> \[c0aeaf25\] SciMLOperators v0.3.8
> \[53ae85a6\] SciMLStructures v1.4.1
> \[6c6a2e73\] Scratch v1.2.1
> \[efcf1570\] Setfield v1.1.1
> \[777ac1f9\] SimpleBufferStream v1.1.0
> \[727e6d20\] SimpleNonlinearSolve v1.11.0
> \[699a6c99\] SimpleTraits v0.9.4
> \[ce78b400\] SimpleUnPack v1.1.0
> \[a2af1166\] SortingAlgorithms v1.2.1
> \[47a9eef4\] SparseDiffTools v2.19.0
> \[0a514795\] SparseMatrixColorings v0.3.6
> \[e56a9233\] Sparspak v0.3.9
> \[276daf66\] SpecialFunctions v2.4.0
> \[aedffcd0\] Static v1.1.1
> \[0d7ed370\] StaticArrayInterface v1.5.1
> \[90137ffa\] StaticArrays v1.9.7
> \[1e83bf80\] StaticArraysCore v1.4.3
> \[82ae8749\] StatsAPI v1.7.0
> \[2913bbd2\] StatsBase v0.34.3
> \[4c63d2b9\] StatsFuns v1.3.1
> \[7792a7ef\] StrideArraysCore v0.5.7
> \[856f2bd8\] StructTypes v1.10.0
> \[2efcf032\] SymbolicIndexingInterface v0.3.27
> ⌅ \[19f23fe9\] SymbolicLimits v0.2.1
> ⌅ \[d1185830\] SymbolicUtils v2.1.2
> \[0c5d862f\] Symbolics v5.35.1
> \[3783bdb8\] TableTraits v1.0.1
> \[bd369af6\] Tables v1.12.0
> ⌅ \[8ea1fca8\] TermInterface v0.4.1
> \[1e6cf692\] TestEnv v1.102.0
> \[8290d209\] ThreadingUtilities v0.5.2
> \[a759f4b9\] TimerOutputs v0.5.24
> \[21f18d07\] Timers v0.1.5
> \[0796e94c\] Tokenize v0.5.29
> \[3bb67fe8\] TranscodingStreams v0.11.1
> \[d5829a12\] TriangularSolve v0.2.1
> \[410a4b4d\] Tricks v0.1.9
> \[781d530d\] TruncatedStacktraces v1.4.0
> \[5c2747f8\] URIs v1.5.1
> \[3a884ed6\] UnPack v1.0.2
> \[1986cc42\] Unitful v1.21.0
> \[a7c27f48\] Unityper v0.1.6
> \[3d5dd08c\] VectorizationBase v0.21.70
> \[81def892\] VersionParsing v1.3.0
> \[19fa3120\] VertexSafeGraphs v0.2.0
> \[1d5cc7b8\] IntelOpenMP\_jll v2024.2.0+0
> \[856f044c\] MKL\_jll v2024.2.0+0
> \[458c3c95\] OpenSSL\_jll v3.0.14+0
> \[efe28fd5\] OpenSpecFun\_jll v0.5.5+0
> \[f50d1b31\] Rmath\_jll v0.4.2+0
> \[f8abcde7\] micromamba\_jll v1.5.8+0
> \[1317d2d5\] oneTBB\_jll v2021.12.0+0
> \[0dad84c5\] ArgTools v1.1.1
> \[56f22d72\] Artifacts
> \[2a0f44e3\] Base64
> \[ade2ca70\] Dates
> \[8ba89e20\] Distributed
> \[f43a241f\] Downloads v1.6.0
> \[7b1f6079\] FileWatching
> \[9fa8497b\] Future
> \[b77e0a4c\] InteractiveUtils
> \[4af54fe1\] LazyArtifacts
> \[b27032c2\] LibCURL v0.6.4
> \[76f85450\] LibGit2
> \[8f399da3\] Libdl
> \[37e2e46d\] LinearAlgebra
> \[56ddb016\] Logging
> \[d6f4376e\] Markdown
> \[a63ad114\] Mmap
> \[ca575930\] NetworkOptions v1.2.0
> \[44cfe95a\] Pkg v1.10.0
> \[de0858da\] Printf
> \[3fa0cd96\] REPL
> \[9a3f8284\] Random
> \[ea8e919c\] SHA v0.7.0
> \[9e88b42a\] Serialization
> \[1a1011a3\] SharedArrays
> \[6462fe0b\] Sockets
> \[2f01184e\] SparseArrays v1.10.0
> \[10745b16\] Statistics v1.10.0
> \[4607b0f0\] SuiteSparse
> \[fa267f1f\] TOML v1.0.3
> \[a4e569a6\] Tar v1.10.0
> \[8dfed614\] Test
> \[cf7118a7\] UUIDs
> \[4ec0a83e\] Unicode
> \[e66e0078\] CompilerSupportLibraries\_jll v1.1.1+0
> \[deac9b47\] LibCURL\_jll v8.4.0+0
> \[e37daf67\] LibGit2\_jll v1.6.4+0
> \[29816b5a\] LibSSH2\_jll v1.11.0+1
> \[c8ffd9c3\] MbedTLS\_jll v2.28.2+1
> \[14a3606d\] MozillaCACerts\_jll v2023.1.10
> \[4536629a\] OpenBLAS\_jll v0.3.23+4
> \[05823500\] OpenLibm\_jll v0.8.1+2
> \[bea87d4a\] SuiteSparse\_jll v7.2.1+1
> \[83775a58\] Zlib\_jll v1.2.13+1
> \[8e850b90\] libblastrampoline\_jll v5.8.0+1
> \[8e850ede\] nghttp2\_jll v1.52.0+1
> \[3f19e933\] p7zip\_jll v17.4.0+2
> \`\`\`
> 
> - Output of \`versioninfo()\`
> 
> \`\`\`julia
> Julia Version 1.10.4
> Commit 48d4fd48430 (2024-06-04 10:41 UTC)
> Build Info:
> Official https://julialang.org/ release
> Platform Info:
> OS: Linux (x86\_64-linux-gnu)
> CPU: 32 × AMD Ryzen 9 7950X 16-Core Processor
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
> Threads: 16 default, 0 interactive, 9 GC (on 32 virtual cores)
> Environment:
> LD\_LIBRARY\_PATH = /lib:/usr/lib:/usr/local/lib
> \`\`\`
> 
> \*\*Additional context\*\*
> 
> The simulation result still looks correct.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 8, 2024, 8:37am UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/6 "2024-08-08T08:37:54Z")

</div>

The issue was closed, but the suggested workaround does not help, it even makes things worse.

Can this issue be re-opened?

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 8, 2024, 5:47pm UTC](https://discourse.julialang.org/t/modellingtoolkit-and-arrays/117722/7 "2024-08-08T17:47:06Z")

</div>

Ok, the new workaround helps:

```julia
@named sys = ODESystem(Symbolics.scalarize.(reduce(vcat, Symbolics.scalarize.(eqs))), t)

```

But it does not look like the final solution, this should not be needed.
