[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