I haven’t looked at the lobpcg()
code, but are you sure it’s complaining about your K
and G
matrices?
The LOBPCG algorithm builds up its own subspace basis B as it goes along, and my recollection is that if the implementor is not careful to occasionally re-orthogonalize this basis then it can become numerically ill-conditioned as the algorithm progresses. Maybe the lobpcg()
code is missing this re-orthogonalization check and is running into a problem where B^T B (which it has to invert at some point) is nearly singular.