<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Jed :<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
</span>Is it better this way or as a fallback when !A->ops->rart?  MatPtAP<br>
handles other combinations like MAIJ.<br></blockquote><div> </div><div>Do you mean</div><div>if ( !A->ops->rart) {</div><div><div>    Mat Rt;</div><div>    ierr = MatTranspose(R,MAT_INITIAL_MATRIX,&Rt);CHKERRQ(ierr);</div><div>    ierr = MatMatMatMult(R,A,Rt,scall,fill,C);CHKERRQ(ierr);</div><div>    ierr = MatDestroy(&Rt);CHKERRQ(ierr);</div></div><div>}</div><div>This does NOT work for most matrix formats because we do not have fallbacks for MatTranspose() and MatMatMult().</div><div><br></div><div>Hong</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="gmail-HOEnZb"><div class="gmail-h5"><br>
><br>
> On Wed, Jun 21, 2017 at 12:53 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
>><br>
>> > On Jun 21, 2017, at 8:00 AM, Franck Houssen <<a href="mailto:franck.houssen@inria.fr">franck.houssen@inria.fr</a>><br>
>> wrote:<br>
>> ><br>
>> > How to compute RARt with A and R as distributed (MPI) matrices ?<br>
>> ><br>
>> > This works with sequential matrices.<br>
>> > The doc say "currently only implemented for pairs of AIJ matrices and<br>
>> classes which inherit from AIJ": I supposed that MPIAIJ was someway<br>
>> inheriting from AIJ, seems that it doesn't.<br>
>><br>
>>      Yes, when we say AIJ we mean both SeqAIJ and MPIAIJ. The manual page<br>
>> here is wrong, probably because it got copied from MatPtAP page<br>
>><br>
>> ><br>
>> > Is this kind of matrix product possible with distributed matrices in<br>
>> PETSc ? Or is this a known limitation ?<br>
>> > Do I go the wrong way to do that (= should use another method) ? If yes,<br>
>> what is the correct one ?<br>
>> ><br>
>> > Franck<br>
>> ><br>
>> > PS: running debian/testing + gcc-6.3 + bitbucket petsc.<br>
>> ><br>
>> > >> mpirun -n 2 matRARt.exe seq<br>
>> > Mat Object: 1 MPI processes<br>
>> >   type: seqaij<br>
>> > row 0: (0, 1.)  (1, 0.)<br>
>> > row 1: (0, 0.)  (1, 1.)<br>
>> ><br>
>> > >> mpirun -n 2 matRARt.exe mpi<br>
>> > [0]PETSC ERROR: --------------------- Error Message<br>
>> ------------------------------<wbr>------------------------------<wbr>--<br>
>> > [0]PETSC ERROR: No support for this operation for this object type<br>
>> > [0]PETSC ERROR: Matrix of type <mpiaij> does not support RARt<br>
>> ><br>
>> > <matRARt.cpp><br>
>><br>
>><br>
</div></div></blockquote></div><br></div></div>