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" <dave.mayhe...@gmail.com> > À: "Franck Houssen" <franck.hous...@inria.fr>, "PETSc users list" > <petsc-users@mcs.anl.gov>, "petsc-dev" <petsc-...@mcs.anl.gov> > 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 < franck.hous...@inria.fr > > 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 >