[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