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.
