[petsc-users] ML - zero pivot error

Barry Smith bsmith at mcs.anl.gov
Fri Jun 3 07:26:25 CDT 2011


   It is the direct solver on the the coarse grid that is finding the zero pivot (since the coarse grid problem like all the levels has a null space). 

   You can use the option -mg_coarse_pc_factor_shift_type nonzero (in petsc-3.1 or petsc-dev)    Also keep the KSPSetNullSpace() function you are using.


   Barry

On Jun 3, 2011, at 3:54 AM, Stijn A. M. Vantieghem wrote:

> Dear all,
> 
> I am using PETSc (Fortran interface) to solve a Poisson equation with Neumann boundary conditions. Up till now, I managed to do this with Hypre's BoomerAMG. Now, I am investigating whether I can improve the performance of my code by using ML. However, at execution I receive a zero pivot error; I tried to remove the (constant) null space with KSPSetNullSpace, but this didn't solve my problem. Do you have an idea of what I'm doing wrong? Thanks. 
> 
> The relevant portions of my code are as follows:
> 
> !****************************************************
> call KSPCreate(PETSC_COMM_WORLD,ksp,ierr)
> call KSPSetOperators(ksp,M,M,DIFFERENT_NONZERO_PATTERN,ierr)
> 
> call MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL,sp,ierr)   
> call KSPSetNullSpace(ksp,sp,ierr)
> 
> call KSPGetPC(ksp,pc,ierr)
> call PCSetType(pc,PCML,ierr)
> 
> call KSPSetFromOptions(ksp,ierr)
> ...
> call KSPSetInitialGuessNonzero(ksp,PETSC_TRUE,ierr)
> call KSPSolve(ksp,petsc_rhs,petsc_pressure,ierr)
> !****************************************************
> 
> and the error message is:
> 
> [0]PETSC ERROR: --------------------- Error Message ------------------------------------
> [0]PETSC ERROR: Detected zero pivot in LU factorization
> see http://www.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html#ZeroPivot!
> [0]PETSC ERROR: Zero pivot row 0 value 3.57045e-20 tolerance 1e-12!
> [0]PETSC ERROR: ------------------------------------------------------------------------
> ...
> [0]PETSC ERROR: ------------------------------------------------------------------------
> [0]PETSC ERROR: MatLUFactorNumeric_SeqAIJ() line 574 in src/mat/impls/aij/seq/aijfact.c
> [0]PETSC ERROR: MatLUFactorNumeric() line 2587 in src/mat/interface/matrix.c
> [0]PETSC ERROR: PCSetUp_LU() line 158 in src/ksp/pc/impls/factor/lu/lu.c
> [0]PETSC ERROR: PCSetUp() line 795 in src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSetUp() line 237 in src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: PCSetUp_MG() line 602 in src/ksp/pc/impls/mg/mg.c
> [0]PETSC ERROR: PCSetUp_ML() line 668 in src/ksp/pc/impls/ml/ml.c
> [0]PETSC ERROR: PCSetUp() line 795 in src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSetUp() line 237 in src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: KSPSolve() line 353 in src/ksp/ksp/interface/itfunc.c
> 
> Regards
> Stijn 
> 
> Stijn A.M. Vantieghem
> Earth and Planetary Magnetism
> Institute for Geophysics
> ETH Zürich
> Sonneggstrasse 5 - CH 8092 Zürich
> tel: +41 44 632 39 90
> e-mail: stijn.vantieghem at erdw.ethz.ch
> 
> 
> 
> 



More information about the petsc-users mailing list