OK, the difference is whether LU or Cholesky factorization is used. But I would hope that neither one should give incorrect eigenvalues, and when I run with the latter it does!
On Thu, Sep 21, 2017 at 2:05 PM Hong <[email protected]> wrote: > Gregory : > Use '-eps_view' for both runs to check the algorithms being used. > Hong > > Hi all, >> >> I'm using shift-invert with EPS to solve for eigenvalues. I find that if >> I do only >> >> ... >> ierr = EPSGetST(eps,&st);CHKERRQ(ierr); >> ierr = STSetType(st,STSINVERT);CHKERRQ(ierr); >> ... >> >> in my code I get correct eigenvalues. But if I do >> >> ... >> ierr = EPSGetST(eps,&st);CHKERRQ(ierr); >> ierr = STSetType(st,STSINVERT);CHKERRQ(ierr); >> ierr = STGetKSP(st,&ksp);CHKERRQ(ierr); >> ierr = KSPGetPC(ksp,&pc);CHKERRQ(ierr); >> ierr = KSPSetType(ksp,KSPPREONLY);CHKERRQ(ierr); >> ierr = PCSetType(pc,PCCHOLESKY);CHKERRQ(ierr); >> ... >> >> the eigenvalues found by EPS are completely wrong! Somehow I thought I >> was supposed to do the latter, from the examples etc, but I guess that was >> not correct? I attach the full piece of test code and a test matrix. >> >> Best, >> Greg >> > >
