[petsc-users] alternative for MatCreateSeqAIJWithArrays

Junchao Zhang junchao.zhang at gmail.com
Thu Oct 26 09:08:50 CDT 2023


On Thu, Oct 26, 2023 at 8:21 AM Qiyue Lu <qiyuelu1 at gmail.com> wrote:

> Hello,
> I am trying to incorporate PETSc as a linear solver to compute Ax=b in my
> code. Currently, the sequential version works.
> 1) I have the global matrix A in CSR format and they are stored in three
> 1-dimensional arrays: row_ptr[ ], col_idx[ ], values[ ], and I am using
> MatCreateSeqAIJWithArrays to get the PETSc format matrix. This works.
> 2) I am trying to use multicores, and when I use "srun -n 6", I got the
> error *Comm must be of size 1* from the MatCreateSeqAIJWithArrays. Saying
> I cannot use SEQ function in a parallel context.
> 3) I don't think MatCreateMPIAIJWithArrays and
> MatMPIAIJSetPreallocationCSR are good options for me, since I already have
> the global matrix as a whole.
>
> I wonder, from the global CSR format data, how can I reach the PETSc
> format matrix for parallel KSP computation. Are the MatSetValue,
> MatSetValues what I need?
>
Yes, MatSetValues on each row.   Your matrix data is originally on one
process, which is not efficient.  You could try to distribute it at the
beginning.


>
> Thanks,
> Qiyue Lu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231026/ad7e69db/attachment.html>


More information about the petsc-users mailing list