El 05/02/2015, a las 19:45, Andrew Spott escribió:

> If I have some inner matrix upon which I want the eigensolver context to 
> check orthogonality and norm, how do I set that?
> 
> Is it:
> 
>     BV bv;
>     EPSGetBV( e, &bv );
>     BVSetMatrix( bv, InnerProductMatrix, PETSC_FALSE );
> 
> This doesn’t appear to be changing the norm that is being used.  Is the norm 
> used for the eigensolver context when normalizing the eigenvectors always 
> just the 2norm?
> 
> -Andrew
> 

In normal usage, the user should not mess with the BV object.
If you set the EPS problem type to GHEP then the solver (at least the default 
one) will use B-innerproducts so that eigenvectors with satisfy the 
B-orthogonality condition. Also, in this case EPS should provide eigenvectors 
with unit B-norm.

So InnerProductMatrix should be the B matrix of your problem Ax=\lambda Bx. Is 
this what you need to do?

If you want to check orthogonality a posteriori, call SlepcCheckOrthogonality 
with the B matrix.
Jose

Reply via email to