[petsc-users] set shift while not setting target

Denis Davydov davydden at gmail.com
Sun Jan 18 11:23:09 CST 2015

> On 18 Jan 2015, at 17:49, Jose E. Roman <jroman at dsic.upv.es> wrote:
> STSetShift() is a remnant of the old interface, before the target was introduced. The intended usage for the application is to use a target (set with EPSSetTarget) in combination with EPS_TARGET_XXX. STSetShift() could be used for the case that the target coincides with an eigenvalue (to avoid solving a singular system).
> When you set the target in shift-and-invert, two things happen: (1) the shift is set to the target and (2) eigenvalue approximations are sorted with respect to the target. The latter may be important for convergence. So it is recommended to set the target, not the shift.
> For STSHIFT, the shift is irrelevant because Krylov subspaces are shift invariant. But non-Krylov solvers may depend on the shift.
> For a GHEP, if you know where your eigenvalues are, use shift-and-invert with a target and EPS_TARGET_XXX.

Thanks for your detailed explanation! 
I will give it a try the way you suggested.

Kind regards,

More information about the petsc-users mailing list