@@ -237,18 +237,6 @@ function check_diff_graph(var_to_diff, fullvars)
237
237
end
238
238
=#
239
239
240
- function state_selection ()
241
-
242
- end
243
-
244
- function create_new_deriv_variables ()
245
-
246
- end
247
-
248
- function solve_solvable_equations ()
249
-
250
- end
251
-
252
240
function tearing_reassemble (state:: TearingState , var_eq_matching,
253
241
full_var_eq_matching = nothing ; simplify = false , mm = nothing , cse_hack = true , array_hack = true )
254
242
@unpack fullvars, sys, structure = state
@@ -323,7 +311,7 @@ function tearing_reassemble(state::TearingState, var_eq_matching,
323
311
diff_to_var[dv] = nothing
324
312
end
325
313
end
326
- @show neweqs
314
+ @show var_eq_matching
327
315
328
316
println (" Post state selection." )
329
317
@@ -337,14 +325,16 @@ function tearing_reassemble(state::TearingState, var_eq_matching,
337
325
end
338
326
idx_to_lowest_shift = Dict {Int, Int} (var => 0 for var in 1 : length (fullvars))
339
327
for (i,var) in enumerate (fullvars)
340
- key = operation (var) isa Shift ? only (arguments (var)) : var
328
+ key = ( operation (var) isa Shift) ? only (arguments (var)) : var
341
329
idx_to_lowest_shift[i] = get (lowest_shift, key, 0 )
342
330
end
343
331
344
332
# if var is like D(x)
345
333
isdervar = let diff_to_var = diff_to_var
346
334
var -> diff_to_var[var] != = nothing
347
335
end
336
+ # For discrete variables, we want the substitution to turn
337
+ # Shift(t, k)(x(t)) => x_t-k(t)
348
338
var_order = let diff_to_var = diff_to_var
349
339
dv -> begin
350
340
order = 0
@@ -358,7 +348,6 @@ function tearing_reassemble(state::TearingState, var_eq_matching,
358
348
end
359
349
lower_name = is_only_discrete (state. structure) ? lower_varname_withshift : lower_varname_with_unit
360
350
361
- # retear = BitSet()
362
351
# There are three cases where we want to generate new variables to convert
363
352
# the system into first order (semi-implicit) ODEs.
364
353
#
0 commit comments