This is usually called "block sparse" and there are some data structures 
for it in PETSc and Trilinos IIRC. Getting it to work robustly in Julia 
right this second will likely be a bit tricky. Arrays of arrays have some 
corner cases and aren't always the nicest things to work with, but it's 
worth trying.


On Saturday, August 15, 2015 at 11:01:10 AM UTC-7, Douglas Bates wrote:
>
> I want to use sparse matrices in which the nonzeros are fixed-sized dense 
> matrices.  The matrix is of size m*p by n*q with nz nonzero blocks, each of 
> size p by q.  Generally p and q are very small but m, n and nz can be large.
>  
> In a CSC representation of such a matrix, A, the  A.colptr and A.rowval 
> arrays are of lengths n+1 and nz, respectively, and A.nzval is a 
> 3-dimensional array of size p by q by nz
>
> Does this type of structure appear elsewhere?  I think I have seen 
> descriptions in some sparse matrix packages of arrays like this where p and 
> q might be stencil sizes.   I'm fine with creating the structure and its 
> methods myself but I also don't want to reinvent the wheel.
>
> Mostly I want to evaluate products of such matrices.
>

Reply via email to