> El 7 ago 2018, a las 12:01, Michael Werner <[email protected]> escribió:
> 
> Thank you for your reply and your explanations, I'll try it with a higher ksp 
> tolerance. I chose this low value, because in the SLEPc manual it is 
> mentioned that the Davidson solvers often work better with lower tolerances 
> than with higher tolerances.
> 
> Is there also a way to improve convergence for the gd solver? As far as I 
> know it doesn't use a ksp , so the only way I can think of to improve 
> convergence would be using a higher quality preconditioner, right?

Yes, but "not too good". For instance an exact LU decomposition as a 
preconditioner may lead to stagnation in GD.

Jose


> 
> Kind regards,
> Michael
> 
> Jose E. Roman writes:
> 
>>> El 6 ago 2018, a las 14:44, Michael Werner <[email protected]> escribió:
>>> Michael Werner writes:
>>>> 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 
>>> Sorry, I didn't mean to send it already. What I wanted to say:
>>> I also had a look at the available options for the Davidson solvers, but I 
>>> couldn't find a good explanation for many of the additional options. Is 
>>> there any recommendation to chose -eps_mpd or -eps_jd_minv? And can 
>>> -eps_jd_plusk be used for GNHEP-type problems? I already had a look at the 
>>> paper of E. Romero and J. E. Roman concerning the implementation of the 
>>> Davidson-type solvers in SLEPc, but it didn't answer all my questions.
>>> Kind regards,
>>> Michael
>> 
>> You may need to enforce more accuracy on the KSP. Try replacing
>> -st_ksp_max_it 15 -st_ksp_rtol 1e-2 by
>> -st_ksp_rtol 1e-5
>> 
>> Normally, you don't need to set the -eps_mpd parameter, except if many 
>> eigenvalues (nev) are requested. The parameter jd_minv controls how the 
>> restart is done, keeping more or less information from previous restarts - 
>> it may affect convergece, but not too much. And yes, jd_plusk can be used 
>> for GNHEP problems.
>> 
>> Jose

Reply via email to