Based on the petsc4py API here, do you maybe want setFactorSolverType? (Googling that and setFactorSolverPackage, it looks like there may have been an API change at some point.)
# Solver
E = slp.EPS(); E.create()
E.setOperators(-A,B) # Solve dM/dq*x=sigma*N*x (A*x+sigma*B*x=0)
E.setWhichEigenpairs(E.Which.LARGEST_REAL)
E.setDimensions(k) # Find k eigenvalues only
E.setTolerances(ae,ncv) # Set absolute tolerance and number of iterations
E.setProblemType(slp.EPS.ProblemType.PGNHEP) # Specify that A is no hermitian, but M is semi-positive
# Spectral transform
ST = E.getST()
# Krylov subspace
KSP = ST.getKSP()
KSP.setType('preonly')
# Preconditioner
PC = KSP.getPC()
PC.setType('lu')
PC.setFactorSolverType('mumps')
Notice that I am trying to get the eigenvalues wiith the largest real part, not close to a target.
I understand that the petsc default is Krylov-Schur with GMRES inside every subspace, I tried above to move to Krylov-Schur with MUMPS. In in my case A is non Hermitian, B diagonal semi-positive.
The code above produces :
Traceback (most recent call last):
File "xxx", line XX, in <module>
yo.Eigenvalues(a,b)
File "code.py", line 385, in Eigenvalues
E.solve()
File "SLEPc/EPS.pyx", line 1233, in slepc4py.SLEPc.EPS.solve
setFactorSolverPackagepetsc4py.PETSc.Error: error code 76
[0] EPSSolve() at /usr/local/slepc/src/eps/interface/epssolve.c:136
[0] EPSSetUp() at /usr/local/slepc/src/eps/interface/epssetup.c:350
[0] STSetUp() at /usr/local/slepc/src/sys/classes/st/interface/stsolve.c:582
[0] STSetUp_Shift() at /usr/local/slepc/src/sys/classes/st/impls/shift/shift.c:107
[0] KSPSetUp() at /usr/local/petsc/src/ksp/ksp/interface/itfunc.c:408
[0] PCSetUp() at /usr/local/petsc/src/ksp/pc/interface/precon.c:1016
[0] PCSetUp_LU() at /usr/local/petsc/src/ksp/pc/impls/factor/lu/lu.c:133
[0] MatLUFactorNumeric() at /usr/local/petsc/src/mat/interface/matrix.c:3186
[0] MatFactorNumeric_MUMPSpetsc4py.PETSc.Error: error code 76
[0] EPSSolve() at /usr/local/slepc/src/eps/interface/epssolve.c:136
[0] EPSSetUp() at /usr/local/slepc/src/eps/interface/epssetup.c:350
[0] STSetUp() at /usr/local/slepc/src/sys/classes/st/interface/stsolve.c:582
[0] STSetUp_Shift() at /usr/local/slepc/src/sys/classes/st/impls/shift/shift.c:107
[0] KSPSetUp() at /usr/local/petsc/src/ksp/ksp/interface/itfunc.c:408
[0] PCSetUp() at /usr/local/petsc/src/ksp/pc/interface/precon.c:1016
[0] PCSetUp_LU() at /usr/local/petsc/src/ksp/pc/impls/factor/lu/lu.c:133
[0] MatLUFactorNumeric() at /usr/local/petsc/src/mat/interface/matrix.c:3186
[0] MatFactorNumeric_MUMPS() at /usr/local/petsc/src/mat/impls/aij/mpi/mumps/mumps.c:1686
[0] Error in external library
[0] Error reported by MUMPS in numerical factorization phase: INFOG(1)=-9, INFO(2)=4008881() at /usr/local/petsc/src/mat/impls/aij/mpi/mumps/mumps.c:1686
[0] Error in external library
[0] Error reported by MUMPS in numerical factorization phase: INFOG(1)=-9, INFO(2)=4008881