<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Jed :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It is only implemented for SeqAIJ, but it should arguably have a default<br>
implementation that performs an explicit transpose and then calls<br>
MatMatMatMult or MatPtAP.<br></blockquote><div><br></div><div>We can implement</div><div>P= R^T (we have this for mpi matrices, expensive though)</div><div>C = R*A*P </div><div>Hong</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
Franck Houssen <<a href="mailto:franck.houssen@inria.fr">franck.houssen@inria.fr</a>> writes:<br>
<br>
> I read the doc, and googled this before to write a dummy example. So, matRARt is only for sequential matrices, and, matPtAP for distributed ones : correct ? (means, I "just" used the "wrong" method)<br>
> If so, this is a major difference which does not seem (to me) to be emphasized enough in the doc, in particular for a new user (the matRARt and matPtAP pages are the same with R replaced with Pt). Where was it possible to find this information ?<br>
><br>
> Franck<br>
><br>
</span>> ----- Mail original -----<br>
<div class="HOEnZb"><div class="h5">><br>
>> De: "Dave May" <<a href="mailto:dave.mayhem23@gmail.com">dave.mayhem23@gmail.com</a>><br>
>> À: "Franck Houssen" <<a href="mailto:franck.houssen@inria.fr">franck.houssen@inria.fr</a>>, "PETSc users list"<br>
>> <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>>, "petsc-dev" <<a href="mailto:petsc-dev@mcs.anl.gov">petsc-dev@mcs.anl.gov</a>><br>
>> Envoyé: Mercredi 21 Juin 2017 15:11:27<br>
>> Objet: Re: [petsc-users] How to compute RARt with A and R as distributed<br>
>> (MPI) matrices ?<br>
><br>
>> You can assemble R^t and then use MatPtAP which supports MPIAIJ<br>
><br>
>> On Wed, 21 Jun 2017 at 15:00, 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>
><br>
>> > This works with sequential matrices.<br>
>><br>
>> > The doc say "currently only implemented for pairs of AIJ matrices and<br>
>> > classes<br>
>> > which inherit from AIJ": I supposed that MPIAIJ was someway inheriting from<br>
>> > AIJ, seems that it doesn't.<br>
>><br>
><br>
>> > Is this kind of matrix product possible with distributed matrices in PETSc<br>
>> > ?<br>
>> > Or is this a known limitation ?<br>
>><br>
>> > Do I go the wrong way to do that (= should use another method) ? If yes,<br>
>> > what<br>
>> > is the correct one ?<br>
>><br>
><br>
>> > Franck<br>
>><br>
><br>
>> > PS: running debian/testing + gcc-6.3 + bitbucket petsc.<br>
>><br>
><br>
>> > >> mpirun -n 2 matRARt.exe seq<br>
>><br>
>> > Mat Object: 1 MPI processes<br>
>><br>
>> > type: seqaij<br>
>><br>
>> > row 0: (0, 1.) (1, 0.)<br>
>><br>
>> > row 1: (0, 0.) (1, 1.)<br>
>><br>
><br>
>> > >> mpirun -n 2 matRARt.exe mpi<br>
>><br>
>> > [0]PETSC ERROR: --------------------- Error Message<br>
>> > ------------------------------<wbr>------------------------------<wbr>--<br>
>><br>
>> > [0]PETSC ERROR: No support for this operation for this object type<br>
>><br>
>> > [0]PETSC ERROR: Matrix of type <mpiaij> does not support RARt<br>
>><br>
</div></div></blockquote></div><br></div></div>