Skip to content

Commit 7f4b9d9

Browse files
temp
1 parent 8a81e9b commit 7f4b9d9

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

test/symbolic_events.jl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1305,3 +1305,30 @@ end
13051305
sol = solve(prob, FBDF())
13061306
@test prob.ps[g] == sol.ps[g]
13071307
end
1308+
1309+
@testset "Array parameter updates of parent components in ImperativeEffect" begin
1310+
function child(vals; name, max_time = 0.1)
1311+
vars = @variables begin
1312+
x(t) = 0.0
1313+
end
1314+
eqs = reduce(vcat, Symbolics.scalarize.([
1315+
D(x) ~ 1.0
1316+
]))
1317+
reset = ModelingToolkit.ImperativeAffect(
1318+
modified = (; vals = Symbolics.scalarize(ParentScope.(vals)), x)) do m, o, _, i
1319+
@set! m.vals = m.vals .+ 1
1320+
@set! m.x = 0.0
1321+
return m
1322+
end
1323+
return ODESystem(eqs, t, vars, []; name = name,
1324+
continuous_events = [[x ~ max_time] => reset])
1325+
end
1326+
shared_pars = @parameters begin
1327+
vals(t)[1:2] = 0.0
1328+
end
1329+
1330+
@named sys = ODESystem(Equation[], t, [], Symbolics.scalarize(vals);
1331+
systems = [child(vals; name = :child)])
1332+
sys = structural_simplify(sys)
1333+
sol = solve(ODEProblem(sys, [], (0.0, 1.0)), Tsit5())
1334+
end

0 commit comments

Comments
 (0)