[petsc-users] SLEPc - Davidson-type solvers options

Michael Werner michael.werner at dlr.de
Mon Aug 6 07:38:14 CDT 2018


Hello, I want to use a Davidson-type solver (probably jd) to find 
the eigenvalues with the smallest real part, but so far I'm 
strugglung to get them to converge. So I was hoping to get some 
advice on the various  options available for those solvers.

For my test case, I know the smallest eigenvalue is -0.04+0.71i 
(calculated with shift-and-invert and lu preconditioner). However, 
when I try to use jd or gd, the eigensolver never converges. After 
a few iterations, the "first unconverged value" is more or less as 
expected, but it fluctuates around the correct value, and the 
residual never drops below 1e-2. The best results so far were 
achieved with the following set of commandline options:

-st_type precond -st_pc_type asm -st_sub_pc_type ilu 
 -st_sub_pc_factor_levels 2 -st_ksp_max_it 15 -st_ksp_rtol 1e-2 
 -eps_type jd -eps_tol 1e-4 -eps_monitor -eps_nev 5 -eps_target 
 -0.08 -eps_target_real -eps_harmonic_largest

I also tried using more ksp iterations or different 
st_sub_pc_factor_levels. I also tried using eps_smallest_real 
instead of a target value, without any success. So far, I noticed 
that the extraction type had the largest influence. Only for 
eps_harmonic_largest could I observe any eigenvalues with negative 
real part, for all the other extraction types I only got 
eigenvalues with positive real parts.

I also had a look at the available options for the Davidson 
solvers, but I couldn't find a good explanation for 


-- 
____________________________________________________

Deutsches Zentrum für Luft- und Raumfahrt e.V. (DLR) 
Institut für Aerodynamik und Strömungstechnik | Bunsenstr. 10 | 
37073 Göttingen

Michael Werner
Telefon 0551 709-2627 | Telefax 0551 709-2811 | 
Michael.Werner at dlr.de
DLR.de


More information about the petsc-users mailing list