On Thu, Oct 26, 2023 at 8:21 AM Qiyue Lu <qiyue...@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
>

Reply via email to