[petsc-dev] API changes in MatIS

Stefano Zampini stefano.zampini at gmail.com
Thu May 10 14:19:07 CDT 2012


>
> For MatIS, I would be fine with creating a new MatIS using the same local
> matrices on a subcommunicator, then MatConvert'ing it to AIJ (that will do
> assembly), and discarding the temporary subcomm MatIS.
>

So, I need to implement MatConvert_MATIS_AIJ.

I need such a procedure to create a new MATIS representing the BDDC coarse
matrix, not to assemble a parallel matrix. Note that the converted matrix
should be SEQAIJ for actual implementation of PETSc MATIS. It seems to me
that the best logic should then be

if(im_active_on_the_next_level)
MatCreateSEQAIJ(PETSC_COMM_SELF,A_MATIS_NEW...
MatConvert(A_MATIS,MATAIJ,MAT_REUSE_MATRIX,&A_MATIS_NEW)

Mat_Convert_MATIS_AIJ should than detect the only process having already
created the converted matrix. In case you need a parallel AIJ matrix , then
the call should be

MatConvert(A_MATIS,MATAIJ,MAT_INITIAL_MATRIX,&A_MATIS_NEW)

and A_MATIS_NEW should than be created by the procedure and take the same
comm of A_MATIS. Is it fine for you?

-- 
Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120510/4d36c291/attachment.html>


More information about the petsc-dev mailing list