Skip to content

Commit 1770ae7

Browse files
fix: consider model inputs for diffcache reference
1 parent 8d2ec1f commit 1770ae7

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

lib/ModelingToolkitTearing/src/reassemble.jl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -606,9 +606,14 @@ function get_linear_scc_linsol(state::TearingState, alg_eqs::Vector{Int},
606606
else
607607
reference = fullvars[state_idx]
608608
end
609+
reference_args = Symbolics.SArgsT((reference, MTKBase.get_iv(sys)::SymbolicT))
610+
inps = MTKBase.inputs(sys)
611+
if !isempty(inps)
612+
push!(reference_args, first(inps))
613+
end
609614
reference = Symbolics.STerm(
610-
promote, Symbolics.SArgsT((reference, MTKBase.get_iv(sys)::SymbolicT));
611-
type = Vector{Real}, shape = [1:2]
615+
promote, reference_args;
616+
type = Vector{Real}, shape = [1:length(reference_args)]
612617
)[1]
613618
sys, A_cache = MTKBase.add_diffcache(sys, length(A))
614619
A_allocator = A_cache(reference)
@@ -846,7 +851,6 @@ Solve equation `eq` for `var`, substitute previously solved variables, and retur
846851
function make_solved_equation(var, eq, total_sub; simplify = false)
847852
residual = eq.lhs - eq.rhs
848853
a, b, islinear = Symbolics.linear_expansion(residual, var)
849-
@assert islinear
850854
# 0 ~ a * var + b
851855
# var ~ -b/a
852856
if SU._iszero(a)

0 commit comments

Comments
 (0)