Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Smith, Barry F.
MaTAXPY with same nonzero pattern is much faster. > On Jan 30, 2018, at 10:10 PM, Marius Buerkle wrote: > > Thanks. While B'*C*B may not have the same nonzero pattern as A it does not > matter as this is done by MaTAXPY with different nonzero pattern it should > not matter

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Marius Buerkle
Thanks. While B'*C*B may not have the same nonzero pattern as A it does not matter as this is done by MaTAXPY with different nonzero pattern it should not matter when using  MatPtAPNumeric_MPIAIJ_MPIAIJ_scalable()  with a restricted reduction. I will give it a try.       To do this most

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Smith, Barry F.
To do this most efficiently you would compute exactly the part of F = B'*C*B you need (that matches the nonzero pattern of A) do a MatAXPY() with same numerical pattern and then just stick the values of D into the original matrix (without worrying about excluding the new nonzeros since

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Marius Buerkle
Not sure how much overhead it produces but copying the actual values with MatGetRow is not necessary as I only need the col position of the nonzero elements in each row.  Inserting the Matrix back is not so complicated as the submatrix is a continous square matrix from somewhere in the bigger

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Marius Buerkle
The matrix A is the extracted submatrix and I am basicallly doing something like this D=A+B'*C*B. Where A, B, and C are sparse but B'*C*C will clearly generate some addional nonzero entries in D. And D should go back into the bigger matrix but only the entries which are already nonzero in A.  

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Smith, Barry F.
> On Jan 30, 2018, at 6:53 PM, Marius Buerkle wrote: > > Barry, > > Thanks for you reply. The pulled matrix is symmetric but that's it. At the > moment I am doing a copy of the matrix right after MatCreateSubMatrix to keep > it's nonzero structure. To insert the matrix

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Smith, Barry F.
Could you tell us exactly what matrix matrix products you are doing? Barry > On Jan 30, 2018, at 6:53 PM, Marius Buerkle wrote: > > Barry, > > Thanks for you reply. The pulled matrix is symmetric but that's it. At the > moment I am doing a copy of the matrix right

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-30 Thread Marius Buerkle
Barry,   Thanks for you reply. The pulled matrix is symmetric but that's it. At the moment I am doing a copy of the matrix right after MatCreateSubMatrix to keep it's nonzero structure. To insert the matrix which I obtained after the multiplications back into the bigger matrix I use the

Re: [petsc-users] combine two matrices with different non-zero structure

2018-01-29 Thread Smith, Barry F.
Marius, We don't provide a way to insert a "generic" sparse matrix into a bigger matrices (dense matrices coming from element stiffness matrices yes) so I don't see any simple solution. Does the submatrix you pull out have any particular structure, what does it represent? Barry > On