BVSetDefiniteTolerance#
Set the tolerance to be used when checking a definite inner product.
Synopsis#
#include "slepcbv.h"
PetscErrorCode BVSetDefiniteTolerance(BV bv,PetscReal deftol)
Logically Collective
Input Parameters#
bv - basis vectors
deftol - the tolerance
Options Database Key#
-bv_definite_tol
- the tolerance
Notes#
When using a non-standard inner product, see BVSetMatrix(), the solver needs
to compute \(\sqrt{z^*B z}\) for various vectors \(z\). If the inner product has not
been declared indefinite, the value \(z^*B z\) must be positive, but due to
rounding error a tiny value may become negative. A tolerance is used to
detect this situation. Likewise, in complex arithmetic \(z^*B z\) should be
real, and we use the same tolerance to check whether a nonzero imaginary part
can be considered negligible.
This function sets this tolerance, which defaults to 10*PETSC_MACHINE_EPSILON.
The default value should be good for most applications.
See Also#
Level#
advanced
Location#
src/sys/classes/bv/interface/bvbasic.c
Index of all BV routines Table of Contents for all manual pages Index of all manual pages