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 > > > >
