From e0cb5bf4637bdccb989f1004604dbe12d24b7e22 Mon Sep 17 00:00:00 2001 From: Ben Corbett <32752943+corbett5@users.noreply.github.com> Date: Sat, 24 Feb 2024 18:12:20 -0800 Subject: [PATCH] Updated README. (#8) --- README.md | 16 +++++++ docs/plot-generators/es.png | Bin 0 -> 37326 bytes docs/plot-generators/plots.ipynb | 36 ++++++++++++++ docs/plot-generators/renormalizer-plots.py | 53 +++++++++++++++++++-- 4 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 docs/plot-generators/es.png diff --git a/README.md b/README.md index b305d1e..863d399 100644 --- a/README.md +++ b/README.md @@ -114,3 +114,19 @@ opCacheVec = [ return MPO_new(os, sites; basisOpCacheVec=opCacheVec) ``` + +## Examples: Electronic Structure Hamiltonian + +After looking at the previous example one might assume that the relative speed of ITensorMPOConstruction over Renormalizer might be due to the fact that for the Fermi-Hubbard Hamiltonian ITensorMPOConstruction is able to construct a much more compact MPO. In the case of the electronic structure Hamiltonian all algorithms produce MPOs of similar bond dimensions. + +![](./docs/plot-generators/es.png) + +However ITensorMPOConstruction is still an order of magnitude faster than Renormalizer. The code for this example can be found in [examples/electronic-structure.jl](https://github.com/ITensor/ITensorMPOConstruction.jl/blob/main/examples/electronic-structure.jl). The run time to generate these MPOs are shown below (again on a 2021 MacBook Pro with the M1 Max CPU and 32GB of memory). + +| $N$ | ITensors | Renormalizer | ITensorMPOConstruction | +|-----|----------|--------------|------------------------| +| 10 | 3.0s | 2.1s | 0.37s | +| 20 | 498s | 61s | 7.1s | +| 30 | N/A | 458s | 46s | +| 40 | N/A | 2250s | 183 | +| 50 | N/A | N/A | 510s | diff --git a/docs/plot-generators/es.png b/docs/plot-generators/es.png new file mode 100644 index 0000000000000000000000000000000000000000..0a713260e238cf216f2c87c166175ba9db7f9095 GIT binary patch literal 37326 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 literal 0 HcmV?d00001 diff --git a/docs/plot-generators/plots.ipynb b/docs/plot-generators/plots.ipynb index 46762b9..6b25773 100644 --- a/docs/plot-generators/plots.ipynb +++ b/docs/plot-generators/plots.ipynb @@ -45,6 +45,42 @@ "plt.legend()\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "numSites = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]\n", + "bondDims = [2, 12, 24, 44, 60, 89, 111, 150, 178, 227, 261, 320, 360, 429, 475, 554, 606, 695, 753, 852, 916, 1025, 1095, 1214, 1290, 1419, 1501, 1640, 1728, 1877]\n", + "plt.plot(numSites, bondDims, label=\"Renormalizer\")\n", + "\n", + "numSites = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]\n", + "bondDims = [1, 12, 13, 43, 50, 89, 96, 150, 158, 227, 236, 320, 330, 429, 440, 554, 566, 695, 708, 852, 866, 1025, 1040, 1214, 1230, 1419, 1436, 1640, 1658, 1877]\n", + "plt.plot(numSites, bondDims, label=\"ITensorMPOConstruction\")\n", + "\n", + "numSites = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]\n", + "bondDims = [1, 12, 14, 43, 50, 89, 96, 150, 158, 227, 236, 320, 330, 429, 440, 554, 566, 695, 708, 852]\n", + "plt.plot(numSites, bondDims, label=\"ITensor\")\n", + "\n", + "plt.title(\"Electronic Structure Hamiltonian\")\n", + "plt.xlabel(\"Number of orbitals\")\n", + "plt.ylabel(\"Maximum bond dimension\")\n", + "plt.legend()\n", + "plt.show()" + ] } ], "metadata": { diff --git a/docs/plot-generators/renormalizer-plots.py b/docs/plot-generators/renormalizer-plots.py index 45b92bc..f93d35e 100644 --- a/docs/plot-generators/renormalizer-plots.py +++ b/docs/plot-generators/renormalizer-plots.py @@ -1,9 +1,10 @@ import numpy as np from timeit import default_timer as timer from renormalizer import Model, Op, BasisSimpleElectron, Mpo +import random -def fermiHubbardKS(N, t, U): +def fermi_hubbard_ks(N, t, U): toSite = lambda k, s: 2 * k + s terms = [] @@ -22,12 +23,58 @@ def fermiHubbardKS(N, t, U): model = Model([BasisSimpleElectron(i) for i in range(2 * N)], terms) return Mpo(model) + +def electronic_structure(N): + toSite = lambda k, s: 2 * k + s + coeff = lambda : random.random() + + terms = [] + for a in range(N): + for b in range(a, N): + factor = coeff() + for spin in (0, 1): + sites = [toSite(a, spin), toSite(b, spin)] + terms.append(Op(r"a^\dagger a", sites, factor)) + + if a != b: + sites = [toSite(b, spin), toSite(a, spin)] + terms.append(Op(r"a^\dagger a", sites, np.conj(factor))) + + for j in range(N): + for s_j in (0, 1): + + for k in range(N): + s_k = s_j + if (s_k, k) <= (s_j, j): + continue + + for l in range(N): + for s_l in (0, 1): + if (s_l, l) <= (s_j, j): + continue + + for m in range(N): + s_m = s_l + if (s_m, m) <= (s_k, k): + continue + + value = coeff() + sites = [toSite(j, s_j), toSite(l, s_l), toSite(m, s_m), toSite(k, s_k)] + terms.append(Op(r"a^\dagger a^\dagger a a", sites, factor)) + + sites = list(reversed(sites)) + terms.append(Op(r"a^\dagger a^\dagger a a", sites, np.conj(factor))) + + model = Model([BasisSimpleElectron(i) for i in range(2 * N)], terms) + return Mpo(model) + + numSites = [] bondDims = [] times = [] -for N in [10, 20, 30, 40, 50]: +for N in [40]: start = timer() - mpo = fermiHubbardKS(N, 1, 4) + mpo = electronic_structure(N) stop = timer() numSites.append(N)