[petsc-dev] MatCreateTranspose semantics
Jeff Hammond
jeff.science at gmail.com
Mon Jun 1 17:52:43 CDT 2020
I am trying to understand how to use a transposed matrix view along the
lines of Numpy (
https://github.com/ParRes/Kernels/blob/master/PYTHON/transpose-numpy.py#L99
).
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatCreateTranspose.html
says
"Creates a new matrix object that behaves like A'"
But later it seems to suggest that this is only true when performance a
matrix-vector product:
"Rather the new matrix object performs the matrix-vector product by using
the MatMultTranspose() on the original matrix"
I got the idea to use this view concept from
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatTranspose.html,
which says:
"Consider using MatCreateTranspose() instead if you only need a matrix that
behaves like the transpose, but don't need the storage to be changed."
When I try to use the transpose view in MatAXPY using this code:
Mat AT;
ierr = MatCreateTranspose(A, &AT); // create transpose view of A
ierr = MatAXPY(B, one, AT, SAME_NONZERO_PATTERN);
I get an error suggesting that I am doing something bad:
[0]PETSC ERROR: --------------------- Error Message
--------------------------------------------------------------
[0]PETSC ERROR: Object is in wrong state
[0]PETSC ERROR: Not for unassembled matrix (Y)
[0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html
for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.13.1, unknown
[0]PETSC ERROR: ./transpose-petsc on a named jrhammon-nuc by jrhammon Mon
Jun 1 15:38:20 2020
[0]PETSC ERROR: Configure options --prefix=/home/jrhammon/PRK/deps/petsc
--with-blaslapack-dir=/opt/intel/inteloneapi/mkl/2021.1-beta06
--with-mpi-dir=/opt/intel/inteloneapi/mpi/2021.1-beta06 --with-cxx=0
--with-fc=0
[0]PETSC ERROR: #1 MatAXPY() line 74 in
/home/jrhammon/PRK/deps/petsc-src/src/mat/utils/axpy.c
[0]PETSC ERROR: #2 main() line 170 in transpose-petsc.c
[0]PETSC ERROR: PETSc Option Table entries:
[0]PETSC ERROR: -i 10
[0]PETSC ERROR: -n 100
[0]PETSC ERROR: ----------------End of Error Message -------send entire
error message to petsc-maint at mcs.anl.gov----------
What do I need to do to use a transpose view properly outside of M*V?
Thanks,
Jeff
--
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200601/a2d2534b/attachment.html>
More information about the petsc-dev
mailing list