Note:

julia> sparse([1,2,3],[1,2,3],Matrix{Float64}[ones(2,2),zeros(2,2),eye(2,2)])
3x3 sparse matrix with 3 Array{Float64,2} entries:
        [1, 1]  =  2x2 Array{Float64,2}:
 1.0  1.0
 1.0  1.0
        [2, 2]  =  2x2 Array{Float64,2}:
 0.0  0.0
 0.0  0.0
        [3, 3]  =  2x2 Array{Float64,2}:
 1.0  0.0
 0.0  1.0

julia> v = Vector{Float64}[rand(2),rand(2),rand(2)]
3-element Array{Array{Float64,1},1}:
 [0.8419746064422413,0.07808744490321806]
 [0.5358955649876855,0.06596091273868865]
 [0.3325842069442646,0.5785178563938704] 

julia> A*v
ERROR: MethodError: `one` has no method matching one(::Type{Array{Float64,N}})
 in * at sparse/linalg.jl:59

You could replace that `zero(T)` on that line with `zero(x[1])`, after 
suitable checks for empty matrices and the like. Commutivity is another thing 
that has probably been assumed, and would need to be fixed. Someone (Doug? 
Christoph?) just needs to chase down all such errors, and you'd be good to go 
(by, say, tomorrow :-) ).

--Tim

On Sunday, August 16, 2015 04:55:51 PM Christoph Ortner wrote:
> data structures like that would be very natural, e.g., in FE codes and
> similar applications. But I would argue unless there are good solvers that
> exploits this structure, they are essentially useless. Do such solvers
> exist? (The only case I know of, off the top of my head, is the trivial
> case of a higher-order DGFE mass matrix.)
> 
> Personally, I would also be quite interested in such data structures and
> associated sparse solvers.
> 
> Christoph

Reply via email to