I facing the following issue. I'm trying to use orthogonalize a set of
vectors (all complex) with a non-standard inner product (.i.e. with
BVSetMatrix). Let's call the basis vector to be BV and the matrix to be B.
After certain number of iterations, I'm getting an error "The inner product
is not well defined: nonzero imaginary part". I investigated this further.
What I did was obtain the vec (column) which was throwing the error. Let's
call the vec to be x and its column ID in BV to be j. I obtained x^H*B*x in
two different ways: (1). by first getting y=B*x and then performing
VecDot(x,y, dotXY), and (2) by using BVNormColumn(BV, j, NORM_2, normj).
I'm doing this check even before calling the BVOrthogonalize routine.
In principle, the value from (1) should be the square of the value from
(2). For the iterations where I'm successful to perform the
orthogonalization this check is satisfied. However, for the iteration where
it fails with the above error, the value from (2) is zero. I'm unable to
understand why this is the case.
Bikash S. Kanungo
Computational Materials Physics Group
University of Michigan