Skip to content

Commit cce01d4

Browse files
Merge pull request #64 from JuliaComputing/as/fix-diffcache-reference
fix: consider model inputs for diffcache reference
2 parents 8d2ec1f + 1770ae7 commit cce01d4

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

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)