Jed : > It is only implemented for SeqAIJ, but it should arguably have a default > implementation that performs an explicit transpose and then calls > MatMatMatMult or MatPtAP. >
We can implement P= R^T (we have this for mpi matrices, expensive though) C = R*A*P Hong > Franck Houssen <[email protected]> writes: > > > 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) > > 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 ? > > > > Franck > > > > ----- Mail original ----- > > > >> De: "Dave May" <[email protected]> > >> À: "Franck Houssen" <[email protected]>, "PETSc users list" > >> <[email protected]>, "petsc-dev" <[email protected]> > >> Envoyé: Mercredi 21 Juin 2017 15:11:27 > >> Objet: Re: [petsc-users] How to compute RARt with A and R as distributed > >> (MPI) matrices ? > > > >> You can assemble R^t and then use MatPtAP which supports MPIAIJ > > > >> On Wed, 21 Jun 2017 at 15:00, Franck Houssen < [email protected] > > > >> wrote: > > > >> > How to compute RARt with A and R as distributed (MPI) matrices ? > >> > > > >> > This works with sequential matrices. > >> > >> > The doc say "currently only implemented for pairs of AIJ matrices and > >> > classes > >> > which inherit from AIJ": I supposed that MPIAIJ was someway > inheriting from > >> > AIJ, seems that it doesn't. > >> > > > >> > Is this kind of matrix product possible with distributed matrices in > PETSc > >> > ? > >> > Or is this a known limitation ? > >> > >> > Do I go the wrong way to do that (= should use another method) ? If > yes, > >> > what > >> > is the correct one ? > >> > > > >> > Franck > >> > > > >> > PS: running debian/testing + gcc-6.3 + bitbucket petsc. > >> > > > >> > >> mpirun -n 2 matRARt.exe seq > >> > >> > Mat Object: 1 MPI processes > >> > >> > type: seqaij > >> > >> > row 0: (0, 1.) (1, 0.) > >> > >> > row 1: (0, 0.) (1, 1.) > >> > > > >> > >> mpirun -n 2 matRARt.exe mpi > >> > >> > [0]PETSC ERROR: --------------------- Error Message > >> > -------------------------------------------------------------- > >> > >> > [0]PETSC ERROR: No support for this operation for this object type > >> > >> > [0]PETSC ERROR: Matrix of type <mpiaij> does not support RARt > >> >
