Skip to content

Commit 9aa687f

Browse files
refactor: use new reversible transformation API instead of unhack_system
1 parent 35ab025 commit 9aa687f

5 files changed

Lines changed: 11 additions & 14 deletions

File tree

lib/ModelingToolkitBase/src/systems/abstractsystem.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ function add_initialization_parameters(sys::AbstractSystem; split = true, _unhac
567567
all_initialvars = Set{SymbolicT}()
568568
# time-independent systems don't initialize unknowns
569569
# but may initialize parameters using guesses for unknowns
570-
_sys = _unhack_sys === nothing ? unhack_system(sys) : _unhack_sys
570+
_sys = _unhack_sys === nothing ? reverse_all_default_reversible_transformations(sys) : _unhack_sys
571571
obs = observed(_sys)
572572
eqs = equations(_sys)
573573
for x in unknowns(_sys)
@@ -698,7 +698,7 @@ function complete(
698698
end
699699
sys = newsys
700700
check_no_parameter_equations(sys)
701-
_unhack_sys = unhack_system(sys)
701+
_unhack_sys = reverse_all_default_reversible_transformations(sys)
702702
if add_initial_parameters
703703
sys = add_initialization_parameters(sys; split, _unhack_sys)::T
704704
end

lib/ModelingToolkitBase/src/systems/callbacks.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ function AffectSystem(
193193
union!(accessed_params, sys_params)
194194

195195
# add scalarized unknowns to the map.
196-
_obs = observed(unhack_system(affectsys))
196+
_obs = observed(reverse_all_default_reversible_transformations(affectsys))
197197
_dvs = vcat(unknowns(affectsys), map(eq -> eq.lhs, _obs))
198198
_dvs = __safe_scalarize_vars(_dvs)
199199
_discs = __safe_scalarize_vars(discretes)
@@ -1415,7 +1415,7 @@ Base.@nospecializeinfer function compile_explicit_affect(
14151415
ps_to_update = discretes(aff)
14161416
dvs_to_update = setdiff(unknowns(aff), getfield.(observed(sys), :lhs))
14171417

1418-
_affsys = unhack_system(affsys)
1418+
_affsys = reverse_all_default_reversible_transformations(affsys)
14191419
aff_ir_info = get_ir_info(affsys)
14201420
aff_ir = get_irstructure(affsys)
14211421
obseqs = Equation[]

lib/ModelingToolkitBase/src/systems/nonlinear/initializesystem.jl

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,9 @@ function generate_initializesystem_timevarying(
5555
check_units = true, check_defguess = false,
5656
name = nameof(sys), kwargs...
5757
)
58-
_sys = unhack_system(sys)
58+
_sys = reverse_transformations_for_initialization(sys)
59+
eqs = full_equations(_sys)
5960
trueobs = observed(_sys)
60-
eqs = equations(_sys)
61-
# remove any observed equations that directly or indirectly contain
62-
# delayed unknowns
63-
isempty(trueobs) || filter_delay_equations_variables!(sys, trueobs)
6461

6562
# Firstly, all variables and observables are initialization unknowns
6663
init_vars_set = AtomicArraySet{OrderedDict{SymbolicT, Nothing}}()
@@ -226,7 +223,7 @@ function generate_initializesystem_timeindependent(
226223
name = nameof(sys), kwargs...
227224
)
228225
eqs = equations(sys)
229-
_sys = unhack_system(sys)
226+
_sys = reverse_transformations_for_initialization(sys)
230227
trueobs = observed(_sys)
231228
eqs = equations(_sys)
232229
# remove any observed equations that directly or indirectly contain

lib/ModelingToolkitBase/src/systems/problem_utils.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1833,7 +1833,7 @@ function __process_SciMLProblem(
18331833

18341834
add_initials!(sys, op)
18351835

1836-
_sys = unhack_system(sys)
1836+
_sys = reverse_all_default_reversible_transformations(sys)
18371837
obs = observed(_sys)
18381838

18391839
guesses = operating_point_preprocess(sys, guesses; name = "guesses")
@@ -2327,7 +2327,7 @@ function get_u0(sys::AbstractSystem, varmap; kwargs...)
23272327
op = build_operating_point(sys, varmap)
23282328
binds = bindings(sys)
23292329
no_override_merge_except_missing!(op, binds)
2330-
obs = observed(unhack_system(sys))
2330+
obs = observed(reverse_all_default_reversible_transformations(sys))
23312331
add_observed_equations!(op, obs)
23322332

23332333
return varmap_to_vars(op, unknowns(sys); kwargs...)
@@ -2345,7 +2345,7 @@ function get_p(sys::AbstractSystem, varmap; split = is_split(sys), kwargs...)
23452345
binds = bindings(sys)
23462346
no_override_merge_except_missing!(op, binds)
23472347
add_initials!(sys, op)
2348-
obs = observed(unhack_system(sys))
2348+
obs = observed(reverse_all_default_reversible_transformations(sys))
23492349
add_observed_equations!(op, obs)
23502350

23512351
return if split

lib/ModelingToolkitBase/src/systems/systems.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ function simplify_optimization_system(sys::System; split = true, kwargs...)
845845
snlsys = mtkcompile(nlsys; kwargs..., fully_determined = false)::System
846846
obs = observed(snlsys)
847847
seqs = equations(snlsys)
848-
trueobs = observed(unhack_system(snlsys))
848+
trueobs = observed(reverse_all_default_reversible_transformations(snlsys))
849849
subs = Dict{SymbolicT, SymbolicT}()
850850
for eq in trueobs
851851
subs[eq.lhs] = eq.rhs

0 commit comments

Comments
 (0)