[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