Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug/energy #30

Open
wants to merge 35 commits into
base: main
Choose a base branch
from
Open

Debug/energy #30

wants to merge 35 commits into from

Conversation

Firepanda415
Copy link
Collaborator

@Firepanda415 Firepanda415 commented Dec 11, 2024

Bug Fixes

  1. Fixed the inaccuracy caused by the symmetries in UCCSD ansatz for VQE (class UCCSD)
  2. Fixed the missing bound constraints when MPI backends were used
  3. Fixed the issues related to NLOPT result return
  4. Fixed the discrepancies between vqe/main.cpp and vqe/qflow.cpp
  5. Removed the errors in VERSION.txt
  6. Re-organized certain code for easier future expansion

New Features

  1. Greatly improved the clarity of printouts
  2. Added the necessary information to optimizer callback and result summary
  3. Implemented a smaller version of UCCSD without sacrificing accuracy (class UCCSDmin). It is the default ansatz now
  4. Constructed a new ansatz pool for VQE and ADAPT-VQE, providing higher accuracy in the cost of many more parameters (class Singlet_GSD)
  5. Modified all documentation corresponding to implemented changes
  6. Added new guidance on how to create new pools for VQE and ADAPT-VQE
  7. Added new Hamiltonian files with explanation and experimental data for users to test and valid

Code Correctness

  1. The correctness of the code was verified by computing ground-state energy for three molecules and comparing the estimations with the FCI energy and energies from a published paper. See vqe/example_hamiltonians/README.md for data comparison.
  2. The operators in each ansatz were also cross-checked with operators generated from third-party packages for those three molecules to ensure the excitations were correct.

Remaining Issues

  1. Function follow_fixed_gradient() in vqe/include/vqe_state.hpp usually converges with a bad result. There is no bug there. I think this is specifically for the effective Hamiltonian only used in QFlow. The main branch has the same code. I believe we can update it during the QFlow project in a new branch if necessary, as this is the debug branch, and its work has been done.
  2. ADAPT-VQE does not accept LN_NEWUOA as the optimizer and raises errors related to (solution) dimensions. There is no problem with another optimizer like LN_COBYLA or LD_LBFGS. It is not really some problems in our code, I believe. The example code in vqe/example_hamiltonians/README.md should allow any new user to avoid this issue.
  3. All the ansatzes for VQE and ADAPT-VQE are not normalized, the same as the existing code in the main branch. It does not affect the accuracy due to parameter optimization and it was not reported as an issue. Just leave a note as I have seen some implementation do normalization. I may adjust this when I implement the GCIM algorithm since it does not do parameter optimization.
  4. Nobody uses DUCC indexing scheme and I am not sure how to generate a Hamiltonian file to check. I don't think it is a problem since its index mapping code is isomorphic to XACC/Qiskit code, which never had any bugs.

mxburns2022 and others added 30 commits September 11, 2024 11:57
…(uccsd.cpp and uccsdqis.cpp should gives the same results in the highest level of symmetries, i..e, symm 4 for uccsd, symm 2 for uccsdqis)
…CSD can be enabled with "--origin" flag. The symmetry in Matt's UCCSD was fixed in the previous commit. SInglet GSD is needs further changes
@Firepanda415 Firepanda415 added bug Something isn't working documentation Improvements or additions to documentation labels Dec 11, 2024
@Firepanda415 Firepanda415 requested a review from uuudown December 11, 2024 04:19
@Firepanda415 Firepanda415 self-assigned this Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants