From 0b5695c8e4e9aaa5fa240839ddfd86daadde419a Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Thu, 12 Mar 2026 13:09:16 +0530 Subject: [PATCH 1/2] feat: use `DiffCache` for inline linear SCC buffers --- lib/ModelingToolkitTearing/src/reassemble.jl | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/ModelingToolkitTearing/src/reassemble.jl b/lib/ModelingToolkitTearing/src/reassemble.jl index 82c3850..27fd719 100644 --- a/lib/ModelingToolkitTearing/src/reassemble.jl +++ b/lib/ModelingToolkitTearing/src/reassemble.jl @@ -575,8 +575,25 @@ function get_linear_scc_linsol(state::TearingState, alg_eqs::Vector{Int}, lu !== nothing && return BSImpl.Const{VartypeT}((lu \ b)::Vector{SymbolicT}) end # Turn into symbolic arrays - A = SU.Const{VartypeT}(A) - b = SU.Const{VartypeT}(b) + sys = state.sys + reference_idx = findfirst(!SU.isconst, A) + if reference_idx === nothing + reference_idx = findfirst(!SU.isconst, b) + if reference_idx === nothing + reference = first(A) + else + reference = A[reference_idx] + end + else + reference = A[reference_idx] + end + sys, A_cache = MTKBase.add_diffcache(sys, length(A)) + A_allocator = A_cache(reference) + A = SU.Code.with_allocator(A_allocator, SU.Const{VartypeT}(A)) + sys, b_cache = MTKBase.add_diffcache(sys, length(b)) + b_allocator = b_cache(reference) + b = SU.Code.with_allocator(b_allocator, SU.Const{VartypeT}(b)) + state.sys = sys return INLINE_LINEAR_SCC_OP(A, b) end From 9a5840363539614502b7ce1e0abb0d48675adc42 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 16 Mar 2026 21:04:49 +0530 Subject: [PATCH 2/2] build: bump MTKBase compat --- lib/ModelingToolkitTearing/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ModelingToolkitTearing/Project.toml b/lib/ModelingToolkitTearing/Project.toml index 0a06142..f6dbdf8 100644 --- a/lib/ModelingToolkitTearing/Project.toml +++ b/lib/ModelingToolkitTearing/Project.toml @@ -29,7 +29,7 @@ DocStringExtensions = "0.7, 0.8, 0.9" Graphs = "1" LinearAlgebra = "1" ModelingToolkit = "11" -ModelingToolkitBase = "1.13" +ModelingToolkitBase = "1.23" Moshi = "0.3" OffsetArrays = "1" OrderedCollections = "1.8.1"