Skip to content

Commit 0d962c4

Browse files
authored
Merge pull request #2943 from SciML/myb/debuginfo
Add DummyDerivativeSummary debuginfo
2 parents 47aa59d + 6a2fe2c commit 0d962c4

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/structural_transformation/partial_state_selection.jl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,11 @@ function dummy_derivative_graph!(state::TransformationState, jac = nothing;
177177
dummy_derivative_graph!(state.structure, var_eq_matching, jac, state_priority, log)
178178
end
179179

180+
struct DummyDerivativeSummary
181+
var_sccs::Vector{Vector{Int}}
182+
state_priority::Vector{Vector{Float64}}
183+
end
184+
180185
function dummy_derivative_graph!(
181186
structure::SystemStructure, var_eq_matching, jac = nothing,
182187
state_priority = nothing, ::Val{log} = Val(false)) where {log}
@@ -203,6 +208,9 @@ function dummy_derivative_graph!(
203208
end
204209

205210
var_sccs = find_var_sccs(graph, var_eq_matching)
211+
var_perm = Int[]
212+
var_dummy_scc = Vector{Int}[]
213+
var_state_priority = Vector{Float64}[]
206214
eqcolor = falses(nsrcs(graph))
207215
dummy_derivatives = Int[]
208216
col_order = Int[]
@@ -242,7 +250,13 @@ function dummy_derivative_graph!(
242250
iszero(nrows) && break
243251

244252
if state_priority !== nothing && isfirst
245-
sort!(vars, by = extended_sp)
253+
sp = extended_sp.(vars)
254+
resize!(var_perm, length(sp))
255+
sortperm!(var_perm, sp)
256+
permute!(vars, var_perm)
257+
permute!(sp, var_perm)
258+
push!(var_dummy_scc, copy(vars))
259+
push!(var_state_priority, sp)
246260
end
247261
# TODO: making the algorithm more robust
248262
# 1. If the Jacobian is a integer matrix, use Bareiss to check
@@ -322,7 +336,7 @@ function dummy_derivative_graph!(
322336

323337
ret = tearing_with_dummy_derivatives(structure, BitSet(dummy_derivatives))
324338
if log
325-
ret
339+
(ret..., DummyDerivativeSummary(var_dummy_scc, var_state_priority))
326340
else
327341
ret[1]
328342
end

0 commit comments

Comments
 (0)