<div dir="ltr">On Thu, Jul 25, 2013 at 4:38 AM, Toby <span dir="ltr"><<a href="mailto:T.W.Searle@sms.ed.ac.uk" target="_blank">T.W.Searle@sms.ed.ac.uk</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear all,<br>
<br>
I have a generalised matrix problem: A x = lambda B x. My matrix B is diagonal and positive semi-definite. My matrix A is a non-hermitian complex matrix.<br>
<br>
My problem is essentially that when using the SLEPc generalised eigenvalue solver I get the error "zero pivot in LU factorisation". The rest of the below is details about the problem and things I have tried so far.<br>

<br>
<br>
<br>
The matrix will be at its largest about 48000 by 48000, and I want to find the eigenvalues. The eigenvalues I am interested in are ones with the largest real part near 0+0i. Ideally, I want to be able to find them even if they are internal (i.e when there are other eigenvalues with larger positive real part in the spectrum). However, I would be happy if I could get it to work for problems where all eigenvalues have real parts < 0 apart from the eigenvalue of interest.<br>

<br>
At the moment I have used the scipy linalg.eig and sparse.eigs functions. As far as I know, these use LAPACK and ARPACK respectively to do the heavy lifting. I have decided to see if I can achieve better performance through using the SLEPc library. If this is a bad decision, let me know!<br>

<br>
I want to move onto using PETSc with the SLEPc eigenvalue solvers. I have been trying out SLEPc using the examples provided as part of the tutorial. Exercise 7 reads matricies A and B from a file and outputs the solutions. I got this to work fine using the matrices provided. However, if I substitute a smaller sized test version of my problem (6000x6000), I get a variety of errors depending on the command line arguments I supply.<br>

<br>
The main problem I have is the error: "zero pivot in LU factorisation!" when I use the default settings.<br>
<br>
I think this might be related to the fact that B contains rows of zeros, although my understanding of linear algebra is somewhat basic. Is this true?<br>
<br>
I have tried setting the options suggested on the petsc website, -pc_factor_shift_type NONZERO etc but all I get is an additional warning that these options were not used<br></blockquote><div><br></div><div>1) You probably need the correct prefix for this options, e.g. -st_pc_factor_shift_type NONZERO</div>
<div><br></div><div>2) We would like to see the output of -st_ksp_view, but you probably need -st_pc_type jacobi for it to finish</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I assumed that this was a problem with the preconditioner, so I tried setting -eps_target to 0.1 and both with and without specifying -st_type sinvert and shift. Still I get the same error.<br>
<br>
Then I tried -st_pc_type jacobi and st_pc_type bjacobi. jacobi runs, but does not produce any eigenvalues. Block jacobi does an LU factorisation and gives me the same error again.<br>
<br>
The default method is krylov-schur, so I have experimented with the -eps_type gd and -eps_type jd options. Unfortunately these seem to produce nonsense eigenvalues, which do not appear on the spectrum at all when I solve using LAPACK in scipy.<br>

<br>
I know my matrix problem is not singular, because I can solve it using scipy.<br>
<br>
Do you know of any books/guides I might need to read besides the PETSC and SLEPC manuals to understand the behaviour of all these different solvers?<br>
<br>
The output from the case with no command line options is given below.<br>
<br>
Thanks a lot for taking the time to read this!<br>
<br>
Kind Regards,<br>
Toby<br>
<br>
<br>
tobymac:SLEPC toby$ mpiexec ./ex7 -f1 LHS-N7-M40-Re0.0-b0.1-Wi5.0-<u></u>amp0.02.petsc  -f2 RHS-N7-M40-Re0.0-b0.1-Wi5.0-<u></u>amp0.02.petsc -eps_view<br>
<br>
Generalized eigenproblem stored in file.<br>
<br>
[0]PETSC ERROR: --------------------- Error Message ------------------------------<u></u>------<br>
[0]PETSC ERROR: Detected zero pivot in LU factorization:<br>
see <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#ZeroPivot" target="_blank">http://www.mcs.anl.gov/petsc/<u></u>documentation/faq.html#<u></u>ZeroPivot</a>!<br>
[0]PETSC ERROR: Empty row in matrix: row in original ordering 2395 in permuted ordering 3600!<br>
[0]PETSC ERROR: ------------------------------<u></u>------------------------------<u></u>------------<br>
[0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 5, Sat Dec  1 15:10:41 CST 2012<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR: ------------------------------<u></u>------------------------------<u></u>------------<br>
[0]PETSC ERROR: ./ex7 on a arch-darw named tobymac by toby Thu Jul 25 10:20:40 2013<br>
[0]PETSC ERROR: Libraries linked from /opt/local/lib<br>
[0]PETSC ERROR: Configure run at Tue Jul 23 15:11:27 2013<br>
[0]PETSC ERROR: Configure options --prefix=/opt/local --with-valgrind-dir=/opt/local --with-shared-libraries --with-scalar-type=complex --with-clanguage=C++ --with-superlu-dir=/opt/local --with-blacs-dir=/opt/local --with-scalapack-dir=/opt/<u></u>local --with-mumps-dir=/opt/local --with-metis-dir=/opt/local --with-parmetis-dir=/opt/local --COPTFLAGS=-O2 --CXXOPTFLAGS=-O2 --FOPTFLAGS=-O2 --LDFLAGS=-L/opt/local/lib --CFLAGS="-O2 -mtune=native" --CXXFLAGS="-O2 -mtune=native"<br>

[0]PETSC ERROR: ------------------------------<u></u>------------------------------<u></u>------------<br>
[0]PETSC ERROR: MatLUFactorSymbolic_SeqAIJ() line 334 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/mat/<u></u>impls/aij/seq/aijfact.c<br>
[0]PETSC ERROR: MatLUFactorSymbolic() line 2750 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/mat/<u></u>interface/matrix.c<br>
[0]PETSC ERROR: PCSetUp_LU() line 135 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/ksp/pc/<u></u>impls/factor/lu/lu.c<br>
 Number of iterations of the method: 0<br>
 Number of linear iterations of the method: 0<br>
 Number of requested eigenvalues: 1<br>
 Stopping condition: tol=1e-08, maxit=750<br>
 Number of converged approximate eigenpairs: 0<br>
<br>
[0]PETSC ERROR: PCSetUp() line 832 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/ksp/pc/<u></u>interface/precon.c<br>
[0]PETSC ERROR: KSPSetUp() line 278 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/ksp/ksp/<u></u>interface/itfunc.c<br>
[0]PETSC ERROR: PCSetUp_Redundant() line 176 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/ksp/pc/<u></u>impls/redundant/redundant.c<br>
[0]PETSC ERROR: PCSetUp() line 832 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/ksp/pc/<u></u>interface/precon.c<br>
[0]PETSC ERROR: KSPSetUp() line 278 in /opt/local/var/macports/build/<u></u>_Users_toby_MyPorts_<u></u>scienceports_math_petsc/petsc/<u></u>work/petsc-3.3-p5/src/ksp/ksp/<u></u>interface/itfunc.c<br>
[0]PETSC ERROR: STSetUp_Shift() line 94 in src/st/impls/shift/shift.c<br>
[0]PETSC ERROR: STSetUp() line 280 in src/st/interface/stsolve.c<br>
[0]PETSC ERROR: EPSSetUp() line 204 in src/eps/interface/setup.c<br>
[0]PETSC ERROR: EPSSolve() line 109 in src/eps/interface/solve.c<br>
tobymac:SLEPC toby$<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
-- <br>
The University of Edinburgh is a charitable body, registered in<br>
Scotland, with registration number SC005336.<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>