[petsc-users] SLEPc: The inner product is not well defined

Emmanuel Ayala juaneah at gmail.com
Mon Feb 17 12:19:07 CST 2020


Thank you very much for the answer.

This error appears when computing the B-norm of a vector x, as
> sqrt(x'*B*x). Probably your B matrix is semi-definite, and due to
> floating-point error the value x'*B*x becomes negative for a certain vector
> x. The code uses a tolerance of 10*PETSC_MACHINE_EPSILON, but it seems the
> rounding errors are larger in your case. Or maybe your B-matrix is
> indefinite, in which case you should solve the problem as non-symmetric (or
> as symmetric-indefinite GHIEP).
>
> Do you get the same problem with the Krylov-Schur solver?
>
>
After check the input matrices, the problem was solved using GHIEP.


> A workaround is to edit the source code and remove the check or increase
> the tolerance, but this may be catastrophic if your B is indefinite. A
> better solution is to reformulate the problem, solving the matrix pair
> (A,C) where C=alpha*A+beta*B is positive definite (note that then the
> eigenvalues become lambda/(beta+alpha*lambda)).
>
>
Ok, there is a rule to choose the values for alpha and beta?

Kind regards.
Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200217/a924889b/attachment.html>


More information about the petsc-users mailing list