[petsc-users] In place access to eigenvectors of EPS

Andrew Spott ansp6066 at colorado.edu
Sat Mar 28 23:02:36 CDT 2015


>What is the use case for this?


Orthogonalization between left and right eigenvectors.  I’ve got two EPS instances, one for the left and one for the right eigenvectors, and I need to orthogonalize them with respect to each other: enforce L^H R = 1.  Copying every vector out of both BVs seems wasteful.  Especially because I don’t really need the EPS to do anything with them after this.




I noticed in the source for EPSGetEigenvector that there is a “permutation” array that might change the order of the vectors in the BV.  Is there a way to get this using the public API?




It appears that I can call “EPSGetEigenvector” to make sure that “EPSComputeVectors” is called, so I get eigenvectors instead of Shur vectors or other things.  But I’m not sure how to get the permutation back.




-Andrew

On Sat, Mar 28, 2015 at 6:03 PM, Jose E. Roman <jroman at dsic.upv.es> wrote:

> El 28/03/2015, a las 21:24, Andrew Spott escribió:
>> Is there a way to get in place access to the eigenvectors in the BV contained by EPS using the public API?
>> 
>> -Andrew
>> 
> You can do EPSGetBV() and then BVGetColumn() for each of the first nconv columns. But this has risks, for instance the BV may contain Schur vectors instead of eigenvectors, or separated real and imaginary parts in case of complex eigenvectors in real arithmetic, an possibly other solver-dependent issues.
> What is the use case for this?
> Jose
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150328/c675d4d3/attachment-0001.html>


More information about the petsc-users mailing list