[petsc-users] SLEPc choosing inner product

Jose E. Roman jroman at dsic.upv.es
Thu Feb 5 12:54:24 CST 2015


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



More information about the petsc-users mailing list