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
