[petsc-users] Question about MatCreateShell loca ros/colums

Matthew Knepley knepley at gmail.com
Wed Apr 14 19:54:49 CDT 2021

On Wed, Apr 14, 2021 at 5:56 PM Sam Guo <sam.guo at cd-adapco.com> wrote:

> Dear PETSc dev team,
>    If I want PETSc to use my own parallel partition(instead of PETSc
> "evenly" partition rows), I assume I can provide local rows/columns as
> follows.
> MatCreateShell <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatCreateShell.html#MatCreateShell>(MPI_Comm <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/MPI_Comm.html#MPI_Comm> comm,PetscInt <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscInt.html#PetscInt> m,PetscInt <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscInt.html#PetscInt> n,PetscInt <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscInt.html#PetscInt> M,PetscInt <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscInt.html#PetscInt> N,void *ctx,Mat <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/Mat.html#Mat> *A)
>   If that's the case, what role does local columns play? Memory
> allocation? Should I use n (the global rows) or local rows or PETSC_DECIDE
> in this case?

The only role played by n is to match this matrix with parallel vectors
that you want it to act on. The local sizes should match. For square
matrices, this usually
means you match the local row size.



> Thanks,
> Sam

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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210414/f6907b62/attachment.html>

More information about the petsc-users mailing list