Skip to content

Commit 7fe8c9c

Browse files
committed
Start using SparseVector for fe_vector_target.entries
1 parent 457d069 commit 7fe8c9c

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ DiffResults = "1"
3131
DocStringExtensions = "0.8,0.9"
3232
ExampleJuggler = "2.2.1"
3333
ExplicitImports = "1"
34-
ExtendableFEMBase = "1"
34+
ExtendableFEMBase = "1.3.0"
3535
ExtendableGrids = "1.10.3"
3636
ExtendableSparse = "1.5.3"
3737
ForwardDiff = "0.10.35,1"

src/ExtendableFEM.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ using LinearAlgebra: LinearAlgebra, copyto!, isposdef, mul!, norm
6767
using LinearSolve: LinearSolve, LinearProblem, UMFPACKFactorization, deleteat!,
6868
init, solve
6969
using Printf: Printf, @printf
70-
using SparseArrays: SparseArrays, AbstractSparseArray, SparseMatrixCSC, findnz, nnz,
70+
using SparseArrays: SparseArrays, AbstractSparseArray, SparseMatrixCSC, findnz, nnz, SparseVector,
7171
nzrange, rowvals, sparse
7272
using SparseDiffTools: SparseDiffTools, ForwardColorJacCache,
7373
forwarddiff_color_jacobian!, matrix_colors

src/helper_functions.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,8 @@ function _get_periodic_coupling_matrix(
380380
# to be sure
381381
fill!(fe_vector.entries, 0.0)
382382

383-
local fe_vector_target = FEVector(our_FES)
383+
local entries = SparseVector{Float64, Int64}(our_FES.ndofs, Int64[], Float64[])
384+
local fe_vector_target = FEVector(our_FES; entries)
384385

385386
local n = length(fe_vector.entries)
386387
local result = ExtendableSparseMatrix(n, n)
@@ -397,7 +398,8 @@ function _get_periodic_coupling_matrix(
397398
end
398399

399400
# reset
400-
fill!(fe_vector_target.entries, 0.0)
401+
empty!(fe_vector_target.entries.nzind)
402+
empty!(fe_vector_target.entries.nzval)
401403

402404
# activate one entry
403405
fe_vector.entries[local_dof] = 1.0
@@ -419,7 +421,7 @@ function _get_periodic_coupling_matrix(
419421
fe_vector.entries[local_dof] = 0.0
420422

421423
# set entries
422-
for (i, target_entry) in enumerate(fe_vector_target.entries)
424+
for (i, target_entry) in zip(findnz(fe_vector_target.entries)...)
423425
if abs(target_entry) > sparsity_tol
424426
result[local_dof, i] = target_entry
425427
end

0 commit comments

Comments
 (0)