<div dir="ltr">First, you can not mix communicators in PETSc calls in general (ever?), but this error looks like you might be asking for a row from the matrix that does not exist.<div>You should start with a PETSc example code. Test it and modify it to suit your needs.</div><div><br></div><div>Good luck,</div><div>Mark</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Jul 25, 2025 at 9:31 AM Alexis SALZMAN <<a href="mailto:alexis.salzman@ec-nantes.fr">alexis.salzman@ec-nantes.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
As I am relatively new to Petsc, I may have misunderstood how to use the <br>
MatCreateSubMatricesMPI function. The attached code is tuned for three <br>
processes and extracts one matrix for each colour of a subcommunicator <br>
that has been created using the MPI_Comm_split function from an MPIAij <br>
matrix. The following error message appears when the code is set to its <br>
default configuration (i.e. when a rectangular matrix is extracted with <br>
more rows than columns for colour 0):<br>
<br>
[0]PETSC ERROR: --------------------- Error Message <br>
--------------------------------------------------------------<br>
[0]PETSC ERROR: Argument out of range<br>
[0]PETSC ERROR: Column too large: col 4 max 3<br>
[0]PETSC ERROR: See <a href="https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!ZqH097BZ0G0O3WI7RWrwIKFNpyk0czSWEqfusAeTlgEygAffwpgBUzsLw1TIoGkjZ3mYG-NRQxxFoxU4y8EyY0ofiz9I43Qwe0w$" rel="noreferrer" target="_blank">https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!ZqH097BZ0G0O3WI7RWrwIKFNpyk0czSWEqfusAeTlgEygAffwpgBUzsLw1TIoGkjZ3mYG-NRQxxFoxU4y8EyY0ofiz9I43Qwe0w$</a> for trouble shooting.<br>
[0]PETSC ERROR: Petsc Release Version 3.22.2, unknown<br>
<br>
... petsc git hash 2a89477b25f compiled on a dell i9 computer with Gcc <br>
14.3, mkl 2025.2, .....<br>
[0]PETSC ERROR: #1 MatSetValues_SeqAIJ() at <br>
...petsc/src/mat/impls/aij/seq/aij.c:426<br>
[0]PETSC ERROR: #2 MatSetValues() at <br>
...petsc/src/mat/interface/matrix.c:1543<br>
[0]PETSC ERROR: #3 MatSetSeqMats_MPIAIJ() at <br>
.../petsc/src/mat/impls/aij/mpi/mpiov.c:2965<br>
[0]PETSC ERROR: #4 MatCreateSubMatricesMPI_MPIXAIJ() at <br>
.../petsc/src/mat/impls/aij/mpi/mpiov.c:3163<br>
[0]PETSC ERROR: #5 MatCreateSubMatricesMPI_MPIAIJ() at <br>
.../petsc/src/mat/impls/aij/mpi/mpiov.c:3196<br>
[0]PETSC ERROR: #6 MatCreateSubMatricesMPI() at <br>
.../petsc/src/mat/interface/matrix.c:7293<br>
[0]PETSC ERROR: #7 main() at sub.c:169<br>
<br>
When the '-ok' option is selected, the code extracts a square matrix for <br>
colour 0, which runs smoothly in this case. Selecting the '-trans' <br>
option swaps the row and column selection indices, providing a <br>
transposed submatrix smoothly. For colour 1, which uses only one process <br>
and is therefore sequential, rectangular extraction is OK regardless of <br>
the shape.<br>
<br>
Is this dependency on the shape expected? Have I missed an important <br>
tuning step somewhere?<br>
<br>
Thank you in advance for any clarification.<br>
<br>
Regards<br>
<br>
A.S.<br>
<br>
P.S.: I'm sorry, but as I'm leaving my office for the following weeks <br>
this evening, I won't be very responsive during this period.<br>
<br>
<br>
</blockquote></div>