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

Emmanuel Ayala juaneah at gmail.com
Tue Feb 18 13:15:57 CST 2020


Ok, thank you!

Kind regards.

El mar., 18 de feb. de 2020 a la(s) 03:17, Jose E. Roman (jroman at dsic.upv.es)
escribió:

>
>
> El 17 feb 2020, a las 19:19, Emmanuel Ayala <juaneah at gmail.com> escribió:
>
> 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?
>
>
> For instance take alpha=1 and beta=-sigma, where sigma is a lower bound of
> the leftmost eigenvalue of B (the most negative one). This assumes that A
> is positive definite.
>
> Jose
>
>
>
> Kind regards.
> Thanks.
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200218/5292506a/attachment.html>


More information about the petsc-users mailing list