OpenFermion-PySCF icon indicating copy to clipboard operation
OpenFermion-PySCF copied to clipboard

Inconsistency in get_molecular_hamiltonian()

Open mafaldaramoa opened this issue 2 years ago • 2 comments

Hello,

I'm using the get_molecular_hamiltonian() method for H4, but the behavior is not being consistent from one execution to the next.

My application is VQE. The problem is that I want to store the optimized parameters, but not the Hamiltonian. However, when I evaluate the energy with the supposedly optimized parameters (obtained in a previous execution), the value is often suboptimal. I can't reproduce the ground state, because the parameters that should define it do not minimize the energy calculated with the Hamiltonian I obtain after I recreate the molecule.

Versions: pyscf 2.2.0, openfermion 1.5.1, openfermionpyscf 0.5

A very simple example of the variations in the Hamiltonian:

from openfermion import MolecularData
from openfermionpyscf import run_pyscf

r = 1.5
geometry = [('H', (0,0,0)), ('H', (0,0,r)), ('H', (0,0,2*r)), ('H', (0,0,3*r))]
basis = 'sto-3g'
multiplicity = 1
charge = 0
h4 = MolecularData(geometry,basis,multiplicity,charge,description='H4')
h4 = run_pyscf(h4,run_fci = True,run_ccsd = True)
print(h4.get_molecular_hamiltonian())

I won't post the full output as it's unnecessary, but I leave the last 10 lines for two different executions of the code above:

((7, 1), (6, 1), (6, 0), (3, 0)) 0.03730971574012655
((7, 1), (6, 1), (6, 0), (7, 0)) 0.22562069773706908
((7, 1), (7, 1), (1, 0), (1, 0)) 0.05498004656600459
((7, 1), (7, 1), (1, 0), (5, 0)) -0.0177711366810768
((7, 1), (7, 1), (3, 0), (3, 0)) 0.0588973786630837
((7, 1), (7, 1), (3, 0), (7, 0)) 0.03730971574012656
((7, 1), (7, 1), (5, 0), (1, 0)) -0.017771136681076806
((7, 1), (7, 1), (5, 0), (5, 0)) 0.08469509925466397
((7, 1), (7, 1), (7, 0), (3, 0)) 0.03730971574012655
((7, 1), (7, 1), (7, 0), (7, 0)) 0.22562069773706908
((7, 1), (6, 1), (6, 0), (3, 0)) -0.03730971574012662
((7, 1), (6, 1), (6, 0), (7, 0)) 0.22562069773706936
((7, 1), (7, 1), (1, 0), (1, 0)) 0.0549800465660047
((7, 1), (7, 1), (1, 0), (5, 0)) -0.017771136681076806
((7, 1), (7, 1), (3, 0), (3, 0)) 0.05889737866308378
((7, 1), (7, 1), (3, 0), (7, 0)) -0.037309715740126585
((7, 1), (7, 1), (5, 0), (1, 0)) -0.017771136681076813
((7, 1), (7, 1), (5, 0), (5, 0)) 0.08469509925466404
((7, 1), (7, 1), (7, 0), (3, 0)) -0.03730971574012662
((7, 1), (7, 1), (7, 0), (7, 0)) 0.22562069773706936

mafaldaramoa avatar May 08 '23 18:05 mafaldaramoa

getting the above error in 2024

ochapman-dphil avatar Aug 24 '24 15:08 ochapman-dphil

@ochapman-dphil I suggest you take a look at this issue (the PySCF repository is significantly more active): https://github.com/pyscf/pyscf/issues/1935

mafaldaramoa avatar Sep 02 '24 19:09 mafaldaramoa