> El 29 mar 2017, a las 9:08, Toon Weyens <[email protected]> escribió: > > I started looking for alternatives from the standard Krylov-Schur method to > solve the generalized eigenvalue problem Ax = kBx in my code. These matrices > have a block-band structure (typically 5, 7 or 9 blocks wide, with block > sizes of the order 20) of size typically 1000 blocks. This eigenvalue problem > results from the minimization of the energy of a perturbed plasma-vacuum > system in order to investigate its stability. So far, I've not taken > advantage of the Hermiticity of the problem. > > For "easier" problems, especially the Generalized Davidson method converges > like lightning, sometimes up to 100 times faster than Krylov-Schur. > > However, for slightly more complicated problems, GD converges to the wrong > eigenpair: There is certainly an eigenpair with an eigenvalue lower than 0 > (i.e. unstable), but the solver never gets below some small, positive value, > to which it wrongly converges.
I would need to know the settings you are using. Are you doing smallest_real? Maybe you can try target_magnitude with harmonic extraction. > > Is it possible to improve this behavior? I tried changing the preconditioner, > but it did not work. > > Might it be possible to use Krylov-Schur until reaching some precision, and > then switching to JD to quickly converge? Yes, you can do this, using EPSSetInitialSpace() in the second solve. But, depending on the settings, this may not buy you much. Jose > > Thanks!
