Olivier and Matt, MatPtAP with A=I gives Pt*P, not P*Pt. We have sequential MatRARt and MatMatTransposeMult(), but no support for mpiaij matrices. The problem is that we do not have a way to implement C*Ct without explicitly transpose C in parallel.
We support MatTransposeMatMult (A*Bt) for mpiaij. Can you use this instead? Hong ________________________________ From: petsc-users <petsc-users-boun...@mcs.anl.gov> on behalf of Zhang, Hong via petsc-users <petsc-users@mcs.anl.gov> Sent: Thursday, September 24, 2020 8:56 AM To: Matthew Knepley <knep...@gmail.com>; Mark Adams <mfad...@lbl.gov> Cc: PETSc <petsc-users@mcs.anl.gov> Subject: Re: [petsc-users] Compute C*Ct using MatCreateTranspose for Ct Indeed, we do not have MatCreateTranspose for mpaij matrix. I can adding such support. How soon do you need it? Hong ________________________________ From: petsc-users <petsc-users-boun...@mcs.anl.gov> on behalf of Matthew Knepley <knep...@gmail.com> Sent: Thursday, September 24, 2020 6:12 AM To: Mark Adams <mfad...@lbl.gov> Cc: PETSc <petsc-users@mcs.anl.gov> Subject: Re: [petsc-users] Compute C*Ct using MatCreateTranspose for Ct On Thu, Sep 24, 2020 at 6:48 AM Mark Adams <mfad...@lbl.gov<mailto:mfad...@lbl.gov>> wrote: Is there a way to avoid the explicit transposition of the matrix? It does not look like we have A*B^T for mpiaij as the error message says. I am not finding it in the code. Note, MatMatMult with a transpose shell matrix, I suspect that it does an explicit transpose internally, or it could notice that you have C^T*C and we might have that implemented in-place (I doubt it, but it would be legal and fine to do). We definitely have https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatPtAP.html For now, you can put the identity in for A. It would be nice it we assumed that when A = NULL. Patrick, the implementation strategy is broken for the MatProduct mechanism that was just introduced, so we cannot see which things are implemented in the documentation. How would I go about fixing it? Thanks, Matt Many thanks, Olivier Jamond -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/~knepley/>