[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