Skip to content

Commit 92f78c9

Browse files
committed
Implement dummy derivative reassemble
1 parent 336796f commit 92f78c9

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/structural_transformation/symbolics_tearing.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,5 +296,9 @@ function dummy_derivative(sys)
296296
Symbolics.jacobian((x->x.rhs).(symeqs), state.fullvars[vars])
297297
end
298298
dds = dummy_derivative_graph!(state, jac)
299-
EquationsView(state), state.fullvars[dds]
299+
length(dds) == length(state.extra_eqs) || error("Identified $(length(dds)) dummy derivatives, but Pantelides' algorithm generated $(length(state.extra_eqs)) more equations.")
300+
symdds = Symbolics.diff2term.(state.fullvars[dds])
301+
subs = Dict(state.fullvars[dd] => symdds[i] for (i, dd) in enumerate(dds))
302+
@set! sys.eqs = substitute.(EquationsView(state), (subs,))
303+
@set! sys.states = [states(sys); symdds]
300304
end

0 commit comments

Comments
 (0)