slepc-3.21.1 2024-04-26
Report Typos and Errors

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 <deftol>  - 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*eps, where eps is the machine epsilon. The default value should be good for most applications.

See Also

BVSetMatrix()

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