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!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

Reply via email to