Thanks a lot, I will explore that.

On Mon, Jan 19, 2026 at 2:54 PM Matthew Knepley <[email protected]> wrote:

> Note that you can do everything above with options alone. You do not need
> the code.
>
>   Thanks,
>
>      Matt
>
> On Mon, Jan 19, 2026 at 2:35 PM Barry Smith <[email protected]> wrote:
>
>>
>>   Apparently. Just call ISSort() on the IS after forming it.
>>
>> On Jan 19, 2026, at 1:31 PM, neil liu <[email protected]> wrote:
>>
>> Dear Petsc developers and users,
>>
>> I am exploring Schur complement to reuse the inverse of A, for a block
>> matrix [ A B; C D].
>> Here A's size is much bigger than D. Therefore it is desirable to reuse
>> the inverse of A. The code is listed below. It works well for 10k
>> tetrahedra elements on 4 ranks . But it shows some error for a coarse mesh
>> (260 tetrahedra cells) on 4 ranks.
>> Do i have to sort *isNonPort and isPort? *
>> Thanks a lot,
>> Xiaodong
>>
>> *MatCreateSubMatrix(A, isNonPort, isNonPort, MAT_INITIAL_MATRIX, &A11);*
>>
>> *MatCreateSubMatrix(A, isNonPort, isPorts, MAT_INITIAL_MATRIX, &A12);*
>>
>> * MatCreateSubMatrix(A, isPorts, isNonPort, MAT_INITIAL_MATRIX, &A21); *
>>
>> * MatCreateSubMatrix(A, isPorts, isPorts, MAT_INITIAL_MATRIX, &A22);*
>>
>> * Mat S; *
>>
>> * MatCreateSchurComplement(A11, A11, A12, A21, A22, &S); *
>>
>> * MatSchurComplementSetKSP(S, kspA11);*
>>
>> * Mat Sdense; *
>>
>> *MatSchurComplementComputeExplicitOperator(S, &Sdense); *
>>
>> * MatAssemblyBegin(Sdense, MAT_FINAL_ASSEMBLY); *
>>
>> * MatAssemblyEnd(Sdense, MAT_FINAL_ASSEMBLY);*
>> [1]PETSC ERROR: Argument out of range
>> [1]PETSC ERROR: Column entry number 2 (actual column 0) in row 74 is not
>> sorted
>> [1]PETSC ERROR: See 
>> https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!eGEwH40wLcvl22nLXTHwekjljXvdmU7eygoskE54RmzbBZbiVlu_BTk2iVuD8jBoJnMUWOPmjwsUAuxQ6jtp7A$
>>  
>> <https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!az-Ao1BxQdotvJlqia0i_iZ5sCx1AZNlDZwT2d1YUzJ4TE_esLV_bwZ-lyIBrsVlK3JJu36cOohpqoohAStoSQ$>
>>  for
>> trouble shooting.
>> [1]PETSC ERROR: PETSc Release Version 3.23.3, May 30, 2025
>> [1]PETSC ERROR: ./app with 4 MPI process(es) and PETSC_ARCH
>> arch-linux-c-debug
>> [1]PETSC ERROR: Configure options: -with-cc=gcc --with-fc=gfortran
>> --with-cxx=g++ --download-fblaslapack --download-mpich
>> --with-scalar-type=complex --with-debugging=yes --download-parmetis
>> --download-metis --download-hdf5 --download-scalapack --download-mumps -
>> [1]PETSC ERROR: #1 MatCreateSeqAIJWithArrays() at
>> /Documents/petsc-3.23.3/src/mat/impls/aij/seq/aij.c:5275
>> [1]PETSC ERROR: #2 MatMPIAIJGetLocalMat() at
>> /Documents/petsc-3.23.3/src/mat/impls/aij/mpi/mpiaij.c:5246
>> [1]PETSC ERROR: #3 MatConvert_MPIAIJ_MPIDense() at
>> /Documents/petsc-3.23.3/src/mat/impls/dense/mpi/mpidense.c:1393
>> [1]PETSC ERROR: #4 MatConvert() at
>> /Documents/petsc-3.23.3/src/mat/interface/matrix.c:4485
>> [1]PETSC ERROR: #5 MatSchurComplementComputeExplicitOperator() at
>> /Documents/petsc-3.23.3/src/ksp/ksp/utils/schurm/schurm.c:518
>>
>>
>>
>>
>>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
> https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!eGEwH40wLcvl22nLXTHwekjljXvdmU7eygoskE54RmzbBZbiVlu_BTk2iVuD8jBoJnMUWOPmjwsUAuyuoAxY_g$
>  
> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!eGEwH40wLcvl22nLXTHwekjljXvdmU7eygoskE54RmzbBZbiVlu_BTk2iVuD8jBoJnMUWOPmjwsUAuxhljRJnw$
>  >
>

Reply via email to