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




Reply via email to