Hi,
I feel that my problem must be shared by some of you.
I need to build the sparse matrix associated to a 2d Finite Element method. Following the advice of Viral, I built 3 lists I,J,values
containing the indices of nonzeros elements. So each element of I
or J
contains the linear index associated to a tuple (i,j)
because my problem is 2d. However, this is very inconvenient.
Basically, I need to add values to a sparse matrix and this is slow.
Hence, I am looking for a convenient way to build the indices I,J,V
so that I can call sparse(I,J,V)
in the end.
By convenient way, I mean that I want to operations +,-,*,...
to be defined somehow.
For example, would it be possible to have a sparse matrix defined as
struct spmat
I::Int64[]
J::Int64[]
val::Float64[]
end
and the plus operation would just push to I,J,val
. Am I re-inventing the wheel?
Thank you for your suggestions.