[petsc-dev] What is the difference between shift and target in SLEPc ?

Franck Houssen franck.houssen at inria.fr
Mon Sep 25 08:37:44 CDT 2017


OK, thanks, this is helpful.

If I got you correctly: beforehand, there is no way to know exactly what the eigen values are. If it turns out that an eigen value makes A-sigma*I or A-sigma*B singular, then the solve may break. If so, afterwards, it's possible to change slightly the shift to avoid solve break down (but there is no way to know that beforehand).

Franck

----- Mail original -----
> De: "Jose E. Roman" <jroman at dsic.upv.es>
> À: "Franck Houssen" <franck.houssen at inria.fr>
> Cc: "For users of the development version of PETSc" <petsc-dev at mcs.anl.gov>
> Envoyé: Lundi 25 Septembre 2017 14:50:48
> Objet: Re: [petsc-dev] What is the difference between shift and target in SLEPc ?
> 
> 
> > El 25 sept 2017, a las 13:21, Franck Houssen <franck.houssen at inria.fr>
> > escribió:
> > 
> > What is the difference between shift and target in SLEPc ? Shift
> > (STSetShift) is clear to me, but, target (EPSSetTarget) is not.
> > Can somebody give an example where one want/need to have a target which
> > would be different from the shift ?
> > 
> > Franck
> 
> In shift-and-invert the shift is equal to the target by default. The target
> is what you use to indicate where you want the eigenvalues to be sought (it
> can be used without shift-and-invert). Normal usage is having both values
> equal. If the target is exactly equal to an eigenvalue, then you may want to
> perturb the shift (change it to a slightly different value) in order to
> avoid a singular matrix A-sigma*I in the linear solves. (Some solvers such
> as MUMPS do not have problems with singular matrices, so this is not
> necessary in that case).
> 
> Jose
> 
> 


More information about the petsc-dev mailing list