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

keguoyi coyigg at hotmail.com
Tue Feb 2 22:40:54 CST 2016


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 



 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160203/5795f8bc/attachment.html>


More information about the petsc-users mailing list