[petsc-users] oddity in MatTranspose() under petsc4py

Jed Brown jedbrown at mcs.anl.gov
Fri Jan 18 12:17:04 CST 2013


Ethan, can you make a deep copy of the transposed vals array? I would guess
that petsc4py is not not using the transposed view correctly.
On Jan 18, 2013 11:55 AM, "Ethan Coon" <ecoon at lanl.gov> wrote:

> First, apologies for not looking into this more closely, but I wanted to
> make sure I wasn't missing something stupid before I rebuilt petsc-dev
> and petsc4py-dev and started writing PETSc-only versions to see what is
> going on.
>
> See the following odd result:
>
>
> In [1]: from petsc4py import PETSc
>
> In [2]: import numpy as np
>
> In [3]: n = [0,1]
>
> In [4]: vals = np.array([[0,1],[0,0]], 'd')
>
> In [5]: A = PETSc.Mat().createAIJ(2,2)
>
> In [6]: A.assemble()
>
> In [7]: B = A.duplicate()
>
> In [8]: B.setValues(n,n,vals, PETSc.InsertMode.ADD_VALUES)
>
> In [9]: B.assemble()
>
> In [10]: B.transpose(out=A)
> Out[10]: <petsc4py.PETSc.Mat at 0x2afb7e0>
>
> In [11]: A.view()
> Matrix Object: 1 MPI processes
>   type: seqbaij
> row 0: (0, 0)  (1, 0)
> row 1: (0, 1)  (1, 0)
>
> In [12]: vals
> Out[12]:
> array([[ 0.,  1.],
>        [ 0.,  0.]])
>
> In [13]: A.setValues(n,n,-vals.transpose(), PETSc.InsertMode.ADD_VALUES)
>
> In [14]: A.assemble()
>
> In [15]: A.view()
> Matrix Object: 1 MPI processes
>   type: seqbaij
> row 0: (0, 0)  (1, -1)
> row 1: (0, 1)  (1, 0)
>
> where I would have expected A to be all zeros...
>
> This is on petsc4py-3.3 and petsc-3.3-p5, and I know this code worked on
> older versions of petsc4py/petsc.  If I'm not missing something dumb
> I'll look a little closer into whether it is PETSc or petsc4py...
>
> Thanks,
>
> Ethan
>
>
>
> --
> ------------------------------------
> Ethan Coon
> Post-Doctoral Researcher
> Applied Mathematics - T-5
> Los Alamos National Laboratory
> 505-665-8289
>
> http://www.ldeo.columbia.edu/~ecoon/
> ------------------------------------
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130118/0838ccb1/attachment.html>


More information about the petsc-users mailing list