TREX-CoE / trexio

TREX I/O library
https://trex-coe.github.io/trexio/
BSD 3-Clause "New" or "Revised" License
49 stars 14 forks source link

Introduced phase change #109

Closed scemama closed 1 year ago

scemama commented 1 year ago

Suppose you have a determinant with 3 orbitals : |1 2 3> If you store it in a bitfield, you get the integer 7 (111 in binary). Now, if I have a determinant |1 3 2>, it also gives 7, but there is no way we can get back to |1 3 2>. We will go to |1 2 3>, and the problem is that |1 2 3> = -|1 3 2>. It imposes that the users are aware that they might need to compute a phase factor.

The helper function was modified to automatically compute the phase factor and returns the new exit code TREXIO_PHASE_CHANGE if a change of sign is needed in the coefficient, so that the users can update the CI coefficients accordingly.