# for H2, 4 qubit, Bravyi-Kitaev, ground state
# ground state, bond length 0,735, optimal parameter 0.11176684,
# energy -1.137306035748924
energy_735 = -1.137306035748924
bl_735_param = -0.11176684
h2_4q_bk_735 = {
    (): -0.09057898608834691,
    ((0, "Z"),): 0.17218393261915552,
    ((0, "Z"), (1, "Z")): 0.17218393261915552,
    ((1, "Z"),): 0.16892753870087912,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04523279994605784,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04523279994605784,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04523279994605784,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04523279994605784,
    ((2, "Z"),): -0.22575349222402458,
    ((0, "Z"), (2, "Z")): 0.12091263261776633,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.22575349222402458,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.1661454325638242,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.1661454325638242,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12091263261776633,
    ((1, "Z"), (3, "Z")): 0.17464343068300456,
}

# bond lenth 0.685, optimal paramter = -0.10201417, energy -1.134945
energy_685 = -1.134945
bl_685_param = -0.10201417
h2_4q_bk_685 = {
    (): -0.019517035573822616,
    ((0, "Z"),): 0.1801534648166572,
    ((0, "Z"), (1, "Z")): 0.18015346481665723,
    ((1, "Z"),): 0.1713122990871502,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04454659697307206,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04454659697307206,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04454659697307206,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04454659697307206,
    ((2, "Z"),): -0.25043654447503944,
    ((0, "Z"), (2, "Z")): 0.12380314966937123,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.2504365444750395,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.1683497466424433,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.1683497466424433,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12380314966937123,
    ((1, "Z"), (3, "Z")): 0.1769865789754283,
}

# bond length 0.785, optimal parameter -0.1223771, energy -1.135377
energy_785 = -1.135377
bl_785_param = -0.1223771
h2_4q_bk_785 = {
    (): -0.150997422486,
    ((0, "Z"),): 0.16467964360906776,
    ((0, "Z"), (1, "Z")): 0.1646796436090678,
    ((1, "Z"),): 0.16654502979386698,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04594040478480172,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04594040478480172,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04594040478480172,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04594040478480172,
    ((2, "Z"),): -0.20363045266292712,
    ((0, "Z"), (2, "Z")): 0.11805411158286502,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.20363045266292717,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16399451636766676,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16399451636766676,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.11805411158286502,
    ((1, "Z"), (3, "Z")): 0.1723678516121639,
}

# bond length 0.585, optimal parameter 0.08458824, energy -1.1103901169148678
energy_585 = -1.1103901169148678
bl_585_param = -0.08458824
h2_4q_bk_585 = {
    (): 0.16409754972386725,
    ((0, "Z"),): 0.19754398187082112,
    ((0, "Z"), (1, "Z")): 0.19754398187082114,
    ((1, "Z"),): 0.1760357223604826,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.043243432117648854,
    ((0, "X"), (1, "Z"), (2, "X")): 0.043243432117648854,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.043243432117648854,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.043243432117648854,
    ((2, "Z"),): -0.3087916169644075,
    ((0, "Z"), (2, "Z")): 0.12964379140330926,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.3087916169644075,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.1728872235209581,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.1728872235209581,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12964379140330926,
    ((1, "Z"), (3, "Z")): 0.18187639717736515,
}

# bond length at 0.635, optimal parameter 0.09295975, energy -1.1266958210460611
energy_635 = -1.1266958210460611
bl_635_param = -0.09295975
h2_4q_bk_635 = {
    (): 0.06444990248007984,
    ((0, "Z"),): 0.18860218866604084,
    ((0, "Z"), (1, "Z")): 0.18860218866604084,
    ((1, "Z"),): 0.1736864009943138,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04388297897985882,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04388297897985882,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04388297897985882,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04388297897985882,
    ((2, "Z"),): -0.27801275723046526,
    ((0, "Z"), (2, "Z")): 0.1267175752168374,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.27801275723046515,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.17060055419669623,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.17060055419669623,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.1267175752168374,
    ((1, "Z"), (3, "Z")): 0.1793985132840809,
}


# bond length at 0.710, original parameter 0.1068033, energy -1.1367503973146553
energy_710 = -1.1367503973146553
bl_710_param = -0.1068033
h2_4q_bk_710 = {
    (): -0.05650925734107626,
    ((0, "Z"),): 0.1761096064964208,
    ((0, "Z"), (1, "Z")): 0.17610960649642066,
    ((1, "Z"),): 0.17012042113485487,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.044886953601776206,
    ((0, "X"), (1, "Z"), (2, "X")): 0.044886953601776206,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.044886953601776206,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.044886953601776206,
    ((2, "Z"),): -0.23775397827085631,
    ((0, "Z"), (2, "Z")): 0.12235431882472635,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.23775397827085637,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16724127242650255,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16724127242650255,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12235431882472635,
    ((1, "Z"), (3, "Z")): 0.1758064126329165,
}

# bond length at 0.745, original parameter 0.11380221, energy -1.1372204119039826
energy_745 = -1.1372204119039826
bl_745_param = -0.11380221
h2_4q_bk_745 = {
    (): -0.10344946538519625,
    ((0, "Z"),): 0.17064636106118172,
    ((0, "Z"), (1, "Z")): 0.17064636106118178,
    ((1, "Z"),): 0.16845046028256666,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04537264393109992,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04537264393109992,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04537264393109992,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04537264393109992,
    ((2, "Z"),): -0.2211348410130768,
    ((0, "Z"), (2, "Z")): 0.12033816552519452,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.22113484101307684,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16571080945629443,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16571080945629443,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12033816552519452,
    ((1, "Z"), (3, "Z")): 0.17418299614411298,
}

# bond length at 0.760, original parameter 0.1169122, energy -1.1367956188437904
energy_760 = -1.1367956188437904
bl_760_param = -0.1169122
h2_4q_bk_760 = {
    (): -0.12199413817496135,
    ((0, "Z"),): 0.16837464502752997,
    ((0, "Z"), (1, "Z")): 0.16837464502752994,
    ((1, "Z"),): 0.16773523208573554,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04558399560751574,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04558399560751574,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04558399560751574,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04558399560751574,
    ((2, "Z"),): -0.21439294733904685,
    ((0, "Z"), (2, "Z")): 0.1194789875742567,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.21439294733904685,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16506298318177243,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16506298318177243,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.1194789875742567,
    ((1, "Z"), (3, "Z")): 0.1734973730423066,
}

# bond length at 0.835, original parameter 0.13345114, energy -1.1303411560165464
energy_835 = -1.1303411560165464
bl_835_param = -0.13345114
h2_4q_bk_835 = {
    (): -0.20262597919807326,
    ((0, "Z"),): 0.15762220608214894,
    ((0, "Z"), (1, "Z")): 0.15762220608214894,
    ((1, "Z"),): 0.16417682849060267,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.046668307815268976,
    ((0, "X"), (1, "Z"), (2, "X")): 0.046668307815268976,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.046668307815268976,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.046668307815268976,
    ((2, "Z"),): -0.18373750348083762,
    ((0, "Z"), (2, "Z")): 0.11523294508260176,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.18373750348083767,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16190125289787072,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16190125289787072,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.11523294508260176,
    ((1, "Z"), (3, "Z")): 0.17015651232234624,
}

# bond length at 0.885, original parameter 0.1454416, energy -1.1230736553980676
energy_885 = -1.1230736553980676
bl_885_param = -0.1454416
h2_4q_bk_885 = {
    (): -0.24697777442677293,
    ((0, "Z"),): 0.15098721442075846,
    ((0, "Z"), (1, "Z")): 0.15098721442075852,
    ((1, "Z"),): 0.16183430003672672,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04741530597207067,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04741530597207067,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04741530597207067,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04741530597207067,
    ((2, "Z"),): -0.16576897448012753,
    ((0, "Z"), (2, "Z")): 0.11245282959389766,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.16576897448012756,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.15986813556596832,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.15986813556596832,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.11245282959389766,
    ((1, "Z"), (3, "Z")): 0.16800541551108625,
}


bond_lengths = (0.735, 0.685, 0.785, 0.585, 0.635, 0.710, 0.745, 0.760, 0.835, 0.885)

energies = (
    energy_735,
    energy_685,
    energy_785,
    energy_585,
    energy_635,
    energy_710,
    energy_745,
    energy_760,
    energy_835,
    energy_885,
)

params = (
    bl_735_param,
    bl_685_param,
    bl_785_param,
    bl_585_param,
    bl_635_param,
    bl_710_param,
    bl_745_param,
    bl_760_param,
    bl_835_param,
    bl_885_param,
)

hams = (
    h2_4q_bk_735,
    h2_4q_bk_685,
    h2_4q_bk_785,
    h2_4q_bk_585,
    h2_4q_bk_635,
    h2_4q_bk_710,
    h2_4q_bk_745,
    h2_4q_bk_760,
    h2_4q_bk_835,
    h2_4q_bk_885,
)


bond_length_hams: dict = {}


for bl, en, par, ham in zip(bond_lengths, energies, params, hams):
    bond_length_hams[bl] = {}
    bond_length_hams[bl]["optimal_parameter"] = par
    bond_length_hams[bl]["energy"] = en
    bond_length_hams[bl]["hamiltonian"] = ham

# for H2, 4 qubit, Bravyi-Kitaev, ground state
# ground state, bond length 0,735, optimal parameter 0.11176684,
# energy -1.137306035748924
energy_735 = -1.137306035748924
bl_735_param = -0.11176684
h2_4q_bk_735 = {
    (): -0.09057898608834691,
    ((0, "Z"),): 0.17218393261915552,
    ((0, "Z"), (1, "Z")): 0.17218393261915552,
    ((1, "Z"),): 0.16892753870087912,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04523279994605784,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04523279994605784,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04523279994605784,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04523279994605784,
    ((2, "Z"),): -0.22575349222402458,
    ((0, "Z"), (2, "Z")): 0.12091263261776633,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.22575349222402458,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.1661454325638242,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.1661454325638242,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12091263261776633,
    ((1, "Z"), (3, "Z")): 0.17464343068300456,
}

# bond lenth 0.685, optimal paramter = -0.10201417, energy -1.134945
energy_685 = -1.134945
bl_685_param = -0.10201417
h2_4q_bk_685 = {
    (): -0.019517035573822616,
    ((0, "Z"),): 0.1801534648166572,
    ((0, "Z"), (1, "Z")): 0.18015346481665723,
    ((1, "Z"),): 0.1713122990871502,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04454659697307206,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04454659697307206,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04454659697307206,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04454659697307206,
    ((2, "Z"),): -0.25043654447503944,
    ((0, "Z"), (2, "Z")): 0.12380314966937123,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.2504365444750395,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.1683497466424433,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.1683497466424433,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12380314966937123,
    ((1, "Z"), (3, "Z")): 0.1769865789754283,
}

# bond length 0.785, optimal parameter -0.1223771, energy -1.135377
energy_785 = -1.135377
bl_785_param = -0.1223771
h2_4q_bk_785 = {
    (): -0.150997422486,
    ((0, "Z"),): 0.16467964360906776,
    ((0, "Z"), (1, "Z")): 0.1646796436090678,
    ((1, "Z"),): 0.16654502979386698,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04594040478480172,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04594040478480172,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04594040478480172,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04594040478480172,
    ((2, "Z"),): -0.20363045266292712,
    ((0, "Z"), (2, "Z")): 0.11805411158286502,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.20363045266292717,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16399451636766676,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16399451636766676,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.11805411158286502,
    ((1, "Z"), (3, "Z")): 0.1723678516121639,
}

# bond length 0.585, optimal parameter 0.08458824, energy -1.1103901169148678
energy_585 = -1.1103901169148678
bl_585_param = -0.08458824
h2_4q_bk_585 = {
    (): 0.16409754972386725,
    ((0, "Z"),): 0.19754398187082112,
    ((0, "Z"), (1, "Z")): 0.19754398187082114,
    ((1, "Z"),): 0.1760357223604826,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.043243432117648854,
    ((0, "X"), (1, "Z"), (2, "X")): 0.043243432117648854,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.043243432117648854,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.043243432117648854,
    ((2, "Z"),): -0.3087916169644075,
    ((0, "Z"), (2, "Z")): 0.12964379140330926,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.3087916169644075,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.1728872235209581,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.1728872235209581,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12964379140330926,
    ((1, "Z"), (3, "Z")): 0.18187639717736515,
}

# bond length at 0.635, optimal parameter 0.09295975, energy -1.1266958210460611
energy_635 = -1.1266958210460611
bl_635_param = -0.09295975
h2_4q_bk_635 = {
    (): 0.06444990248007984,
    ((0, "Z"),): 0.18860218866604084,
    ((0, "Z"), (1, "Z")): 0.18860218866604084,
    ((1, "Z"),): 0.1736864009943138,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04388297897985882,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04388297897985882,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04388297897985882,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04388297897985882,
    ((2, "Z"),): -0.27801275723046526,
    ((0, "Z"), (2, "Z")): 0.1267175752168374,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.27801275723046515,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.17060055419669623,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.17060055419669623,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.1267175752168374,
    ((1, "Z"), (3, "Z")): 0.1793985132840809,
}


# bond length at 0.710, original parameter 0.1068033, energy -1.1367503973146553
energy_710 = -1.1367503973146553
bl_710_param = -0.1068033
h2_4q_bk_710 = {
    (): -0.05650925734107626,
    ((0, "Z"),): 0.1761096064964208,
    ((0, "Z"), (1, "Z")): 0.17610960649642066,
    ((1, "Z"),): 0.17012042113485487,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.044886953601776206,
    ((0, "X"), (1, "Z"), (2, "X")): 0.044886953601776206,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.044886953601776206,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.044886953601776206,
    ((2, "Z"),): -0.23775397827085631,
    ((0, "Z"), (2, "Z")): 0.12235431882472635,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.23775397827085637,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16724127242650255,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16724127242650255,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12235431882472635,
    ((1, "Z"), (3, "Z")): 0.1758064126329165,
}

# bond length at 0.745, original parameter 0.11380221, energy -1.1372204119039826
energy_745 = -1.1372204119039826
bl_745_param = -0.11380221
h2_4q_bk_745 = {
    (): -0.10344946538519625,
    ((0, "Z"),): 0.17064636106118172,
    ((0, "Z"), (1, "Z")): 0.17064636106118178,
    ((1, "Z"),): 0.16845046028256666,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04537264393109992,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04537264393109992,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04537264393109992,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04537264393109992,
    ((2, "Z"),): -0.2211348410130768,
    ((0, "Z"), (2, "Z")): 0.12033816552519452,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.22113484101307684,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16571080945629443,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16571080945629443,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.12033816552519452,
    ((1, "Z"), (3, "Z")): 0.17418299614411298,
}

# bond length at 0.760, original parameter 0.1169122, energy -1.1367956188437904
energy_760 = -1.1367956188437904
bl_760_param = -0.1169122
h2_4q_bk_760 = {
    (): -0.12199413817496135,
    ((0, "Z"),): 0.16837464502752997,
    ((0, "Z"), (1, "Z")): 0.16837464502752994,
    ((1, "Z"),): 0.16773523208573554,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04558399560751574,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04558399560751574,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04558399560751574,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04558399560751574,
    ((2, "Z"),): -0.21439294733904685,
    ((0, "Z"), (2, "Z")): 0.1194789875742567,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.21439294733904685,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16506298318177243,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16506298318177243,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.1194789875742567,
    ((1, "Z"), (3, "Z")): 0.1734973730423066,
}

# bond length at 0.835, original parameter 0.13345114, energy -1.1303411560165464
energy_835 = -1.1303411560165464
bl_835_param = -0.13345114
h2_4q_bk_835 = {
    (): -0.20262597919807326,
    ((0, "Z"),): 0.15762220608214894,
    ((0, "Z"), (1, "Z")): 0.15762220608214894,
    ((1, "Z"),): 0.16417682849060267,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.046668307815268976,
    ((0, "X"), (1, "Z"), (2, "X")): 0.046668307815268976,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.046668307815268976,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.046668307815268976,
    ((2, "Z"),): -0.18373750348083762,
    ((0, "Z"), (2, "Z")): 0.11523294508260176,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.18373750348083767,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.16190125289787072,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.16190125289787072,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.11523294508260176,
    ((1, "Z"), (3, "Z")): 0.17015651232234624,
}

# bond length at 0.885, original parameter 0.1454416, energy -1.1230736553980676
energy_885 = -1.1230736553980676
bl_885_param = -0.1454416
h2_4q_bk_885 = {
    (): -0.24697777442677293,
    ((0, "Z"),): 0.15098721442075846,
    ((0, "Z"), (1, "Z")): 0.15098721442075852,
    ((1, "Z"),): 0.16183430003672672,
    ((0, "Y"), (1, "Z"), (2, "Y"), (3, "Z")): 0.04741530597207067,
    ((0, "X"), (1, "Z"), (2, "X")): 0.04741530597207067,
    ((0, "X"), (1, "Z"), (2, "X"), (3, "Z")): 0.04741530597207067,
    ((0, "Y"), (1, "Z"), (2, "Y")): 0.04741530597207067,
    ((2, "Z"),): -0.16576897448012753,
    ((0, "Z"), (2, "Z")): 0.11245282959389766,
    ((1, "Z"), (2, "Z"), (3, "Z")): -0.16576897448012756,
    ((0, "Z"), (1, "Z"), (2, "Z"), (3, "Z")): 0.15986813556596832,
    ((0, "Z"), (1, "Z"), (2, "Z")): 0.15986813556596832,
    ((0, "Z"), (2, "Z"), (3, "Z")): 0.11245282959389766,
    ((1, "Z"), (3, "Z")): 0.16800541551108625,
}


bond_lengths = (0.735, 0.685, 0.785, 0.585, 0.635, 0.710, 0.745, 0.760, 0.835, 0.885)

energies = (
    energy_735,
    energy_685,
    energy_785,
    energy_585,
    energy_635,
    energy_710,
    energy_745,
    energy_760,
    energy_835,
    energy_885,
)

params = (
    bl_735_param,
    bl_685_param,
    bl_785_param,
    bl_585_param,
    bl_635_param,
    bl_710_param,
    bl_745_param,
    bl_760_param,
    bl_835_param,
    bl_885_param,
)

hams = (
    h2_4q_bk_735,
    h2_4q_bk_685,
    h2_4q_bk_785,
    h2_4q_bk_585,
    h2_4q_bk_635,
    h2_4q_bk_710,
    h2_4q_bk_745,
    h2_4q_bk_760,
    h2_4q_bk_835,
    h2_4q_bk_885,
)


bond_length_hams: dict = {}


for bl, en, par, ham in zip(bond_lengths, energies, params, hams):
    bond_length_hams[bl] = {}
    bond_length_hams[bl]["optimal_parameter"] = par
    bond_length_hams[bl]["energy"] = en
    bond_length_hams[bl]["hamiltonian"] = ham

# for H2, 4 qubit, Bravyi-Kitaev, ground state # ground state, bond length 0,735, optimal parameter 0.11176684, # energy -1.137306035748924 # bond lenth 0.685, optimal paramter = -0.10201417, energy -1.134945 # bond length 0.785, optimal parameter -0.1223771, energy -1.135377 # bond length 0.585, optimal parameter 0.08458824, energy -1.1103901169148678 # bond length at 0.635, optimal parameter 0.09295975, energy -1.1266958210460611 # bond length at 0.710, original parameter 0.1068033, energy -1.1367503973146553 # bond length at 0.745, original parameter 0.11380221, energy -1.1372204119039826 # bond length at 0.760, original parameter 0.1169122, energy -1.1367956188437904 # bond length at 0.835, original parameter 0.13345114, energy -1.1303411560165464 # bond length at 0.885, original parameter 0.1454416, energy -1.1230736553980676