[petsc-users] Problem with least squares commutators(LSC)

Barry Smith bsmith at mcs.anl.gov
Wed Feb 3 22:26:42 CST 2016


  We'd need the full error message to determine what is happening.

  But note that since the lower right block is all 0 any attempt to use a factorization of that inside a preconditioner will fail with zero pivot. 


> On Feb 2, 2016, at 10:40 PM, keguoyi <coyigg at hotmail.com> wrote:
> 
> Dear PETSc users,
> 
> This is Guoyi Ke, a graduate student of Texas Tech University. I have a 2D Navier Stokes problem that has block matrices: J=[F    B^T; B    0]. I use Schur complement preconditioner for block J. The code was set as:
> 
>       PCFieldSplitSetType( pc, PC_COMPOSITE_SCHUR );
>       PCFieldSplitSetSchurFactType(pc, PC_FIELDSPLIT_SCHUR_FACT_LOWER);
>       PCFieldSplitSetSchurPre(pc,PC_FIELDSPLIT_SCHUR_PRE_SELFP,NULL);
> 
> For both velocity block (fieldsplit: 0) and pressure block (fieldsplit: 1) , we set the KSP as KSPPREONLY and PC as PCILU. For this case, it works fine for us. 
> However, in order to use LSC we change the code as:
> 
>       PCFieldSplitSetType( pc, PC_COMPOSITE_SCHUR );
>       PCFieldSplitSetSchurFactType(pc, PC_FIELDSPLIT_SCHUR_FACT_LOWER);
>       PCFieldSplitSetSchurPre(pc,PC_FIELDSPLIT_SCHUR_PRE_SELF,NULL);
> 
> We keep the same setup for velocity block (fieldsplit: 0) as above. For pressure block (fieldsplit: 1), we set the KSP as KSPGMRES and PC as PCLSU. I got the following errors:
> 
> [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
> [0]PETSC ERROR: Object is in wrong state
> [0]PETSC ERROR: Matrix is missing diagonal entry 0
> 
> 
> Any suggestion and help will be highly appreciated. Thank you so much!
> 
> Best,
> Guoyi 



More information about the petsc-users mailing list