From f4262571a9b867f9bcdf3ffad55d90b247305a64 Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Thu, 20 Nov 2025 17:41:58 +0200 Subject: [PATCH] refactor(assemblers): Update compute_block! call site in element_based_coo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated compute_block! call to pass arrays directly from caches: - geometry_cache.∇N_data - geometry_cache.detJ_w - material_cache.𝔻 Removed commented counter write-back line, added explanatory comment. Maintains symmetric assembly optimization (upper triangle only). --- src/assemblers/element_based_coo.jl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/assemblers/element_based_coo.jl b/src/assemblers/element_based_coo.jl index b273423..7eb61c7 100644 --- a/src/assemblers/element_based_coo.jl +++ b/src/assemblers/element_based_coo.jl @@ -91,7 +91,13 @@ function assemble_element!( # Assemble only upper triangle (k ≤ l) since stiffness matrix is symmetric # This halves computation and memory usage @inbounds for k in 1:N, l in k:N # Only l ≥ k (upper triangle) - compute_block!(element_cache.K_blocks, geometry_cache, material_cache, k, l) + compute_block!( + element_cache.K_blocks, + geometry_cache.∇N_data, + geometry_cache.detJ_w, + material_cache.𝔻, + k, l + ) end return nothing @@ -221,7 +227,8 @@ function assemble!( end # Write counter back ONCE after loop - # cache.counter[] = counter + # NOTE: counter MUST be written back so extract_system() knows how many triplets to extract + cache.counter[] = counter return nothing end