File tree Expand file tree Collapse file tree
lib/ModelingToolkitBase/src/systems Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1998,6 +1998,20 @@ equations during `mtkcompile`. These equations matches generated numerical code.
19981998See also [`equations`](@ref) and [`ModelingToolkitBase.get_eqs`](@ref).
19991999"""
20002000function full_equations (sys:: AbstractSystem ; simplify = false )
2001+ subsys = get_systems (sys)
2002+ # Fast path using `IRInfo`
2003+ if isempty (subsys)
2004+ new_eqs = Equation[]
2005+ eqs = equations (sys)
2006+ sizehint! (new_eqs, length (eqs))
2007+ info = get_ir_info (sys)
2008+ ir = get_irstructure (sys)
2009+ @assert length (info. eqs_idxs) == length (eqs)
2010+ for (eq, rhs_idx) in zip (eqs, info. eqs_idxs)
2011+ push! (new_eqs, eq. lhs ~ ir[rhs_idx])
2012+ end
2013+ return new_eqs
2014+ end
20012015 empty_substitutions (sys) && return equations (sys)
20022016 subs = get_substitutions (sys)
20032017 neweqs = map (equations (sys)) do eq
You can’t perform that action at this time.
0 commit comments