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 >