From 4ae3dda4c9fed84590fd24ae5b07b8901e08424b Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Wed, 16 Jul 2025 18:20:15 +0530 Subject: [PATCH 1/2] fix: fix parameter dependencies dependent on scalarized array parameter --- src/systems/abstractsystem.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/systems/abstractsystem.jl b/src/systems/abstractsystem.jl index 8193b795a2..ab74a71ffa 100644 --- a/src/systems/abstractsystem.jl +++ b/src/systems/abstractsystem.jl @@ -2757,7 +2757,9 @@ function process_parameter_equations(sys::AbstractSystem) is_parameter(sys, sym) || symbolic_type(sym) == ArraySymbolic() && is_sized_array_symbolic(sym) && - all(Base.Fix1(is_parameter, sys), collect(sym)) + all(Base.Fix1(is_parameter, sys), collect(sym)) || + iscall(sym) && + operation(sym) === getindex && is_parameter(sys, arguments(sym)[1]) end # Everything in `varsbuf` is a parameter, so this is a cheap `is_parameter` # check. From 8a5d6a06155fdad10f7c92fee3870d66644dafd1 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Wed, 16 Jul 2025 19:20:50 +0530 Subject: [PATCH 2/2] test: test parameter dependencies with scalarized array RHS --- test/parameter_dependencies.jl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/parameter_dependencies.jl b/test/parameter_dependencies.jl index debdeac6e5..627df5913f 100644 --- a/test/parameter_dependencies.jl +++ b/test/parameter_dependencies.jl @@ -389,3 +389,12 @@ end [x(k - 1) ~ x(k) + y(k) + p2, p2 ~ 2p1], t) @test is_parameter(sys, p1) end + +@testset "Scalarized array as RHS of parameter dependency" begin + @parameters p[1:2] p1 p2 + @variables x(t) + @named sys = System([D(x) ~ x, p1 ~ p[1], p2 ~ p[2]], t) + @test any(isequal(p), ModelingToolkit.get_ps(sys)) + sys = mtkcompile(sys) + @test length(ModelingToolkit.parameter_dependencies(sys)) == 2 +end