I am struggling with understanding the differences between OpenFermion and Qiskit libraries when it comes to Molecular Data, two body integrals. For example, I am working with the following [('H',[0,0,0]),('H',[0,0,1.595])] Basis: 6-31G. For Qiskit I am using the second_q_ops() function from ElectronicStructureProblem class. While for Openfermion I just load the molecular data and then use the two_body_integrals attribute. There is some difference in the numbers I see for the 2-body integral 4D tensor between the classes. For example, for the creation, annihilation operators [0,0,0,0] Qiskit gives me the following: ('+_0 +_0 -_0 -_0', -0.231966689269309), while OpenFermion the following value 0.46393337853861794. I thought that it might be a factor of -2 (Qiskit values are -2 times smaller than Openfermion), but simply multiplying the whole 4D Qiskit tensor by a factor did not make both 4D tensors equal.

I would like to ask if someone can explain the differences, is it related to convention or ordering of alpha/beta orbitals? Thank you.

  • $\begingroup$ +1 but can you please redo the calculations in both programs after specifying the distance unit for 1.595 (e.g. Bohr radii or Angstroms), and the electron-spin and charge of the molecule? After that, can you please show us the 4D tensor that you get after your make the bond length in Qiskit half the size? Also, please show us all output files. If your post becomes more than 30,000 characters long, then you can upload the output files somewhere else. $\endgroup$ Aug 18, 2023 at 16:30


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.