[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