feat: Consolidate FEMSparse.jl into JuliaFEM

Consolidated FEMSparse package into src/sparse/:
- sparsematrixcsc.jl: AssemblerSparsityPattern for efficient assembly
- sparsevectordok.jl: Skipped (old Julia syntax, not used)

Changes:
- Removed 'import FEMSparse' from JuliaFEM.jl
- Updated problems_elasticity.jl: FEMSparse.AssemblerSparsityPattern → AssemblerSparsityPattern
- Fixed include paths in sparse/sparse.jl (relative, not absolute)

Modernization:
- Fixed sparsevectordok.jl type keyword → mutable struct
- Fixed AbstractSparseArray type parameter syntax
- Chose to skip sparsevectordok for now (old {T,V} syntax, unused)

Result:
- ✅ JuliaFEM loads successfully
- ✅ 5 tests still passing (no regression)
- ✅ Three vendor packages now consolidated: FEMBase, FEMBasis, FEMQuad, FEMSparse

Remaining vendor packages: AbaqusReader, AsterReader, HeatTransfer, FEMBeam, Mortar packages
This commit is contained in:
Jukka Aho
2025-11-08 11:08:10 +02:00
parent 1f9c723017
commit f6f3b97c16
5 changed files with 230 additions and 5 deletions
+7
View File
@@ -1,9 +1,16 @@
# This file is a part of JuliaFEM.
# License is MIT: see https://github.com/JuliaFEM/FEMBase.jl/blob/master/LICENSE
#
# Sparse matrix utilities consolidated from FEMBase.jl and FEMSparse.jl
using SparseArrays
import SparseArrays: sparse, sparsevec
# SparseMatrixCOO from FEMBase (this file)
# AssemblerSparsityPattern from FEMSparse
include("sparsematrixcsc.jl")
# include("sparsevectordok.jl") # Old Julia syntax, not used, skipping for now
mutable struct SparseMatrixCOO{T<:Real}
I :: Vector{Int}
J :: Vector{Int}