[petsc-users] Doubts related MatCreateDense()

Barry Smith bsmith at mcs.anl.gov
Fri Feb 12 02:58:40 CST 2016

> On Feb 12, 2016, at 1:51 AM, Kaushik Kulkarni <kaushikggg at gmail.com> wrote:
> Hi all,
> Could you help me with my doubts:
> Doubt 1: Initially I tried to create a matrix with MatCreateMPIDense(); I received a compilation error stating that no such function existed.

  The name was changed
> Doubt 2: So I continued working with MatCreateDense(). And I set the global size to 10 cross 10. Now when I called the function MatGetLocalSize(A,&localrow,&localcolumn), and ran the code with 2 processes the values returned were:
> The local matrix size for the process 1 is 5 cross 5
> The local matrix size for the process 2 is 5 cross 5
> How can it be possible that process 1 is only dealing with 25 elements and process two is dealing with 25 elements, while the global matrix contains 100 elements.

  The local size for columns is slightly mis-leading. For standard PETSc matrices such as "Dense" each process stores all the entries for its rows of the matrix. The term "local columns" refers to the rows of the vector which one can use to do a matrix vector product with the matrix. See the users manual for more details on the layout of vectors and matrices in PETSc.


> Thanks,
> Kaushik

More information about the petsc-users mailing list