[petsc-users] Help with generalized eigenvalue problem

Jose E. Roman jroman at dsic.upv.es
Wed Jul 8 10:01:26 CDT 2020


In a standard symmetric eigenproblem, a small perturbation of the matrix results in a small perturbation of the eigenvalues. In generalized eigenproblems, especially with singular matrices, I don't think perturbation theory guarantees this in all cases.

What do you mean by small problems? Do you have millions of problems of size 6? In that case you should use EPSLAPACK. It will not factor the matrix (if solved as a non-symmetric problem).

Jose


> El 8 jul 2020, a las 15:55, Aulisa, Eugenio <Eugenio.Aulisa at ttu.edu> escribió:
> 
> Dear Jose,
> 
> Thank you for your answer.
> 
> I tried MLU but it did not help. 
> 
> I also tried to eliminate the null space of B, but I do not know it apriori, 
> and at least to my knowledge of PETSC-SLEPC there is not an explicit way to find it
> but to find all the 0 eigenvectors of B, which again it requires the inverse of B. 
> 
> I am solving similar small problems millions of times, and this works fine most of the time,
> but once in a while it fails with the same LU zero pivot exception.
> 
> One thing I tried yesterday, and it seams to work all the times, 
> is perturbing the diagonal of B of a small factor, += 1.0e-10 ||B||,
> but I do not know how theoretically it sounds with all these indeterminate eigenvalues, 
> maybe you have a clue on this.
> 
> Thanks,
> Eugenio
> 
> 
> 
> Eugenio Aulisa
> 
> Department of Mathematics and Statistics,
> Texas Tech University
> Lubbock TX, 79409-1042 
> room: 226
> http://www.math.ttu.edu/~eaulisa/
> phone: (806) 834-6684
> fax: (806) 742-1112 
> 
> 
> 
> 
> From: Jose E. Roman <jroman at dsic.upv.es>
> Sent: Tuesday, July 7, 2020 11:01 AM
> To: Aulisa, Eugenio <Eugenio.Aulisa at ttu.edu>
> Cc: petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>; Kara, Erdi <Erdi.Kara at ttu.edu>
> Subject: Re: [petsc-users] Help with generalized eigenvalue problem
>  
> I don't know what options you are using, shift-and-invert or not, which, target. Anyway, if A and B have a common null space, then A-sigma*B will always be singular, so the KSP solver will have to deal with a singular system.
> 
> If you pass the nullspace vectors to the EPS solver via https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fslepc.upv.es%2Fdocumentation%2Fcurrent%2Fdocs%2Fmanualpages%2FEPS%2FEPSSetDeflationSpace.html&data=02%7C01%7CEugenio.Aulisa%40ttu.edu%7C5b98b0c29ec246ed6c7908d8228f12bb%7C178a51bf8b2049ffb65556245d5c173c%7C0%7C0%7C637297345179456168&sdata=dP0Hi2ZPRo6rYubPYRK%2FimS0fZKBV9%2BJy7N%2BtXS6b30%3D&reserved=0 then these vectors will also be attached to the KSP solver. 
> 
> Also, since you have MUMPS, try adding
>  -st_pc_factor_mat_solver_type mumps 
> (see section 3.4.1 of the SLEPc users manual). MUMPS should be quite robust with respect to singular linear systems.
> 
> Jose
> 
> 
> > El 7 jul 2020, a las 17:40, Aulisa, Eugenio <Eugenio.Aulisa at ttu.edu> escribió:
> > 
> > Can somebody help me figure it out the solver options for the attached generalized eigenvalue problem?
> > 
> > A x = lambda B x 
> > 
> > where A and B have the same null space, with 5 zero eigenvalues.
> > 
> > The only non indefinite eigenvalue should be 41.1892
> > 
> > The problem is Hermite semi-positive so automatically slepc should purify it, but to be sure I added
> > 
> > EPSSetPurify(eps, PETSC_TRUE);
> > 
> > I guess with my non-solver-options slepc is still trying to do the inverse of the full
> > B matrix with an LU decomposition and gets zero pivot.
> > 
> > This is what I get as a PETSC error Message
> > 
> >  [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
> >    [0]PETSC ERROR: Zero pivot in LU factorization: https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.mcs.anl.gov%2Fpetsc%2Fdocumentation%2Ffaq.html%23zeropivot&data=02%7C01%7CEugenio.Aulisa%40ttu.edu%7C5b98b0c29ec246ed6c7908d8228f12bb%7C178a51bf8b2049ffb65556245d5c173c%7C0%7C0%7C637297345179456168&sdata=5JnAFaw%2B4SsXiMYji4FQFLoTZOpE8r7ggYWSH1Jqti0%3D&reserved=0
> >    [0]PETSC ERROR: Bad LU factorization
> >    [0]PETSC ERROR: See https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.mcs.anl.gov%2Fpetsc%2Fdocumentation%2Ffaq.html&data=02%7C01%7CEugenio.Aulisa%40ttu.edu%7C5b98b0c29ec246ed6c7908d8228f12bb%7C178a51bf8b2049ffb65556245d5c173c%7C0%7C0%7C637297345179456168&sdata=HUax0aUTExvaWCeZFBty%2F7SZf3bRxPq0h3hwnhbDXwE%3D&reserved=0 for trouble shooting.
> >    [0]PETSC ERROR: Petsc Development GIT revision: v3.11.3-2263-gce77f2ed1a  GIT Date: 2019-09-26 13:31:14 -0500
> >    [0]PETSC ERROR: Nitsche_ex4a on a arch-linux2-c-opt named linux-8biu by eaulisa Tue Jul  7 10:17:55 2020
> >    [0]PETSC ERROR: Configure options --with-debugging=0 --with-x=1 COPTFLAGS="-O3 -march=native -mtune=native" CXXOPTFLAGS="-O3 -march=native -mtune=native" FOPTFLAGS="-O3 -march=native -mtune=native" --download-openmpi=1 --download-fblaslapack=1 --download-hdf5=1 --download-metis=1 --download-parmetis=1 --with-shared-libraries=1 --download-blacs=1 --download-scalapack=1 --download-mumps=1 --download-suitesparse
> >    [0]PETSC ERROR: #1 MatLUFactor_SeqDense() line 633 in /home/eaulisa/software/petsc/src/mat/impls/dense/seq/dense.c
> >    [0]PETSC ERROR: #2 MatLUFactorNumeric_SeqDense() line 432 in /home/eaulisa/software/petsc/src/mat/impls/dense/seq/dense.c
> >    [0]PETSC ERROR: #3 MatLUFactorNumeric() line 3056 in /home/eaulisa/software/petsc/src/mat/interface/matrix.c
> >    [0]PETSC ERROR: #4 PCSetUp_LU() line 126 in /home/eaulisa/software/petsc/src/ksp/pc/impls/factor/lu/lu.c
> >    [0]PETSC ERROR: #5 PCSetUp() line 894 in /home/eaulisa/software/petsc/src/ksp/pc/interface/precon.c
> >    [0]PETSC ERROR: #6 KSPSetUp() line 377 in /home/eaulisa/software/petsc/src/ksp/ksp/interface/itfunc.c
> >    [0]PETSC ERROR: #7 STSetUp_Shift() line 119 in /home/eaulisa/software/slepc/src/sys/classes/st/impls/shift/shift.c
> >    [0]PETSC ERROR: #8 STSetUp() line 271 in /home/eaulisa/software/slepc/src/sys/classes/st/interface/stsolve.c
> >    [0]PETSC ERROR: #9 EPSSetUp() line 273 in /home/eaulisa/software/slepc/src/eps/interface/epssetup.c
> >    [0]PETSC ERROR: #10 EPSSolve() line 136 in /home/eaulisa/software/slepc/src/eps/interface/epssolve.c
> > 
> > 
> > 
> > Thanks
> > Eugenio
> > 
> > 
> > 
> > 
> > Eugenio Aulisa
> > 
> > Department of Mathematics and Statistics,
> > Texas Tech University
> > Lubbock TX, 79409-1042 
> > room: 226
> > http://www.math.ttu.edu/~eaulisa/
> > phone: (806) 834-6684
> > fax: (806) 742-1112 
> > 
> > 
> > 
> > <genEigen.cpp>
> 



More information about the petsc-users mailing list