@@ -136,13 +136,11 @@ KA.@kernel function _assemble_block_stiffness_kernel!(assembler, physics, ref_fe
136136 K_el = K_el + K_q
137137 end
138138
139- # start_id = (block_id - 1) * assembler.pattern.block_sizes[block_id] +
140- # (el_id - 1) * assembler.pattern.block_offsets[block_id] + 1
141- # end_id = start_id + assembler.pattern.block_offsets[block_id] - 1
142- # TODO patch this up for multi-block later
143- # hardcoded for single block quad4
144- start_id = (E - 1 ) * 16 + 1
145- end_id = start_id + 16 - 1
139+ block_size = values (assembler. pattern. block_sizes)[block_id]
140+ block_offset = values (assembler. pattern. block_offsets)[block_id]
141+ start_id = (block_id - 1 ) * block_size +
142+ (E - 1 ) * block_offset + 1
143+ end_id = start_id + block_offset - 1
146144 ids = start_id: end_id
147145 for (i, id) in enumerate (ids)
148146 Atomix. @atomic assembler. stiffness_storage[id] += K_el. data[i]
@@ -174,9 +172,10 @@ function assemble!(assembler, physics, U::H1Field, sym::Symbol)
174172 # fill!(assembler.residual_storage, zero(eltype(assembler.residual_storage)))
175173 _zero_storage (assembler, Val {sym} ())
176174 fspace = assembler. dof. H1_vars[1 ]. fspace
175+ X = fspace. coords
177176 for (b, conns) in enumerate (values (fspace. elem_conns))
178177 ref_fe = values (fspace. ref_fes)[b]
179- _assemble_block! (assembler, physics, sym, ref_fe, U, fspace . coords , conns, b)
178+ _assemble_block! (assembler, physics, sym, ref_fe, U, X , conns, b)
180179 end
181180 return nothing
182181end
0 commit comments