Skip to content

Commit f5937ae

Browse files
committed
Use schedule to replace dummy derivatives
1 parent 94ff612 commit f5937ae

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1366,7 +1366,21 @@ function InitializationProblem{iip, specialize}(sys::AbstractSystem,
13661366
end
13671367

13681368
u0map = merge(ModelingToolkit.guesses(sys), todict(guesses), todict(u0map))
1369-
u0map = Dict(diff2term(var) => val for (var, val) in u0map) # replace D(x) -> x_t etc.
1369+
1370+
# Replace dummy derivatives in u0map: D(x) -> x_t etc.
1371+
if has_schedule(sys)
1372+
schedule = get_schedule(sys)
1373+
if !isnothing(schedule)
1374+
for (var, val) in u0map
1375+
dvar = get(schedule.dummy_sub, var, var) # with dummy derivatives
1376+
if dvar !== var # then replace it
1377+
delete!(u0map, var)
1378+
push!(u0map, dvar => val)
1379+
end
1380+
end
1381+
end
1382+
end
1383+
13701384
fullmap = merge(u0map, parammap)
13711385
u0T = Union{}
13721386
for sym in unknowns(isys)

0 commit comments

Comments
 (0)