Example 1: Qiskit VQE calculation on water

In this example, we will demonstrate how to use qc2 in conjunction with Qiskit-Nature for conducting a simple VQE run on water molecule. We utilize the VQE class as implemented in qc2’s algorithms package along with Qiskit Estimator primitive to calculate the exact expectation values using StateVector.

Import required packages

[1]:
# ASE molecule object
from ase.build import molecule

# Qiskit-related packages
from qiskit_algorithms.optimizers import SLSQP
from qiskit.primitives import Estimator

# ignore package import warnings
import warnings
warnings.filterwarnings('ignore')

# qc2 packages
from qc2.data import qc2Data
from qc2.ase import PySCF
from qc2.algorithms.utils import ActiveSpace
from qc2.algorithms.qiskit import VQE

Instantiate qc2Data class and run qc2-ASE calculator

[2]:
# set Atoms object
mol = molecule('H2O')

# instantiate qc2Data class
qc2data = qc2Data(
    molecule=mol,
    filename='h2o.fcidump',
    schema='fcidump'
)

# specify the qchem calculator
qc2data.molecule.calc = PySCF(method='scf.RHF', basis='sto-3g')

# run calculation and save qchem data in the hdf5 file
qc2data.run()
* Reference energy (Hartree): -74.9644048239943
* Saving qchem data in h2o.fcidump

This generates a h2o.fcidump file containing all relevant qchem data according to FCIDump data format. To check the its content, run the following command in your shell:

[3]:
!cat h2o.fcidump
 &FCI NORB=   7,NELEC=10,MS2=0,
  ORBSYM=1,1,1,1,1,1,1,
  ISYM=1,
 &END
 4.744698428255592    1    1    1    1
 -0.4173800898849752    1    1    2    1
 1.005211918627975    1    1    2    2
 0.7971148584938965    1    1    3    3
 -0.1830679567998194    1    1    4    1
 0.1307548586916885    1    1    4    2
 0.9947114361358266    1    1    4    4
 1.115338088402927    1    1    5    5
 -0.2346877760095918    1    1    6    1
 0.3054358577503106    1    1    6    2
 4.849365429112798e-15    1    1    6    3
 -0.2236262384530495    1    1    6    4
 0.8020591161419615    1    1    6    6
 3.001597269643609e-15    1    1    7    1
 -3.79570366054821e-15    1    1    7    2
 0.3627647940282153    1    1    7    3
 3.406870408020704e-15    1    1    7    4
 0.865905577454096    1    1    7    7
 -0.4173800898849752    2    1    1    1
 0.05834680472960329    2    1    2    1
 -0.01312418976546786    2    1    2    2
 -0.004422553508655442    2    1    3    3
 0.0225570184748541    2    1    4    1
 -0.009156616358056119    2    1    4    2
 -0.01338768068157959    2    1    4    4
 -0.01172118955502111    2    1    5    5
 0.03533880821525183    2    1    6    1
 -0.006584282554693888    2    1    6    2
 0.002357929587235088    2    1    6    4
 -0.007021043708700192    2    1    6    6
 -0.007453552241065682    2    1    7    3
 -0.009328489006372976    2    1    7    7
 1.005211918627975    2    2    1    1
 -0.01312418976546791    2    2    2    1
 0.7274142267697928    2    2    2    2
 0.6429787755935467    2    2    3    3
 -0.01581145753791582    2    2    4    1
 -0.001937507883311278    2    2    4    2
 0.6744466538693478    2    2    4    4
 0.7476529642842836    2    2    5    5
 -0.0008116642009734926    2    2    6    1
 0.1423338611984036    2    2    6    2
 2.060505654294295e-15    2    2    6    3
 -0.09754893393611025    2    2    6    4
 0.6130641206798808    2    2    6    6
 -1.705032561656325e-15    2    2    7    2
 0.1398649168466556    2    2    7    3
 1.31329818365512e-15    2    2    7    4
 0.6228599325576134    2    2    7    7
 0.0109663838119732    3    1    3    1
 0.01768533985739107    3    1    3    2
 0.003390295389880111    3    1    4    3
 0.003128874185460554    3    1    6    3
 0.01522083247995657    3    1    7    1
 0.01394178936836742    3    1    7    2
 0.009556726148861704    3    1    7    4
 0.009063549750067236    3    1    7    6
 0.01768533985739108    3    2    3    1
 0.1434022388961857    3    2    3    2
 -0.02065313082769067    3    2    4    3
 -0.0396681936102178    3    2    6    3
 2.390638788002052e-15    3    2    6    6
 0.02295772851133174    3    2    7    1
 0.04133626522915177    3    2    7    2
 0.07706053589022074    3    2    7    4
 0.09758762344445403    3    2    7    6
 -2.332089881670515e-15    3    2    7    7
 0.7971148584938966    3    3    1    1
 -0.004422553508655418    3    3    2    1
 0.6429787755935468    3    3    2    2
 0.6300490242657308    3    3    3    3
 -0.006421689899582046    3    3    4    1
 -0.006680137095363951    3    3    4    2
 0.5959678274707184    3    3    4    4
 0.6268924370427446    3    3    5    5
 0.0002643524882726576    3    3    6    1
 0.07534780032194555    3    3    6    2
 -0.04373992069248159    3    3    6    4
 0.5701014568339132    3    3    6    6
 -1.011366457750627e-15    3    3    7    2
 0.09015588138839585    3    3    7    3
 0.6085814834244394    3    3    7    7
 -0.1830679567998193    4    1    1    1
 0.02255701847485409    4    1    2    1
 -0.0158114575379158    4    1    2    2
 -0.006421689899582058    4    1    3    3
 0.02754473282303477    4    1    4    1
 0.01880674307530224    4    1    4    2
 0.01114155094337524    4    1    4    4
 -0.005107626464150599    4    1    5    5
 0.0003125904042156436    4    1    6    1
 -0.01865732304495988    4    1    6    2
 0.00214862489527982    4    1    6    4
 -0.0209623590556697    4    1    6    6
 0.0007722856267565661    4    1    7    3
 -0.004158409575623874    4    1    7    7
 0.1307548586916884    4    2    1    1
 -0.00915661635805611    4    2    2    1
 -0.00193750788331127    4    2    2    2
 -0.006680137095364011    4    2    3    3
 0.01880674307530224    4    2    4    1
 0.1246436972245292    4    2    4    2
 0.1040484405315457    4    2    4    4
 0.0700769106683265    4    2    5    5
 -0.02043036203681521    4    2    6    1
 -0.02153677097332159    4    2    6    2
 -0.03340173017582129    4    2    6    4
 -0.05776037337336463    4    2    6    6
 0.07678080123189156    4    2    7    3
 1.174066505029759e-15    4    2    7    6
 0.01412779594662342    4    2    7    7
 0.00339029538988011    4    3    3    1
 -0.02065313082769067    4    3    3    2
 0.04785847085727147    4    3    4    3
 0.02928096801404865    4    3    6    3
 -1.124458581230638e-15    4    3    6    6
 0.004865900400129327    4    3    7    1
 0.03404255040966146    4    3    7    2
 0.001043475871893153    4    3    7    4
 -0.04885190310188137    4    3    7    6
 1.074687315378879e-15    4    3    7    7
 0.9947114361358265    4    4    1    1
 -0.01338768068157956    4    4    2    1
 0.6744466538693477    4    4    2    2
 0.5959678274707184    4    4    3    3
 0.01114155094337524    4    4    4    1
 0.1040484405315457    4    4    4    2
 0.7762507180020017    4    4    4    4
 0.7260376902958305    4    4    5    5
 -0.0190369413075492    4    4    6    1
 0.08601370940944414    4    4    6    2
 2.325599482426662e-15    4    4    6    3
 -0.1229088961634469    4    4    6    4
 0.5491094735745693    4    4    6    6
 0.1585407260120994    4    4    7    3
 1.720229035840603e-15    4    4    7    4
 0.6058183134590612    4    4    7    7
 0.02603770448607256    5    1    5    1
 0.03250568804743786    5    1    5    2
 0.01339382601636875    5    1    5    4
 0.0155292088120708    5    1    6    5
 0.03250568804743786    5    2    5    1
 0.1448063051627464    5    2    5    2
 0.04691239073790691    5    2    5    4
 0.05849179842859509    5    2    6    5
 0.02861121519359749    5    3    5    3
 0.02370319498932771    5    3    7    5
 0.01339382601636875    5    4    5    1
 0.04691239073790692    5    4    5    2
 0.05544992801454113    5    4    5    4
 0.001182112689947983    5    4    6    5
 1.115338088402927    5    5    1    1
 -0.01172118955502111    5    5    2    1
 0.7476529642842836    5    5    2    2
 0.6268924370427446    5    5    3    3
 -0.005107626464150599    5    5    4    1
 0.0700769106683265    5    5    4    2
 0.7260376902958305    5    5    4    4
 0.8801590933750454    5    5    5    5
 -0.00613958872993373    5    5    6    1
 0.1574620522598051    5    5    6    2
 2.627205256012825e-15    5    5    6    3
 -0.1190229456943394    5    5    6    4
 0.5885473317517982    5    5    6    6
 -1.983887271822602e-15    5    5    7    2
 0.1906630638921215    5    5    7    3
 1.789325501258022e-15    5    5    7    4
 0.6235489186871658    5    5    7    7
 -0.2346877760095918    6    1    1    1
 0.03533880821525185    6    1    2    1
 -0.0008116642009734498    6    1    2    2
 0.0002643524882726388    6    1    3    3
 0.0003125904042156449    6    1    4    1
 -0.02043036203681521    6    1    4    2
 -0.0190369413075492    6    1    4    4
 -0.00613958872993373    6    1    5    5
 0.03090741846190539    6    1    6    1
 0.007128108042395144    6    1    6    2
 0.0004908078818927407    6    1    6    4
 0.008522249681544365    6    1    6    6
 -0.006898943250865037    6    1    7    3
 -0.004977251286559558    6    1    7    7
 0.3054358577503107    6    2    1    1
 -0.006584282554693914    6    2    2    1
 0.1423338611984037    6    2    2    2
 0.07534780032194556    6    2    3    3
 -0.0186573230449599    6    2    4    1
 -0.02153677097332159    6    2    4    2
 0.08601370940944418    6    2    4    4
 0.1574620522598051    6    2    5    5
 0.007128108042395112    6    2    6    1
 0.1014658443224217    6    2    6    2
 1.41853370072878e-15    6    2    6    3
 -0.06100510303506527    6    2    6    4
 0.09685442120599431    6    2    6    6
 0.07617601003918836    6    2    7    3
 1.20426465298543e-15    6    2    7    4
 0.06843537147361974    6    2    7    7
 4.910500682604615e-15    6    3    1    1
 2.041385392276454e-15    6    3    2    2
 0.003128874185460554    6    3    3    1
 -0.0396681936102178    6    3    3    2
 0.02928096801404864    6    3    4    3
 2.348437742795665e-15    6    3    4    4
 2.627205256012825e-15    6    3    5    5
 1.412749531161131e-15    6    3    6    2
 0.07099504532632839    6    3    6    3
 -1.499163356139014e-15    6    3    6    4
 0.003815194075778979    6    3    7    1
 0.03502923953006604    6    3    7    2
 1.392823298078542e-15    6    3    7    3
 -0.04519055471751641    6    3    7    4
 -0.06440089752420797    6    3    7    6
 2.794348798498117e-15    6    3    7    7
 -0.2236262384530495    6    4    1    1
 0.002357929587235054    6    4    2    1
 -0.09754893393611007    6    4    2    2
 -0.04373992069248152    6    4    3    3
 0.002148624895279793    6    4    4    1
 -0.03340173017582129    6    4    4    2
 -0.1229088961634468    6    4    4    4
 -0.1190229456943394    6    4    5    5
 0.0004908078818927115    6    4    6    1
 -0.06100510303506524    6    4    6    2
 -1.508630830229402e-15    6    4    6    3
 0.07102576468992326    6    4    6    4
 -0.04517978742721659    6    4    6    6
 1.06536091831631e-15    6    4    7    2
 -0.08045972980088242    6    4    7    3
 -0.04222698765049272    6    4    7    7
 0.0155292088120708    6    5    5    1
 0.05849179842859509    6    5    5    2
 0.001182112689947985    6    5    5    4
 0.03825303155527222    6    5    6    5
 0.8020591161419616    6    6    1    1
 -0.007021043708700167    6    6    2    1
 0.6130641206798807    6    6    2    2
 2.415983313786254e-15    6    6    3    2
 0.570101456833913    6    6    3    3
 -0.02096235905566969    6    6    4    1
 -0.05776037337336459    6    6    4    2
 -1.125133884155629e-15    6    6    4    3
 0.5491094735745693    6    6    4    4
 0.5885473317517982    6    6    5    5
 0.008522249681544376    6    6    6    1
 0.09685442120599429    6    6    6    2
 -0.04517978742721664    6    6    6    4
 0.5966610907790958    6    6    6    6
 -1.348657282438325e-15    6    6    7    2
 0.03842653043551644    6    6    7    3
 2.018263506776217e-15    6    6    7    4
 2.249666222209053e-15    6    6    7    6
 0.5653753395058    6    6    7    7
 2.9780948601282e-15    7    1    1    1
 0.01522083247995657    7    1    3    1
 0.02295772851133174    7    1    3    2
 0.004865900400129328    7    1    4    3
 0.003815194075778986    7    1    6    3
 0.02118054619735233    7    1    7    1
 0.01833876108410003    7    1    7    2
 0.01306260713334151    7    1    7    4
 0.01198082551450466    7    1    7    6
 -3.822264831715053e-15    7    2    1    1
 -1.724813647862948e-15    7    2    2    2
 0.01394178936836742    7    2    3    1
 0.04133626522915176    7    2    3    2
 -1.044014728873864e-15    7    2    3    3
 0.03404255040966143    7    2    4    3
 -1.983887271822602e-15    7    2    5    5
 0.03502923953006601    7    2    6    3
 1.083670823736416e-15    7    2    6    4
 -1.306572125065689e-15    7    2    6    6
 0.01833876108410003    7    2    7    1
 0.06233956496575822    7    2    7    2
 -1.447510542615755e-15    7    2    7    3
 0.01668871234811914    7    2    7    4
 -0.009651918573161179    7    2    7    6
 0.3627647940282155    7    3    1    1
 -0.007453552241065664    7    3    2    1
 0.1398649168466555    7    3    2    2
 0.09015588138839581    7    3    3    3
 0.000772285626756568    7    3    4    1
 0.07678080123189159    7    3    4    2
 0.1585407260120993    7    3    4    4
 0.1906630638921215    7    3    5    5
 -0.006898943250865033    7    3    6    1
 0.07617601003918831    7    3    6    2
 1.356363021934841e-15    7    3    6    3
 -0.08045972980088245    7    3    6    4
 0.03842653043551628    7    3    6    6
 -1.458652648385282e-15    7    3    7    2
 0.1531342769573286    7    3    7    3
 1.529327070110598e-15    7    3    7    4
 1.153282008411514e-15    7    3    7    6
 0.09297442082413787    7    3    7    7
 3.364245803068242e-15    7    4    1    1
 1.389716618145098e-15    7    4    2    2
 0.009556726148861704    7    4    3    1
 0.07706053589022074    7    4    3    2
 0.001043475871893138    7    4    4    3
 1.737940627616615e-15    7    4    4    4
 1.789325501258022e-15    7    4    5    5
 1.195578722987807e-15    7    4    6    2
 -0.0451905547175164    7    4    6    3
 2.001519238114518e-15    7    4    6    6
 0.01306260713334151    7    4    7    1
 0.01668871234811916    7    4    7    2
 1.552408457946998e-15    7    4    7    3
 0.06931016714204277    7    4    7    4
 0.05820341909693214    7    4    7    6
 0.02370319498932772    7    5    5    3
 0.02438276319881266    7    5    7    5
 0.009063549750067235    7    6    3    1
 0.09758762344445403    7    6    3    2
 1.176568968163808e-15    7    6    4    2
 -0.04885190310188139    7    6    4    3
 -0.06440089752420797    7    6    6    3
 2.174905696035165e-15    7    6    6    6
 0.01198082551450466    7    6    7    1
 -0.009651918573161167    7    6    7    2
 1.214911116732773e-15    7    6    7    3
 0.05820341909693213    7    6    7    4
 0.114939683966506    7    6    7    6
 -2.191026960003653e-15    7    6    7    7
 0.8659055774540965    7    7    1    1
 -0.009328489006372955    7    7    2    1
 0.6228599325576134    7    7    2    2
 -2.318866196652988e-15    7    7    3    2
 0.6085814834244393    7    7    3    3
 -0.004158409575623865    7    7    4    1
 0.01412779594662345    7    7    4    2
 1.086375233124836e-15    7    7    4    3
 0.6058183134590611    7    7    4    4
 0.6235489186871658    7    7    5    5
 -0.004977251286559527    7    7    6    1
 0.06843537147361967    7    7    6    2
 2.607079502526012e-15    7    7    6    3
 -0.04222698765049276    7    7    6    4
 0.5653753395057997    7    7    6    6
 0.09297442082413805    7    7    7    3
 -2.067324805686628e-15    7    7    7    6
 0.6176064918309245    7    7    7    7
 -32.6903898001836    1    1  0  0
 0.5585649071450988    2    1  0  0
 -7.660069487200806    2    2  0  0
 -6.336245047052339    3    3  0  0
 0.2342354719415093    4    1  0  0
 -0.4415980193065576    4    2  0  0
 -6.95595396650497    4    4  0  0
 2.404327181214646e-15    5    3  0  0
 -7.448014560193811    5    5  0  0
 0.3003578831714497    6    1  0  0
 -1.37009214945238    6    2  0  0
 -2.382256809471817e-14    6    3  0  0
 1.100023238319837    6    4  0  0
 -5.337766699268862    6    6  0  0
 -3.757601657495413e-15    7    1  0  0
 1.779283892953198e-14    7    2  0  0
 -1.712519470075941    7    3  0  0
 -1.605794172216009e-14    7    4  0  0
 -2.384772055350269e-15    7    6  0  0
 -5.595588929631097    7    7  0  0
 9.088293769139284  0  0  0  0

Instantiate qc2.algorithms.VQE class

[4]:
# set up activate space
active_space = ActiveSpace(
    num_active_electrons=(2, 2),  # => (n_alpha, n_beta)
    num_active_spatial_orbitals=3 # => active orbitals comprise of only 2px, 2py and 2pz of oxigen
)

# instantiate VQE class
qc2data.algorithm = VQE(
    active_space=active_space,
    mapper="bk",                  # => Bravyi-Kitaev mapper
    optimizer=SLSQP(),            # => from SLSQP optimizer from Qiskit-Algorithms
    estimator=Estimator()         # => Estimator primitive from Qiskit
)

Check reference state and ansatz

[5]:
print(f'* Reference state:')
display(qc2data.algorithm.reference_state.draw('mpl'))

print(f'* Ansatz:')
# the option `fold=-1` forces the anzats to fit into the page
display(qc2data.algorithm.ansatz.decompose().draw('mpl', fold=-1))
* Reference state:
../_images/tutorials_water_vqe_example_qiskit_10_1.png
* Ansatz:
../_images/tutorials_water_vqe_example_qiskit_10_3.png

Run VQE

[6]:
results = qc2data.algorithm.run()
iter = 002, energy = -74.964404823994 Ha
iter = 004, energy = -74.964404823994 Ha
iter = 006, energy = -74.964404821877 Ha
iter = 008, energy = -74.964404823994 Ha
iter = 010, energy = -74.953712458779 Ha
iter = 012, energy = -74.969016364134 Ha
iter = 014, energy = -74.969016364134 Ha
iter = 016, energy = -74.969016364311 Ha
iter = 018, energy = -74.969016364250 Ha
iter = 020, energy = -74.969038740061 Ha
iter = 022, energy = -74.969038740061 Ha
iter = 024, energy = -74.969038740061 Ha
iter = 026, energy = -74.969038740061 Ha
iter = 028, energy = -74.969038740220 Ha
iter = 030, energy = -74.969072172816 Ha
iter = 032, energy = -74.969072172816 Ha
iter = 034, energy = -74.969072172813 Ha
iter = 036, energy = -74.969072172797 Ha
iter = 038, energy = -74.969074367841 Ha
iter = 040, energy = -74.969074367841 Ha
iter = 042, energy = -74.969074367841 Ha
iter = 044, energy = -74.969074367841 Ha
iter = 046, energy = -74.969074367844 Ha
=== QISKIT VQE RESULTS ===
* Electronic ground state energy (Hartree): -6.1419125033838
* Inactive core energy (Hartree): -68.82716186445694
>>> Total ground state energy (Hartree): -74.96907436784359

[7]:
# print optimized circuit parameters
print(f'* Optimized circuit parameters:')
print(results.optimal_params, "\n")

print(f'* VQE energy (Hartree):')
print(results.optimal_energy, "\n")

# `intermediate_info` saves all data at each optimization step
print(f'* VQE intermediate info:')
results.optimizer_evals, results.energy, results.parameters, results.metadata
* Optimized circuit parameters:
[-0.005355808793988312, -8.38625771153209e-08, -0.00535580955850707, -3.460468216184343e-07, -0.049389432156110066, -3.4748224844750195e-07, -3.296348580325791e-07, -0.030250429826813585]

* VQE energy (Hartree):
-74.96907436784359

* VQE intermediate info:
[7]:
(46,
 [-74.96440482399416,
  -74.96440482399412,
  -74.96440482399414,
  -74.96440482399413,
  -74.96440482399416,
  -74.96440482187742,
  -74.96440482399416,
  -74.96440482399416,
  -74.96440482285412,
  -74.95371245877908,
  -74.96901636424987,
  -74.96901636413423,
  -74.96901636424987,
  -74.96901636413422,
  -74.96901636424987,
  -74.9690163643105,
  -74.96901636424985,
  -74.96901636424985,
  -74.96901636414427,
  -74.96903874006085,
  -74.96903874010222,
  -74.96903874006087,
  -74.96903874010223,
  -74.96903874006087,
  -74.96903873997252,
  -74.96903874006087,
  -74.96903874006087,
  -74.96903874022001,
  -74.96907217279715,
  -74.96907217281557,
  -74.96907217279715,
  -74.96907217281557,
  -74.96907217279715,
  -74.9690721728134,
  -74.96907217279715,
  -74.96907217279715,
  -74.96907217276534,
  -74.96907436784073,
  -74.96907436783057,
  -74.96907436784075,
  -74.96907436783057,
  -74.96907436784075,
  -74.9690743678402,
  -74.96907436784075,
  -74.96907436784076,
  -74.96907436784359],
 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  [1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  [0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  [0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0, 0.0],
  [0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0],
  [0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0],
  [0.0, 0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0],
  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0],
  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08],
  [-2.205371856689453e-06,
   -8.940696716308594e-07,
   -1.2516975402832031e-06,
   -1.1920928955078125e-07,
   -0.14205145835876465,
   5.960464477539063e-08,
   5.960464477539063e-08,
   -0.07650613784790039],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.667340725559426e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.0197798762363485e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.2872964715062786e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -2.734939198181668e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034633577070489,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   3.602643778167982e-08,
   2.1125276587832168e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   3.602643778167982e-08,
   -0.027115560017077857],
  [-7.816352337497903e-07,
   -3.168791488174825e-07,
   -4.436308083444755e-07,
   -4.2250553175664335e-08,
   -0.05034635067186608,
   2.1125276587832168e-08,
   2.1125276587832168e-08,
   -0.027115545115916663],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.007750209450875844,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.4966056844836124e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750339941675348,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -2.831008181857701e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.047427499809096565,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.3967396090620496e-07,
   -1.5696215734733702e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.4206099615348936e-07,
   -0.034808395480874964],
  [-0.0077502243520370375,
   -2.645617296422089e-07,
   -0.007750354842836542,
   -4.321124301242467e-08,
   -0.04742751471025776,
   -4.545751221000526e-07,
   -1.5696215734733702e-07,
   -0.03480838057971377],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.006922426311957159,
   1.4918744263921708e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.6408860383306474e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921929183844565,
   5.851322277444256e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921944085005759,
   7.341438396829022e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001713571808158,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001715061924277,
   2.1337242330416864e-08,
   -3.9110381748232155e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -2.42092205543845e-08,
   -0.029227391840273002],
  [-0.0069224412131183525,
   1.4918744263921708e-07,
   -0.006921944085005759,
   5.851322277444256e-08,
   -0.05001715061924277,
   6.436081136569208e-09,
   -3.9110381748232155e-08,
   -0.02922737693911181],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355793892827118,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -6.896141592147325e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.005355794657345876,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.311456604245866e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.04938941725494887,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.325810872536543e-07,
   -3.296348580325791e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.1473369683873147e-07,
   -0.03025044472797478],
  [-0.005355808793988312,
   -8.38625771153209e-08,
   -0.00535580955850707,
   -3.460468216184343e-07,
   -0.049389432156110066,
   -3.4748224844750195e-07,
   -3.296348580325791e-07,
   -0.030250429826813585]],
 [{},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {},
  {}])

Compare VQE result with classical qchem calculations

Now, let’s compare our VQE enery with quantum chemistry calculations performed solely using PySCF. Here is a typical example run:

[8]:
import pyscf
from pyscf import gto, scf, mcscf, fci

# set up molecule
mol_h2o = gto.M(
    atom='O 0 0 0.1192622641;\
          H 0 0.763237638 -0.4770469398;\
          H 0 -0.763237638, -0.4770469398',
    basis='sto-3g',
    verbose=0
)

# run HF
scf_h2o = scf.HF(mol_h2o)
hf_h2o = mol_h2o.HF().run()

# run CASCI and CASSCF single-point calculations
ncas, nelecas = (3, 4)
energy_casci = mcscf.CASCI(hf_h2o, ncas, nelecas).kernel()
energy_casscf = mcscf.CASSCF(hf_h2o, ncas, nelecas).kernel()

# run FCI single-point calculation
energy_fci = fci.FCI(hf_h2o).kernel()

print('')
print(f'* Final VQE energy (hartree):           {results.optimal_energy:.6f}')
print(f'* Final CASCI/sto-3g energy (hartree):  {energy_casci[0]:.6f}')
print(f'* Final CASSCF/sto-3g energy (hartree): {energy_casscf[0]:.6f}')
print(f'* Final FCI/sto-3g energy (hartree):    {energy_fci[0]:.6f}')

* Final VQE energy (hartree):           -74.969074
* Final CASCI/sto-3g energy (hartree):  -74.969075
* Final CASSCF/sto-3g energy (hartree): -74.976643
* Final FCI/sto-3g energy (hartree):    -75.015429

As expected, our final VQE energy agrees excelently well with the one obtained with PySCF at CASCI level.