[petsc-users] Slepc eigenvectors not orthonormalized
Jose E. Roman
jroman at dsic.upv.es
Fri Oct 14 06:18:00 CDT 2016
> El 14 oct 2016, a las 0:32, Peetz, Darin T <peetz2 at illinois.edu> escribió:
>
> I've come across an irregularity when extracting the eigenvectors when using the CISS method to solve the eigenvalue problem. I'm solving a generalized hermitian problem, and it looks like the resulting eigenvectors are M-orthogonalized with each other (the M-inner products of different eigenvectors are approximately 0, as expected), but are normalized using the L2-inner product, not the M-inner product. Basically, the matrix V'*M*V (V being a matrix composed of the extracted eigenvectors) is diagonal, but the diagonals are much larger than 1, and the matrix V'*V has non-zero diagonals, but the diagonal elements are exactly equal to 1.
>
> This only happens if I use the CISS method. If I use the Arnoldi method for example, the eigenvectors are normalized as expected. Is there any particular reason for this, or is this an error in the implementation?
>
> Thanks,
> Darin
Thanks for reporting this.
The fix is to add this line:
eps->purify = PETSC_FALSE;
anywhere in function EPSSetUp_CISS() (in file src/eps/impls/ciss/ciss.c).
I will include the fix for future releases.
Jose
More information about the petsc-users
mailing list