{ "cells": [ { "cell_type": "markdown", "id": "132bb9fb", "metadata": {}, "source": [ "# Example 1: Qiskit VQE calculation on water\n", "\n", "In this example, we will demonstrate how to use `qc2` in conjunction with `Qiskit-Nature` for conducting a simple VQE run on water molecule.\n", "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`." ] }, { "cell_type": "markdown", "id": "446f6890-b43b-470b-b415-1a1ae122126e", "metadata": {}, "source": [ "### Import required packages" ] }, { "cell_type": "code", "execution_count": 1, "id": "e7ab3741", "metadata": {}, "outputs": [], "source": [ "# ASE molecule object\n", "from ase.build import molecule\n", "\n", "# Qiskit-related packages\n", "from qiskit_algorithms.optimizers import SLSQP\n", "from qiskit.primitives import Estimator\n", "\n", "# ignore package import warnings\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# qc2 packages\n", "from qc2.data import qc2Data\n", "from qc2.ase import PySCF\n", "from qc2.algorithms.utils import ActiveSpace\n", "from qc2.algorithms.qiskit import VQE" ] }, { "cell_type": "markdown", "id": "d20e8585-f670-46e6-a5af-006f78f0f94e", "metadata": {}, "source": [ "### Instantiate `qc2Data` class and run qc2-ASE calculator" ] }, { "cell_type": "code", "execution_count": 2, "id": "f47b6fcc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "* Reference energy (Hartree): -74.9644048239943\n", "* Saving qchem data in h2o.fcidump\n", "\n" ] } ], "source": [ "# set Atoms object\n", "mol = molecule('H2O')\n", "\n", "# instantiate qc2Data class\n", "qc2data = qc2Data(\n", " molecule=mol,\n", " filename='h2o.fcidump',\n", " schema='fcidump'\n", ")\n", "\n", "# specify the qchem calculator\n", "qc2data.molecule.calc = PySCF(method='scf.RHF', basis='sto-3g')\n", "\n", "# run calculation and save qchem data in the hdf5 file\n", "qc2data.run()" ] }, { "cell_type": "markdown", "id": "c891b829-9c1d-4ef0-a3c8-0c0a12a2b52a", "metadata": {}, "source": [ "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:" ] }, { "cell_type": "code", "execution_count": 3, "id": "26442d20-d658-4786-9415-38b135d66d1c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " &FCI NORB= 7,NELEC=10,MS2=0,\n", " ORBSYM=1,1,1,1,1,1,1,\n", " ISYM=1,\n", " &END\n", " 4.744698428255592 1 1 1 1\n", " -0.4173800898849752 1 1 2 1\n", " 1.005211918627975 1 1 2 2\n", " 0.7971148584938965 1 1 3 3\n", " -0.1830679567998194 1 1 4 1\n", " 0.1307548586916885 1 1 4 2\n", " 0.9947114361358266 1 1 4 4\n", " 1.115338088402927 1 1 5 5\n", " -0.2346877760095918 1 1 6 1\n", " 0.3054358577503106 1 1 6 2\n", " 4.849365429112798e-15 1 1 6 3\n", " -0.2236262384530495 1 1 6 4\n", " 0.8020591161419615 1 1 6 6\n", " 3.001597269643609e-15 1 1 7 1\n", " -3.79570366054821e-15 1 1 7 2\n", " 0.3627647940282153 1 1 7 3\n", " 3.406870408020704e-15 1 1 7 4\n", " 0.865905577454096 1 1 7 7\n", " -0.4173800898849752 2 1 1 1\n", " 0.05834680472960329 2 1 2 1\n", " -0.01312418976546786 2 1 2 2\n", " -0.004422553508655442 2 1 3 3\n", " 0.0225570184748541 2 1 4 1\n", " -0.009156616358056119 2 1 4 2\n", " -0.01338768068157959 2 1 4 4\n", " -0.01172118955502111 2 1 5 5\n", " 0.03533880821525183 2 1 6 1\n", " -0.006584282554693888 2 1 6 2\n", " 0.002357929587235088 2 1 6 4\n", " -0.007021043708700192 2 1 6 6\n", " -0.007453552241065682 2 1 7 3\n", " -0.009328489006372976 2 1 7 7\n", " 1.005211918627975 2 2 1 1\n", " -0.01312418976546791 2 2 2 1\n", " 0.7274142267697928 2 2 2 2\n", " 0.6429787755935467 2 2 3 3\n", " -0.01581145753791582 2 2 4 1\n", " -0.001937507883311278 2 2 4 2\n", " 0.6744466538693478 2 2 4 4\n", " 0.7476529642842836 2 2 5 5\n", " -0.0008116642009734926 2 2 6 1\n", " 0.1423338611984036 2 2 6 2\n", " 2.060505654294295e-15 2 2 6 3\n", " -0.09754893393611025 2 2 6 4\n", " 0.6130641206798808 2 2 6 6\n", " -1.705032561656325e-15 2 2 7 2\n", " 0.1398649168466556 2 2 7 3\n", " 1.31329818365512e-15 2 2 7 4\n", " 0.6228599325576134 2 2 7 7\n", " 0.0109663838119732 3 1 3 1\n", " 0.01768533985739107 3 1 3 2\n", " 0.003390295389880111 3 1 4 3\n", " 0.003128874185460554 3 1 6 3\n", " 0.01522083247995657 3 1 7 1\n", " 0.01394178936836742 3 1 7 2\n", " 0.009556726148861704 3 1 7 4\n", " 0.009063549750067236 3 1 7 6\n", " 0.01768533985739108 3 2 3 1\n", " 0.1434022388961857 3 2 3 2\n", " -0.02065313082769067 3 2 4 3\n", " -0.0396681936102178 3 2 6 3\n", " 2.390638788002052e-15 3 2 6 6\n", " 0.02295772851133174 3 2 7 1\n", " 0.04133626522915177 3 2 7 2\n", " 0.07706053589022074 3 2 7 4\n", " 0.09758762344445403 3 2 7 6\n", " -2.332089881670515e-15 3 2 7 7\n", " 0.7971148584938966 3 3 1 1\n", " -0.004422553508655418 3 3 2 1\n", " 0.6429787755935468 3 3 2 2\n", " 0.6300490242657308 3 3 3 3\n", " -0.006421689899582046 3 3 4 1\n", " -0.006680137095363951 3 3 4 2\n", " 0.5959678274707184 3 3 4 4\n", " 0.6268924370427446 3 3 5 5\n", " 0.0002643524882726576 3 3 6 1\n", " 0.07534780032194555 3 3 6 2\n", " -0.04373992069248159 3 3 6 4\n", " 0.5701014568339132 3 3 6 6\n", " -1.011366457750627e-15 3 3 7 2\n", " 0.09015588138839585 3 3 7 3\n", " 0.6085814834244394 3 3 7 7\n", " -0.1830679567998193 4 1 1 1\n", " 0.02255701847485409 4 1 2 1\n", " -0.0158114575379158 4 1 2 2\n", " -0.006421689899582058 4 1 3 3\n", " 0.02754473282303477 4 1 4 1\n", " 0.01880674307530224 4 1 4 2\n", " 0.01114155094337524 4 1 4 4\n", " -0.005107626464150599 4 1 5 5\n", " 0.0003125904042156436 4 1 6 1\n", " -0.01865732304495988 4 1 6 2\n", " 0.00214862489527982 4 1 6 4\n", " -0.0209623590556697 4 1 6 6\n", " 0.0007722856267565661 4 1 7 3\n", " -0.004158409575623874 4 1 7 7\n", " 0.1307548586916884 4 2 1 1\n", " -0.00915661635805611 4 2 2 1\n", " -0.00193750788331127 4 2 2 2\n", " -0.006680137095364011 4 2 3 3\n", " 0.01880674307530224 4 2 4 1\n", " 0.1246436972245292 4 2 4 2\n", " 0.1040484405315457 4 2 4 4\n", " 0.0700769106683265 4 2 5 5\n", " -0.02043036203681521 4 2 6 1\n", " -0.02153677097332159 4 2 6 2\n", " -0.03340173017582129 4 2 6 4\n", " -0.05776037337336463 4 2 6 6\n", " 0.07678080123189156 4 2 7 3\n", " 1.174066505029759e-15 4 2 7 6\n", " 0.01412779594662342 4 2 7 7\n", " 0.00339029538988011 4 3 3 1\n", " -0.02065313082769067 4 3 3 2\n", " 0.04785847085727147 4 3 4 3\n", " 0.02928096801404865 4 3 6 3\n", " -1.124458581230638e-15 4 3 6 6\n", " 0.004865900400129327 4 3 7 1\n", " 0.03404255040966146 4 3 7 2\n", " 0.001043475871893153 4 3 7 4\n", " -0.04885190310188137 4 3 7 6\n", " 1.074687315378879e-15 4 3 7 7\n", " 0.9947114361358265 4 4 1 1\n", " -0.01338768068157956 4 4 2 1\n", " 0.6744466538693477 4 4 2 2\n", " 0.5959678274707184 4 4 3 3\n", " 0.01114155094337524 4 4 4 1\n", " 0.1040484405315457 4 4 4 2\n", " 0.7762507180020017 4 4 4 4\n", " 0.7260376902958305 4 4 5 5\n", " -0.0190369413075492 4 4 6 1\n", " 0.08601370940944414 4 4 6 2\n", " 2.325599482426662e-15 4 4 6 3\n", " -0.1229088961634469 4 4 6 4\n", " 0.5491094735745693 4 4 6 6\n", " 0.1585407260120994 4 4 7 3\n", " 1.720229035840603e-15 4 4 7 4\n", " 0.6058183134590612 4 4 7 7\n", " 0.02603770448607256 5 1 5 1\n", " 0.03250568804743786 5 1 5 2\n", " 0.01339382601636875 5 1 5 4\n", " 0.0155292088120708 5 1 6 5\n", " 0.03250568804743786 5 2 5 1\n", " 0.1448063051627464 5 2 5 2\n", " 0.04691239073790691 5 2 5 4\n", " 0.05849179842859509 5 2 6 5\n", " 0.02861121519359749 5 3 5 3\n", " 0.02370319498932771 5 3 7 5\n", " 0.01339382601636875 5 4 5 1\n", " 0.04691239073790692 5 4 5 2\n", " 0.05544992801454113 5 4 5 4\n", " 0.001182112689947983 5 4 6 5\n", " 1.115338088402927 5 5 1 1\n", " -0.01172118955502111 5 5 2 1\n", " 0.7476529642842836 5 5 2 2\n", " 0.6268924370427446 5 5 3 3\n", " -0.005107626464150599 5 5 4 1\n", " 0.0700769106683265 5 5 4 2\n", " 0.7260376902958305 5 5 4 4\n", " 0.8801590933750454 5 5 5 5\n", " -0.00613958872993373 5 5 6 1\n", " 0.1574620522598051 5 5 6 2\n", " 2.627205256012825e-15 5 5 6 3\n", " -0.1190229456943394 5 5 6 4\n", " 0.5885473317517982 5 5 6 6\n", " -1.983887271822602e-15 5 5 7 2\n", " 0.1906630638921215 5 5 7 3\n", " 1.789325501258022e-15 5 5 7 4\n", " 0.6235489186871658 5 5 7 7\n", " -0.2346877760095918 6 1 1 1\n", " 0.03533880821525185 6 1 2 1\n", " -0.0008116642009734498 6 1 2 2\n", " 0.0002643524882726388 6 1 3 3\n", " 0.0003125904042156449 6 1 4 1\n", " -0.02043036203681521 6 1 4 2\n", " -0.0190369413075492 6 1 4 4\n", " -0.00613958872993373 6 1 5 5\n", " 0.03090741846190539 6 1 6 1\n", " 0.007128108042395144 6 1 6 2\n", " 0.0004908078818927407 6 1 6 4\n", " 0.008522249681544365 6 1 6 6\n", " -0.006898943250865037 6 1 7 3\n", " -0.004977251286559558 6 1 7 7\n", " 0.3054358577503107 6 2 1 1\n", " -0.006584282554693914 6 2 2 1\n", " 0.1423338611984037 6 2 2 2\n", " 0.07534780032194556 6 2 3 3\n", " -0.0186573230449599 6 2 4 1\n", " -0.02153677097332159 6 2 4 2\n", " 0.08601370940944418 6 2 4 4\n", " 0.1574620522598051 6 2 5 5\n", " 0.007128108042395112 6 2 6 1\n", " 0.1014658443224217 6 2 6 2\n", " 1.41853370072878e-15 6 2 6 3\n", " -0.06100510303506527 6 2 6 4\n", " 0.09685442120599431 6 2 6 6\n", " 0.07617601003918836 6 2 7 3\n", " 1.20426465298543e-15 6 2 7 4\n", " 0.06843537147361974 6 2 7 7\n", " 4.910500682604615e-15 6 3 1 1\n", " 2.041385392276454e-15 6 3 2 2\n", " 0.003128874185460554 6 3 3 1\n", " -0.0396681936102178 6 3 3 2\n", " 0.02928096801404864 6 3 4 3\n", " 2.348437742795665e-15 6 3 4 4\n", " 2.627205256012825e-15 6 3 5 5\n", " 1.412749531161131e-15 6 3 6 2\n", " 0.07099504532632839 6 3 6 3\n", " -1.499163356139014e-15 6 3 6 4\n", " 0.003815194075778979 6 3 7 1\n", " 0.03502923953006604 6 3 7 2\n", " 1.392823298078542e-15 6 3 7 3\n", " -0.04519055471751641 6 3 7 4\n", " -0.06440089752420797 6 3 7 6\n", " 2.794348798498117e-15 6 3 7 7\n", " -0.2236262384530495 6 4 1 1\n", " 0.002357929587235054 6 4 2 1\n", " -0.09754893393611007 6 4 2 2\n", " -0.04373992069248152 6 4 3 3\n", " 0.002148624895279793 6 4 4 1\n", " -0.03340173017582129 6 4 4 2\n", " -0.1229088961634468 6 4 4 4\n", " -0.1190229456943394 6 4 5 5\n", " 0.0004908078818927115 6 4 6 1\n", " -0.06100510303506524 6 4 6 2\n", " -1.508630830229402e-15 6 4 6 3\n", " 0.07102576468992326 6 4 6 4\n", " -0.04517978742721659 6 4 6 6\n", " 1.06536091831631e-15 6 4 7 2\n", " -0.08045972980088242 6 4 7 3\n", " -0.04222698765049272 6 4 7 7\n", " 0.0155292088120708 6 5 5 1\n", " 0.05849179842859509 6 5 5 2\n", " 0.001182112689947985 6 5 5 4\n", " 0.03825303155527222 6 5 6 5\n", " 0.8020591161419616 6 6 1 1\n", " -0.007021043708700167 6 6 2 1\n", " 0.6130641206798807 6 6 2 2\n", " 2.415983313786254e-15 6 6 3 2\n", " 0.570101456833913 6 6 3 3\n", " -0.02096235905566969 6 6 4 1\n", " -0.05776037337336459 6 6 4 2\n", " -1.125133884155629e-15 6 6 4 3\n", " 0.5491094735745693 6 6 4 4\n", " 0.5885473317517982 6 6 5 5\n", " 0.008522249681544376 6 6 6 1\n", " 0.09685442120599429 6 6 6 2\n", " -0.04517978742721664 6 6 6 4\n", " 0.5966610907790958 6 6 6 6\n", " -1.348657282438325e-15 6 6 7 2\n", " 0.03842653043551644 6 6 7 3\n", " 2.018263506776217e-15 6 6 7 4\n", " 2.249666222209053e-15 6 6 7 6\n", " 0.5653753395058 6 6 7 7\n", " 2.9780948601282e-15 7 1 1 1\n", " 0.01522083247995657 7 1 3 1\n", " 0.02295772851133174 7 1 3 2\n", " 0.004865900400129328 7 1 4 3\n", " 0.003815194075778986 7 1 6 3\n", " 0.02118054619735233 7 1 7 1\n", " 0.01833876108410003 7 1 7 2\n", " 0.01306260713334151 7 1 7 4\n", " 0.01198082551450466 7 1 7 6\n", " -3.822264831715053e-15 7 2 1 1\n", " -1.724813647862948e-15 7 2 2 2\n", " 0.01394178936836742 7 2 3 1\n", " 0.04133626522915176 7 2 3 2\n", " -1.044014728873864e-15 7 2 3 3\n", " 0.03404255040966143 7 2 4 3\n", " -1.983887271822602e-15 7 2 5 5\n", " 0.03502923953006601 7 2 6 3\n", " 1.083670823736416e-15 7 2 6 4\n", " -1.306572125065689e-15 7 2 6 6\n", " 0.01833876108410003 7 2 7 1\n", " 0.06233956496575822 7 2 7 2\n", " -1.447510542615755e-15 7 2 7 3\n", " 0.01668871234811914 7 2 7 4\n", " -0.009651918573161179 7 2 7 6\n", " 0.3627647940282155 7 3 1 1\n", " -0.007453552241065664 7 3 2 1\n", " 0.1398649168466555 7 3 2 2\n", " 0.09015588138839581 7 3 3 3\n", " 0.000772285626756568 7 3 4 1\n", " 0.07678080123189159 7 3 4 2\n", " 0.1585407260120993 7 3 4 4\n", " 0.1906630638921215 7 3 5 5\n", " -0.006898943250865033 7 3 6 1\n", " 0.07617601003918831 7 3 6 2\n", " 1.356363021934841e-15 7 3 6 3\n", " -0.08045972980088245 7 3 6 4\n", " 0.03842653043551628 7 3 6 6\n", " -1.458652648385282e-15 7 3 7 2\n", " 0.1531342769573286 7 3 7 3\n", " 1.529327070110598e-15 7 3 7 4\n", " 1.153282008411514e-15 7 3 7 6\n", " 0.09297442082413787 7 3 7 7\n", " 3.364245803068242e-15 7 4 1 1\n", " 1.389716618145098e-15 7 4 2 2\n", " 0.009556726148861704 7 4 3 1\n", " 0.07706053589022074 7 4 3 2\n", " 0.001043475871893138 7 4 4 3\n", " 1.737940627616615e-15 7 4 4 4\n", " 1.789325501258022e-15 7 4 5 5\n", " 1.195578722987807e-15 7 4 6 2\n", " -0.0451905547175164 7 4 6 3\n", " 2.001519238114518e-15 7 4 6 6\n", " 0.01306260713334151 7 4 7 1\n", " 0.01668871234811916 7 4 7 2\n", " 1.552408457946998e-15 7 4 7 3\n", " 0.06931016714204277 7 4 7 4\n", " 0.05820341909693214 7 4 7 6\n", " 0.02370319498932772 7 5 5 3\n", " 0.02438276319881266 7 5 7 5\n", " 0.009063549750067235 7 6 3 1\n", " 0.09758762344445403 7 6 3 2\n", " 1.176568968163808e-15 7 6 4 2\n", " -0.04885190310188139 7 6 4 3\n", " -0.06440089752420797 7 6 6 3\n", " 2.174905696035165e-15 7 6 6 6\n", " 0.01198082551450466 7 6 7 1\n", " -0.009651918573161167 7 6 7 2\n", " 1.214911116732773e-15 7 6 7 3\n", " 0.05820341909693213 7 6 7 4\n", " 0.114939683966506 7 6 7 6\n", " -2.191026960003653e-15 7 6 7 7\n", " 0.8659055774540965 7 7 1 1\n", " -0.009328489006372955 7 7 2 1\n", " 0.6228599325576134 7 7 2 2\n", " -2.318866196652988e-15 7 7 3 2\n", " 0.6085814834244393 7 7 3 3\n", " -0.004158409575623865 7 7 4 1\n", " 0.01412779594662345 7 7 4 2\n", " 1.086375233124836e-15 7 7 4 3\n", " 0.6058183134590611 7 7 4 4\n", " 0.6235489186871658 7 7 5 5\n", " -0.004977251286559527 7 7 6 1\n", " 0.06843537147361967 7 7 6 2\n", " 2.607079502526012e-15 7 7 6 3\n", " -0.04222698765049276 7 7 6 4\n", " 0.5653753395057997 7 7 6 6\n", " 0.09297442082413805 7 7 7 3\n", " -2.067324805686628e-15 7 7 7 6\n", " 0.6176064918309245 7 7 7 7\n", " -32.6903898001836 1 1 0 0\n", " 0.5585649071450988 2 1 0 0\n", " -7.660069487200806 2 2 0 0\n", " -6.336245047052339 3 3 0 0\n", " 0.2342354719415093 4 1 0 0\n", " -0.4415980193065576 4 2 0 0\n", " -6.95595396650497 4 4 0 0\n", " 2.404327181214646e-15 5 3 0 0\n", " -7.448014560193811 5 5 0 0\n", " 0.3003578831714497 6 1 0 0\n", " -1.37009214945238 6 2 0 0\n", " -2.382256809471817e-14 6 3 0 0\n", " 1.100023238319837 6 4 0 0\n", " -5.337766699268862 6 6 0 0\n", " -3.757601657495413e-15 7 1 0 0\n", " 1.779283892953198e-14 7 2 0 0\n", " -1.712519470075941 7 3 0 0\n", " -1.605794172216009e-14 7 4 0 0\n", " -2.384772055350269e-15 7 6 0 0\n", " -5.595588929631097 7 7 0 0\n", " 9.088293769139284 0 0 0 0\n" ] } ], "source": [ "!cat h2o.fcidump" ] }, { "cell_type": "markdown", "id": "ce2405e7-e315-4001-a216-f7bab01b8e53", "metadata": {}, "source": [ "### Instantiate `qc2.algorithms.VQE` class" ] }, { "cell_type": "code", "execution_count": 4, "id": "4b6beb41-81d4-4348-81b3-02acf6df5192", "metadata": {}, "outputs": [], "source": [ "# set up activate space\n", "active_space = ActiveSpace(\n", " num_active_electrons=(2, 2), # => (n_alpha, n_beta)\n", " num_active_spatial_orbitals=3 # => active orbitals comprise of only 2px, 2py and 2pz of oxigen\n", ")\n", "\n", "# instantiate VQE class\n", "qc2data.algorithm = VQE(\n", " active_space=active_space,\n", " mapper=\"bk\", # => Bravyi-Kitaev mapper\n", " optimizer=SLSQP(), # => from SLSQP optimizer from Qiskit-Algorithms\n", " estimator=Estimator() # => Estimator primitive from Qiskit\n", ")" ] }, { "cell_type": "markdown", "id": "00890d92-c10d-4210-bc77-40fba9449f2c", "metadata": {}, "source": [ "### Check reference state and ansatz" ] }, { "cell_type": "code", "execution_count": 5, "id": "93eb4a6f-b10f-4422-b325-0ca8c13f1e2e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "* Reference state:\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "* Ansatz:\n" ] }, { "data": { "image/png": "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xx13XMydOzcuu+yymDNnTrz88ssxd+7cuO666+Kxxx6LcePGRVlZWey5557Fbm4qrrrzlZj4zsL42Tf3i+22aVtl2yWn7x6HDuoeV975cvaLRUXE4B8Mi8FXD4vFb8+MF797b0x79IXod84x8anffSuirKzYzQMKSDwACkGsAUqV+AWNn+scAACgaZIPAgAAJCeXAgAAaDrkgAAAQFPRvNgNSNNFF10UM2fOjOHDh8eNN95YZduIESPi/vvvj1dffTV69uwZHTt2LFIr07Vm7fo467vPxdg/fC7uueqgOOq8JyMiovdOneLHF+4bL772Ydzwm4lFbuXmde7dI/qefXRMe+zFeOYr//e7/Pj9D2P/H58TPY8/MN776+githAoFPEAKASxBihV4hc0fq5zAACApkk+CAAAkJxcCgAAoOmQAwIAAE1JebEbkJbJkyfHgw8+GFtttVVce+21Ne6zzz77RETEgAEDqrz+3nvvxec+97no0KFDbLHFFnHmmWfGggULUm9zWl6ZvCCuvefV+MyBPeLcE3eL8vKy+N2PD46ysoizvvtcrF9fUewmblbPLwyNsvLymPTLx6q8/s59/441y1dGrxMPLlLLgEITD4BCEGuAUiV+QePnOgcAAGia5IMAAADJyaUAAACaDjkgAADQlDQvdgPS8sADD8T69evjtNNOi/bt29e4T5s2bSKiasGojz/+OA477LDYcsst44EHHogVK1bEiBEj4thjj40xY8ZEeXlp1tj64d2vxOcO3SFuvGxwDOzTJfbrv3VcesPYeHvakmI3rV62GrhLrF+3Lua/8k6V19etWhMLX58WWw3sVaSWAYUmHgCFINYApUr8gsbPdQ4AANA0yQcBAACSk0sBAAA0HXJAAACgKSnN6kf1MHLkyIiIOOyww2rdZ+bMmRFRtWDU3XffHbNmzYpHHnkkjj322Dj55JPj/vvvjxdffDH+/ve/p9voFK1dWxFnffe5aN2qWZz/xb4x6uW5cfMfXi92s+qt7TZbxKqFH8f61WurbVs+d2G07tIpyls02vpnwCeIB0AhiDVAqRK/oPFznQMAADRN8kEAAIDk5FIAAABNhxwQAABoShptdjN9+vSIiNhxxx1r3L527doYM2ZMRFQtGPXoo4/G0KFDY4cddqh8bciQIbHzzjvHP/7xjzj++OMTt2XfffeNuXPnJnrP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AAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJOwSgAAAAAAAAAAAAAAAAAAAAAAICMUzAKAAAAAAAAAAAAAAAAAAAAAAAg4xSMAgAAAAAAAAAAAAAAAAAAAAAAyDgFowAAAAAAAAAAAAAAAAAAAAAAADJO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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(f'* Reference state:')\n", "display(qc2data.algorithm.reference_state.draw('mpl'))\n", "\n", "print(f'* Ansatz:')\n", "# the option `fold=-1` forces the anzats to fit into the page\n", "display(qc2data.algorithm.ansatz.decompose().draw('mpl', fold=-1))" ] }, { "cell_type": "markdown", "id": "ea380f46-50e2-43cc-be27-e74484b06836", "metadata": {}, "source": [ "### Run VQE" ] }, { "cell_type": "code", "execution_count": 6, "id": "57e3f6b8-39ac-4d2d-a70a-5bda0ee7391c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter = 002, energy = -74.964404823994 Ha\n", "iter = 004, energy = -74.964404823994 Ha\n", "iter = 006, energy = -74.964404821877 Ha\n", "iter = 008, energy = -74.964404823994 Ha\n", "iter = 010, energy = -74.953712458779 Ha\n", "iter = 012, energy = -74.969016364134 Ha\n", "iter = 014, energy = -74.969016364134 Ha\n", "iter = 016, energy = -74.969016364311 Ha\n", "iter = 018, energy = -74.969016364250 Ha\n", "iter = 020, energy = -74.969038740061 Ha\n", "iter = 022, energy = -74.969038740061 Ha\n", "iter = 024, energy = -74.969038740061 Ha\n", "iter = 026, energy = -74.969038740061 Ha\n", "iter = 028, energy = -74.969038740220 Ha\n", "iter = 030, energy = -74.969072172816 Ha\n", "iter = 032, energy = -74.969072172816 Ha\n", "iter = 034, energy = -74.969072172813 Ha\n", "iter = 036, energy = -74.969072172797 Ha\n", "iter = 038, energy = -74.969074367841 Ha\n", "iter = 040, energy = -74.969074367841 Ha\n", "iter = 042, energy = -74.969074367841 Ha\n", "iter = 044, energy = -74.969074367841 Ha\n", "iter = 046, energy = -74.969074367844 Ha\n", "=== QISKIT VQE RESULTS ===\n", "* Electronic ground state energy (Hartree): -6.1419125033838\n", "* Inactive core energy (Hartree): -68.82716186445694\n", ">>> Total ground state energy (Hartree): -74.96907436784359\n", "\n" ] } ], "source": [ "results = qc2data.algorithm.run()" ] }, { "cell_type": "code", "execution_count": 7, "id": "49884cae-7e33-4aa1-a00d-2685d1ed1d13", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "* Optimized circuit parameters:\n", "[-0.005355808793988312, -8.38625771153209e-08, -0.00535580955850707, -3.460468216184343e-07, -0.049389432156110066, -3.4748224844750195e-07, -3.296348580325791e-07, -0.030250429826813585] \n", "\n", "* VQE energy (Hartree):\n", "-74.96907436784359 \n", "\n", "* VQE intermediate info:\n" ] }, { "data": { "text/plain": [ "(46,\n", " [-74.96440482399416,\n", " -74.96440482399412,\n", " -74.96440482399414,\n", " -74.96440482399413,\n", " -74.96440482399416,\n", " -74.96440482187742,\n", " -74.96440482399416,\n", " -74.96440482399416,\n", " -74.96440482285412,\n", " -74.95371245877908,\n", " -74.96901636424987,\n", " -74.96901636413423,\n", " -74.96901636424987,\n", " -74.96901636413422,\n", " -74.96901636424987,\n", " -74.9690163643105,\n", " -74.96901636424985,\n", " -74.96901636424985,\n", " -74.96901636414427,\n", " -74.96903874006085,\n", " -74.96903874010222,\n", " -74.96903874006087,\n", " -74.96903874010223,\n", " -74.96903874006087,\n", " -74.96903873997252,\n", " -74.96903874006087,\n", " -74.96903874006087,\n", " -74.96903874022001,\n", " -74.96907217279715,\n", " -74.96907217281557,\n", " -74.96907217279715,\n", " -74.96907217281557,\n", " -74.96907217279715,\n", " -74.9690721728134,\n", " -74.96907217279715,\n", " -74.96907217279715,\n", " -74.96907217276534,\n", " -74.96907436784073,\n", " -74.96907436783057,\n", " -74.96907436784075,\n", " -74.96907436783057,\n", " -74.96907436784075,\n", " -74.9690743678402,\n", " -74.96907436784075,\n", " -74.96907436784076,\n", " -74.96907436784359],\n", " [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],\n", " [1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],\n", " [0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],\n", " [0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0, 0.0],\n", " [0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0, 0.0],\n", " [0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0, 0.0],\n", " [0.0, 0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0, 0.0],\n", " [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08, 0.0],\n", " [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4901161193847656e-08],\n", " [-2.205371856689453e-06,\n", " -8.940696716308594e-07,\n", " -1.2516975402832031e-06,\n", " -1.1920928955078125e-07,\n", " -0.14205145835876465,\n", " 5.960464477539063e-08,\n", " 5.960464477539063e-08,\n", " -0.07650613784790039],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.667340725559426e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.0197798762363485e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.2872964715062786e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -2.734939198181668e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034633577070489,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 3.602643778167982e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 3.602643778167982e-08,\n", " -0.027115560017077857],\n", " [-7.816352337497903e-07,\n", " -3.168791488174825e-07,\n", " -4.436308083444755e-07,\n", " -4.2250553175664335e-08,\n", " -0.05034635067186608,\n", " 2.1125276587832168e-08,\n", " 2.1125276587832168e-08,\n", " -0.027115545115916663],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.007750209450875844,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.4966056844836124e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750339941675348,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -2.831008181857701e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.047427499809096565,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.3967396090620496e-07,\n", " -1.5696215734733702e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.4206099615348936e-07,\n", " -0.034808395480874964],\n", " [-0.0077502243520370375,\n", " -2.645617296422089e-07,\n", " -0.007750354842836542,\n", " -4.321124301242467e-08,\n", " -0.04742751471025776,\n", " -4.545751221000526e-07,\n", " -1.5696215734733702e-07,\n", " -0.03480838057971377],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.006922426311957159,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.6408860383306474e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921929183844565,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 7.341438396829022e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001713571808158,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 2.1337242330416864e-08,\n", " -3.9110381748232155e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -2.42092205543845e-08,\n", " -0.029227391840273002],\n", " [-0.0069224412131183525,\n", " 1.4918744263921708e-07,\n", " -0.006921944085005759,\n", " 5.851322277444256e-08,\n", " -0.05001715061924277,\n", " 6.436081136569208e-09,\n", " -3.9110381748232155e-08,\n", " -0.02922737693911181],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355793892827118,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -6.896141592147325e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.005355794657345876,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.311456604245866e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.04938941725494887,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.325810872536543e-07,\n", " -3.296348580325791e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.1473369683873147e-07,\n", " -0.03025044472797478],\n", " [-0.005355808793988312,\n", " -8.38625771153209e-08,\n", " -0.00535580955850707,\n", " -3.460468216184343e-07,\n", " -0.049389432156110066,\n", " -3.4748224844750195e-07,\n", " -3.296348580325791e-07,\n", " -0.030250429826813585]],\n", " [{},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {},\n", " {}])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print optimized circuit parameters\n", "print(f'* Optimized circuit parameters:')\n", "print(results.optimal_params, \"\\n\")\n", "\n", "print(f'* VQE energy (Hartree):')\n", "print(results.optimal_energy, \"\\n\")\n", "\n", "# `intermediate_info` saves all data at each optimization step\n", "print(f'* VQE intermediate info:')\n", "results.optimizer_evals, results.energy, results.parameters, results.metadata" ] }, { "cell_type": "markdown", "id": "f49fcdf8-8567-48e6-88e7-93ba732194c1", "metadata": {}, "source": [ "### Compare VQE result with classical qchem calculations\n", "\n", "Now, let's compare our VQE enery with quantum chemistry calculations performed solely using PySCF. Here is a typical example run:" ] }, { "cell_type": "code", "execution_count": 8, "id": "b96d2611-f3f6-4764-b57f-be7f4b4a5a96", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "* Final VQE energy (hartree): -74.969074\n", "* Final CASCI/sto-3g energy (hartree): -74.969075\n", "* Final CASSCF/sto-3g energy (hartree): -74.976643\n", "* Final FCI/sto-3g energy (hartree): -75.015429\n" ] } ], "source": [ "import pyscf\n", "from pyscf import gto, scf, mcscf, fci\n", "\n", "# set up molecule\n", "mol_h2o = gto.M(\n", " atom='O 0 0 0.1192622641;\\\n", " H 0 0.763237638 -0.4770469398;\\\n", " H 0 -0.763237638, -0.4770469398',\n", " basis='sto-3g',\n", " verbose=0\n", ")\n", "\n", "# run HF\n", "scf_h2o = scf.HF(mol_h2o)\n", "hf_h2o = mol_h2o.HF().run()\n", "\n", "# run CASCI and CASSCF single-point calculations\n", "ncas, nelecas = (3, 4)\n", "energy_casci = mcscf.CASCI(hf_h2o, ncas, nelecas).kernel()\n", "energy_casscf = mcscf.CASSCF(hf_h2o, ncas, nelecas).kernel()\n", "\n", "# run FCI single-point calculation\n", "energy_fci = fci.FCI(hf_h2o).kernel()\n", "\n", "print('')\n", "print(f'* Final VQE energy (hartree): {results.optimal_energy:.6f}')\n", "print(f'* Final CASCI/sto-3g energy (hartree): {energy_casci[0]:.6f}')\n", "print(f'* Final CASSCF/sto-3g energy (hartree): {energy_casscf[0]:.6f}')\n", "print(f'* Final FCI/sto-3g energy (hartree): {energy_fci[0]:.6f}')" ] }, { "cell_type": "markdown", "id": "273c287b-67c0-4358-a9b8-ae175e75a0e4", "metadata": {}, "source": [ "As expected, our final VQE energy agrees excelently well with the one obtained with PySCF at CASCI level." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.8" } }, "nbformat": 4, "nbformat_minor": 5 }