[petsc-users] question on PCLSC with matrix blocks of type MATNEST

Hana Honnerová hhornik at kma.zcu.cz
Thu Feb 8 04:45:41 CST 2024


Hi all,

I am trying to solve linear systems arising from isogeometric 
discretization (similar to FEM) of the Navier-Stokes equations in 
parallel using PETSc. The linear systems are of saddle-point type, so I 
would like to use the PCFIELDSPLIT preconditioner with the 
-pc_fieldsplit_detect_saddle_point option, Schur complement 
factorization and the LSC Schur complement preconditioner. I do not 
provide any user-defined operators for PCLSC in my codes (at least for 
now).

I store the matrix as a MATNEST consisting of 4 blocks (F for 
velocity-velocity part, Bt for velocity-pressure part, B for 
pressure-velocity part and NULL for pressure-pressure part). It is also 
convenient for me to store the blocks F, Bt and B as another MATNEST 
consisting of blocks corresponding to individual velocity components.


However, in this setting, I get the following error message:

/[0]PETSC ERROR: Petsc has generated inconsistent data
[0]PETSC ERROR: Unspecified symbolic phase for product AB with A nest, B 
nest. Call MatProductSetFromOptions() first
[0]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.20.4, unknown
[0]PETSC ERROR: 
/home/hhornik/gismo/build-petsc-mpi/RelWithDebInfo/bin/gsINSSolverPETScTest 
on a arch-debug named ThinkPad-T14 by hhornik Thu Feb  8 11:04:17 2024
[0]PETSC ERROR: Configure options PETSC_ARCH=arch-debug 
--with-debugging=1 --download-mumps --download-scalapack
[0]PETSC ERROR: #1 MatProductSymbolic() at 
/home/hhornik/Software/PETSc/src/mat/interface/matproduct.c:807
[0]PETSC ERROR: #2 MatProduct_Private() at 
/home/hhornik/Software/PETSc/src/mat/interface/matrix.c:10027
[0]PETSC ERROR: #3 MatMatMult() at 
/home/hhornik/Software/PETSc/src/mat/interface/matrix.c:10103
[0]PETSC ERROR: #4 PCSetUp_LSC() at 
/home/hhornik/Software/PETSc/src/ksp/pc/impls/lsc/lsc.c:79
[0]PETSC ERROR: #5 PCSetUp() at 
/home/hhornik/Software/PETSc/src/ksp/pc/interface/precon.c:1080
[0]PETSC ERROR: #6 KSPSetUp() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/interface/itfunc.c:415
[0]PETSC ERROR: #7 KSPSolve_Private() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/interface/itfunc.c:832
[0]PETSC ERROR: #8 KSPSolve() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/interface/itfunc.c:1079
[0]PETSC ERROR: #9 PCApply_FieldSplit_Schur() at 
/home/hhornik/Software/PETSc/src/ksp/pc/impls/fieldsplit/fieldsplit.c:1165
[0]PETSC ERROR: #10 PCApply() at 
/home/hhornik/Software/PETSc/src/ksp/pc/interface/precon.c:498
[0]PETSC ERROR: #11 KSP_PCApply() at 
/home/hhornik/Software/PETSc/include/petsc/private/kspimpl.h:383
[0]PETSC ERROR: #12 KSPFGMRESCycle() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/impls/gmres/fgmres/fgmres.c:123
[0]PETSC ERROR: #13 KSPSolve_FGMRES() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/impls/gmres/fgmres/fgmres.c:235
[0]PETSC ERROR: #14 KSPSolve_Private() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/interface/itfunc.c:906
[0]PETSC ERROR: #15 KSPSolve() at 
/home/hhornik/Software/PETSc/src/ksp/ksp/interface/itfunc.c:1079
[0]PETSC ERROR: #16 applySolver() at 
/home/hhornik/gismo/optional/gsIncompressibleFlow/src/gsINSSolver.hpp:531/

/
/I could not find any solution for this so far. My question is: Is it 
possible to use the LSC preconditioner in such case, where the matrix 
blocks are of type MATNEST? And if so, how?

Thank you,
Hana Honnerova
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240208/d9fbc941/attachment.html>


More information about the petsc-users mailing list