[petsc-dev] API changes in MatIS

Jed Brown jedbrown at mcs.anl.gov
Thu May 10 14:30:51 CDT 2012


On Thu, May 10, 2012 at 2:19 PM, Stefano Zampini
<stefano.zampini at gmail.com>wrote:

> 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.


This is to do recursive BDDC or what?

MatConvert does not change the linear operator, it just changes the format.
I get the impression from this email that you want to make it do more than
that.


> 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/37eb0a85/attachment.html>


More information about the petsc-dev mailing list