Re: [petsc-users] Slepc eigenvectors not orthonormalized

2016-10-14 Thread Jose E. Roman

> El 14 oct 2016, a las 0:32, Peetz, Darin T  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



Re: [petsc-users] Slepc eigenvectors not orthonormalized

2016-10-13 Thread Barry Smith

  Forwarding to slepc-maint

> On Oct 13, 2016, at 5:32 PM, Peetz, Darin T  wrote:
> 
> 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