diff --git a/example/LangFirsov.ipynb b/example/LangFirsov.ipynb new file mode 100644 index 00000000..cb350887 --- /dev/null +++ b/example/LangFirsov.ipynb @@ -0,0 +1,604 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from renormalizer.model.model import HolsteinModelLangFirsov, HolsteinModel\n", + "from renormalizer.model import Phonon, Mol\n", + "from renormalizer.utils import constant, Quantity, OptimizeConfig\n", + "from renormalizer.mps import Mpo, Mps, optimize_mps\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-09-07 14:31:29,828[DEBUG] # of operator terms: 16\n", + "2023-09-07 14:31:29,828[DEBUG] symbolic mpo algorithm: Hopcroft-Karp\n", + "2023-09-07 14:31:29,829[DEBUG] Input operator terms: 16\n", + "2023-09-07 14:31:29,833[DEBUG] After combination of the same terms: 16\n", + "2023-09-07 14:31:29,876[INFO] optimization method: 2site\n", + "2023-09-07 14:31:29,877[INFO] e_rtol: 0\n", + "2023-09-07 14:31:29,877[INFO] e_atol: 0\n", + "2023-09-07 14:31:29,877[INFO] procedure: [[10, 0.4], [20, 0.2], [30, 0.1], [40, 0], [40, 0], [50, 0], [50, 0], [100, 0], [100, 0]]\n", + "2023-09-07 14:31:29,884[DEBUG] isweep: 0\n", + "2023-09-07 14:31:29,884[DEBUG] compress config in current loop: 10, percent: 0.4\n", + "2023-09-07 14:31:29,884[DEBUG] mps current size: 57.1KiB, Matrix product bond dim:[1, 2, 10, 10, 10, 10, 10, 5, 5, 1]\n", + "2023-09-07 14:31:29,885[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:29,885[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:29,906[DEBUG] energy: 3.507481569822879\n", + "2023-09-07 14:31:29,908[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:29,957[DEBUG] use davidson, HC hops: 57\n", + "2023-09-07 14:31:29,957[DEBUG] energy: 1.6573093219442752\n", + "2023-09-07 14:31:29,961[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:30,020[DEBUG] use davidson, HC hops: 100\n", + "2023-09-07 14:31:30,021[DEBUG] energy: 1.422355444367188\n", + "2023-09-07 14:31:30,023[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:30,054[DEBUG] use davidson, HC hops: 35\n", + "2023-09-07 14:31:30,055[DEBUG] energy: 1.2779790102837594\n", + "2023-09-07 14:31:30,057[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:30,477[DEBUG] use davidson, HC hops: 68\n", + "2023-09-07 14:31:30,477[DEBUG] energy: 0.09492385836699054\n", + "2023-09-07 14:31:30,487[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:30,490[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:30,490[DEBUG] energy: 0.09492385836666531\n", + "2023-09-07 14:31:30,492[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:30,511[DEBUG] use davidson, HC hops: 37\n", + "2023-09-07 14:31:30,512[DEBUG] energy: -0.13909481437808413\n", + "2023-09-07 14:31:30,514[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:30,546[DEBUG] use davidson, HC hops: 56\n", + "2023-09-07 14:31:30,547[DEBUG] energy: -0.6698226001091723\n", + "2023-09-07 14:31:30,549[DEBUG] 1 sweeps are finished, lowest energy = -0.6698226001091723\n", + "2023-09-07 14:31:30,549[DEBUG] isweep: 1\n", + "2023-09-07 14:31:30,550[DEBUG] compress config in current loop: 20, percent: 0.2\n", + "2023-09-07 14:31:30,550[DEBUG] mps current size: 70.3KiB, Matrix product bond dim:[1, 2, 10, 10, 10, 10, 10, 10, 10, 1]\n", + "2023-09-07 14:31:30,550[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:30,555[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:30,556[DEBUG] energy: -0.6698226001093369\n", + "2023-09-07 14:31:30,563[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:30,566[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:30,567[DEBUG] energy: -0.6698226001094578\n", + "2023-09-07 14:31:30,569[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:30,602[DEBUG] use davidson, HC hops: 29\n", + "2023-09-07 14:31:30,603[DEBUG] energy: -0.6698329008421462\n", + "2023-09-07 14:31:30,606[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:30,630[DEBUG] use davidson, HC hops: 3\n", + "2023-09-07 14:31:30,631[DEBUG] energy: -0.6698329008442857\n", + "2023-09-07 14:31:30,655[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:30,707[DEBUG] use davidson, HC hops: 47\n", + "2023-09-07 14:31:30,707[DEBUG] energy: -0.6859778030404204\n", + "2023-09-07 14:31:30,709[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:30,750[DEBUG] use davidson, HC hops: 47\n", + "2023-09-07 14:31:30,751[DEBUG] energy: -0.7054054588292358\n", + "2023-09-07 14:31:30,753[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:30,758[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:30,758[DEBUG] energy: -0.7054054588295857\n", + "2023-09-07 14:31:30,761[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:30,762[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:30,839[DEBUG] energy: -0.7054054588299385\n", + "2023-09-07 14:31:30,841[DEBUG] 2 sweeps are finished, lowest energy = -0.7054054588299385\n", + "2023-09-07 14:31:30,841[DEBUG] isweep: 2\n", + "2023-09-07 14:31:30,841[DEBUG] compress config in current loop: 30, percent: 0.1\n", + "2023-09-07 14:31:30,842[DEBUG] mps current size: 278.2KiB, Matrix product bond dim:[1, 4, 20, 20, 20, 20, 20, 20, 20, 1]\n", + "2023-09-07 14:31:30,842[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:30,842[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:30,916[DEBUG] energy: -0.7054054588299385\n", + "2023-09-07 14:31:30,919[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:30,923[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:30,924[DEBUG] energy: -0.705405458830137\n", + "2023-09-07 14:31:30,928[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:30,934[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:30,935[DEBUG] energy: -0.7054054588302091\n", + "2023-09-07 14:31:30,940[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:31,008[DEBUG] use davidson, HC hops: 26\n", + "2023-09-07 14:31:31,008[DEBUG] energy: -0.7054071997217255\n", + "2023-09-07 14:31:31,014[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:32,195[DEBUG] use davidson, HC hops: 35\n", + "2023-09-07 14:31:32,195[DEBUG] energy: -0.7054146830351926\n", + "2023-09-07 14:31:32,246[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:32,252[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,253[DEBUG] energy: -0.7054146830354525\n", + "2023-09-07 14:31:32,260[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:32,274[DEBUG] use davidson, HC hops: 6\n", + "2023-09-07 14:31:32,274[DEBUG] energy: -0.705414683098315\n", + "2023-09-07 14:31:32,282[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:32,285[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,286[DEBUG] energy: -0.7054146830986938\n", + "2023-09-07 14:31:32,291[DEBUG] 3 sweeps are finished, lowest energy = -0.7054146830986938\n", + "2023-09-07 14:31:32,291[DEBUG] isweep: 3\n", + "2023-09-07 14:31:32,291[DEBUG] compress config in current loop: 40, percent: 0\n", + "2023-09-07 14:31:32,292[DEBUG] mps current size: 604.7KiB, Matrix product bond dim:[1, 2, 30, 30, 30, 30, 30, 30, 30, 1]\n", + "2023-09-07 14:31:32,292[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:32,296[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,296[DEBUG] energy: -0.7054146830988256\n", + "2023-09-07 14:31:32,307[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:32,313[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,313[DEBUG] energy: -0.7054146830989217\n", + "2023-09-07 14:31:32,319[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:32,330[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,330[DEBUG] energy: -0.7054146830990581\n", + "2023-09-07 14:31:32,343[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:32,489[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,489[DEBUG] energy: -0.7054146830991244\n", + "2023-09-07 14:31:32,591[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:32,603[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,603[DEBUG] energy: -0.7054146830991586\n", + "2023-09-07 14:31:32,611[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:32,623[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,624[DEBUG] energy: -0.7054146830991839\n", + "2023-09-07 14:31:32,634[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:32,641[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,641[DEBUG] energy: -0.705414683099211\n", + "2023-09-07 14:31:32,647[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:32,652[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,653[DEBUG] energy: -0.7054146830992233\n", + "2023-09-07 14:31:32,654[DEBUG] 4 sweeps are finished, lowest energy = -0.7054146830992233\n", + "2023-09-07 14:31:32,655[DEBUG] isweep: 4\n", + "2023-09-07 14:31:32,655[DEBUG] compress config in current loop: 40, percent: 0\n", + "2023-09-07 14:31:32,655[DEBUG] mps current size: 953.2KiB, Matrix product bond dim:[1, 4, 40, 40, 40, 40, 40, 40, 20, 1]\n", + "2023-09-07 14:31:32,656[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:32,658[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:32,658[DEBUG] energy: -0.7054146830992235\n", + "2023-09-07 14:31:32,663[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:32,668[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,668[DEBUG] energy: -0.7054146830992369\n", + "2023-09-07 14:31:32,678[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:32,690[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,691[DEBUG] energy: -0.7054146830992476\n", + "2023-09-07 14:31:32,701[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:32,718[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,719[DEBUG] energy: -0.7054146830992543\n", + "2023-09-07 14:31:32,734[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:32,965[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:32,965[DEBUG] energy: -0.7054146830992898\n", + "2023-09-07 14:31:33,087[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:33,102[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:33,103[DEBUG] energy: -0.7054146830993141\n", + "2023-09-07 14:31:33,119[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:33,127[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:33,127[DEBUG] energy: -0.705414683099346\n", + "2023-09-07 14:31:33,136[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:33,142[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:33,142[DEBUG] energy: -0.7054146830993675\n", + "2023-09-07 14:31:33,149[DEBUG] 5 sweeps are finished, lowest energy = -0.7054146830993675\n", + "2023-09-07 14:31:33,150[DEBUG] isweep: 5\n", + "2023-09-07 14:31:33,150[DEBUG] compress config in current loop: 50, percent: 0\n", + "2023-09-07 14:31:33,150[DEBUG] mps current size: 1.0MiB, Matrix product bond dim:[1, 2, 40, 40, 40, 40, 40, 40, 40, 1]\n", + "2023-09-07 14:31:33,150[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:33,156[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:33,157[DEBUG] energy: -0.7054146830993728\n", + "2023-09-07 14:31:33,172[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:33,177[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,177[DEBUG] energy: -0.7054146830993737\n", + "2023-09-07 14:31:33,186[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:33,202[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:33,203[DEBUG] energy: -0.7054146830993818\n", + "2023-09-07 14:31:33,223[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:33,669[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:33,673[DEBUG] energy: -0.7054146830993864\n", + "2023-09-07 14:31:33,826[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:33,837[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,838[DEBUG] energy: -0.7054146830993873\n", + "2023-09-07 14:31:33,850[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:33,862[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,862[DEBUG] energy: -0.7054146830993866\n", + "2023-09-07 14:31:33,878[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:33,883[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,884[DEBUG] energy: -0.7054146830993869\n", + "2023-09-07 14:31:33,890[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:33,895[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,895[DEBUG] energy: -0.7054146830993873\n", + "2023-09-07 14:31:33,897[DEBUG] 6 sweeps are finished, lowest energy = -0.7054146830993873\n", + "2023-09-07 14:31:33,897[DEBUG] isweep: 6\n", + "2023-09-07 14:31:33,898[DEBUG] compress config in current loop: 50, percent: 0\n", + "2023-09-07 14:31:33,898[DEBUG] mps current size: 1.4MiB, Matrix product bond dim:[1, 4, 50, 50, 50, 50, 50, 50, 20, 1]\n", + "2023-09-07 14:31:33,898[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:33,901[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,901[DEBUG] energy: -0.7054146830993875\n", + "2023-09-07 14:31:33,905[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:33,910[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,910[DEBUG] energy: -0.7054146830993872\n", + "2023-09-07 14:31:33,918[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:33,927[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,927[DEBUG] energy: -0.7054146830993868\n", + "2023-09-07 14:31:33,945[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:33,956[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:33,956[DEBUG] energy: -0.7054146830993874\n", + "2023-09-07 14:31:33,976[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:34,577[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:34,582[DEBUG] energy: -0.7054146830993935\n", + "2023-09-07 14:31:34,810[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:34,827[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:34,828[DEBUG] energy: -0.7054146830993936\n", + "2023-09-07 14:31:34,855[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:34,862[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:34,863[DEBUG] energy: -0.7054146830993933\n", + "2023-09-07 14:31:34,874[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:34,878[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:34,878[DEBUG] energy: -0.7054146830993936\n", + "2023-09-07 14:31:34,886[DEBUG] 7 sweeps are finished, lowest energy = -0.7054146830993936\n", + "2023-09-07 14:31:34,886[DEBUG] isweep: 7\n", + "2023-09-07 14:31:34,887[DEBUG] compress config in current loop: 100, percent: 0\n", + "2023-09-07 14:31:34,887[DEBUG] mps current size: 1.5MiB, Matrix product bond dim:[1, 2, 40, 50, 50, 50, 50, 50, 40, 1]\n", + "2023-09-07 14:31:34,887[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:34,892[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:34,892[DEBUG] energy: -0.7054146830993939\n", + "2023-09-07 14:31:34,899[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:34,905[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:34,905[DEBUG] energy: -0.7054146830993938\n", + "2023-09-07 14:31:34,916[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:34,937[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:34,938[DEBUG] energy: -0.7054146830993936\n", + "2023-09-07 14:31:35,027[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:36,171[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,173[DEBUG] energy: -0.7054146830993937\n", + "2023-09-07 14:31:36,755[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:36,801[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,803[DEBUG] energy: -0.7054146830993919\n", + "2023-09-07 14:31:36,839[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:36,875[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,876[DEBUG] energy: -0.705414683099391\n", + "2023-09-07 14:31:36,910[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:36,920[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,920[DEBUG] energy: -0.7054146830993915\n", + "2023-09-07 14:31:36,933[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:36,947[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,947[DEBUG] energy: -0.7054146830993919\n", + "2023-09-07 14:31:36,949[DEBUG] 8 sweeps are finished, lowest energy = -0.7054146830993939\n", + "2023-09-07 14:31:36,949[DEBUG] isweep: 8\n", + "2023-09-07 14:31:36,949[DEBUG] compress config in current loop: 100, percent: 0\n", + "2023-09-07 14:31:36,950[DEBUG] mps current size: 4.9MiB, Matrix product bond dim:[1, 4, 80, 100, 100, 100, 100, 100, 20, 1]\n", + "2023-09-07 14:31:36,950[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:36,952[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,953[DEBUG] energy: -0.7054146830993919\n", + "2023-09-07 14:31:36,955[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:36,965[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,965[DEBUG] energy: -0.7054146830993913\n", + "2023-09-07 14:31:36,979[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:36,997[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:36,998[DEBUG] energy: -0.705414683099391\n", + "2023-09-07 14:31:37,033[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:37,076[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:37,076[DEBUG] energy: -0.7054146830993929\n", + "2023-09-07 14:31:37,186[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:38,664[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:38,665[DEBUG] energy: -0.7054146830993945\n", + "2023-09-07 14:31:40,164[DEBUG] optimize site: [5, 6]\n", + "2023-09-07 14:31:40,219[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:40,224[DEBUG] energy: -0.7054146830993909\n", + "2023-09-07 14:31:40,323[DEBUG] optimize site: [6, 7]\n", + "2023-09-07 14:31:40,345[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:40,345[DEBUG] energy: -0.7054146830993916\n", + "2023-09-07 14:31:40,390[DEBUG] optimize site: [7, 8]\n", + "2023-09-07 14:31:40,397[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:40,398[DEBUG] energy: -0.7054146830993919\n", + "2023-09-07 14:31:40,427[DEBUG] 9 sweeps are finished, lowest energy = -0.7054146830993945\n", + "2023-09-07 14:31:40,428[WARNING] DMRG did not converge! Please increase the procedure!\n", + "2023-09-07 14:31:40,428[INFO] The lowest two energies: [-0.7054146830993945, -0.7054146830993939].\n", + "2023-09-07 14:31:40,564[INFO] mps current size: 4.3MiB, Matrix product bond dim:[1, 2, 40, 100, 100, 100, 100, 100, 20, 1]\n", + "2023-09-07 14:31:40,565[DEBUG] # of operator terms: 16\n", + "2023-09-07 14:31:40,566[DEBUG] symbolic mpo algorithm: Hopcroft-Karp\n", + "2023-09-07 14:31:40,566[DEBUG] Input operator terms: 16\n", + "2023-09-07 14:31:40,568[DEBUG] After combination of the same terms: 16\n", + "2023-09-07 14:31:40,593[INFO] optimization method: 2site\n", + "2023-09-07 14:31:40,593[INFO] e_rtol: 0\n", + "2023-09-07 14:31:40,593[INFO] e_atol: 0\n", + "2023-09-07 14:31:40,594[INFO] procedure: [[10, 0.4], [20, 0.2], [30, 0.1], [40, 0], [40, 0], [50, 0], [50, 0], [100, 0], [100, 0]]\n", + "2023-09-07 14:31:40,599[DEBUG] isweep: 0\n", + "2023-09-07 14:31:40,600[DEBUG] compress config in current loop: 10, percent: 0.4\n", + "2023-09-07 14:31:40,600[DEBUG] mps current size: 21.9KiB, Matrix product bond dim:[1, 2, 10, 10, 10, 5, 1]\n", + "2023-09-07 14:31:40,601[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:40,601[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:40,613[DEBUG] energy: 1.6705667271163256\n", + "2023-09-07 14:31:40,614[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:40,615[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:40,640[DEBUG] energy: 1.2737951994192542\n", + "2023-09-07 14:31:40,642[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:40,699[DEBUG] use davidson, HC hops: 85\n", + "2023-09-07 14:31:40,700[DEBUG] energy: -0.021160485465452166\n", + "2023-09-07 14:31:40,702[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:40,708[DEBUG] use davidson, HC hops: 9\n", + "2023-09-07 14:31:40,708[DEBUG] energy: -0.021160472079600014\n", + "2023-09-07 14:31:40,710[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:40,711[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:40,724[DEBUG] energy: -0.6924010529836083\n", + "2023-09-07 14:31:40,725[DEBUG] 1 sweeps are finished, lowest energy = -0.6924010529836083\n", + "2023-09-07 14:31:40,725[DEBUG] isweep: 1\n", + "2023-09-07 14:31:40,726[DEBUG] compress config in current loop: 20, percent: 0.2\n", + "2023-09-07 14:31:40,726[DEBUG] mps current size: 23.5KiB, Matrix product bond dim:[1, 2, 10, 10, 10, 10, 1]\n", + "2023-09-07 14:31:40,727[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:40,727[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:40,740[DEBUG] energy: -0.6924010529836083\n", + "2023-09-07 14:31:40,742[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:40,776[DEBUG] use davidson, HC hops: 35\n", + "2023-09-07 14:31:40,777[DEBUG] energy: -0.6924124762337605\n", + "2023-09-07 14:31:40,780[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:40,791[DEBUG] use davidson, HC hops: 12\n", + "2023-09-07 14:31:40,792[DEBUG] energy: -0.6924125012035853\n", + "2023-09-07 14:31:40,795[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:40,816[DEBUG] use davidson, HC hops: 44\n", + "2023-09-07 14:31:40,817[DEBUG] energy: -0.7054706277999374\n", + "2023-09-07 14:31:40,818[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:40,819[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:40,856[DEBUG] energy: -0.7054706278007504\n", + "2023-09-07 14:31:40,858[DEBUG] 2 sweeps are finished, lowest energy = -0.7054706278007504\n", + "2023-09-07 14:31:40,858[DEBUG] isweep: 2\n", + "2023-09-07 14:31:40,858[DEBUG] compress config in current loop: 30, percent: 0.1\n", + "2023-09-07 14:31:40,859[DEBUG] mps current size: 90.7KiB, Matrix product bond dim:[1, 4, 20, 20, 20, 20, 1]\n", + "2023-09-07 14:31:40,859[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:40,859[DEBUG] use direct eigensolver\n", + "2023-09-07 14:31:40,897[DEBUG] energy: -0.7054706278007504\n", + "2023-09-07 14:31:40,900[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:40,902[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:40,902[DEBUG] energy: -0.7054706278007684\n", + "2023-09-07 14:31:40,904[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:40,969[DEBUG] use davidson, HC hops: 31\n", + "2023-09-07 14:31:40,970[DEBUG] energy: -0.7054727510676819\n", + "2023-09-07 14:31:40,975[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:40,980[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:40,980[DEBUG] energy: -0.7054727510680936\n", + "2023-09-07 14:31:40,986[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:40,989[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:40,989[DEBUG] energy: -0.7054727510683434\n", + "2023-09-07 14:31:40,991[DEBUG] 3 sweeps are finished, lowest energy = -0.7054727510683434\n", + "2023-09-07 14:31:40,991[DEBUG] isweep: 3\n", + "2023-09-07 14:31:40,991[DEBUG] compress config in current loop: 40, percent: 0\n", + "2023-09-07 14:31:40,992[DEBUG] mps current size: 182.8KiB, Matrix product bond dim:[1, 2, 30, 30, 30, 30, 1]\n", + "2023-09-07 14:31:40,992[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:40,995[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:40,995[DEBUG] energy: -0.7054727510684763\n", + "2023-09-07 14:31:40,997[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:41,005[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,005[DEBUG] energy: -0.7054727510686271\n", + "2023-09-07 14:31:41,010[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:41,020[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,021[DEBUG] energy: -0.7054727510687108\n", + "2023-09-07 14:31:41,030[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:41,033[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,034[DEBUG] energy: -0.7054727510687906\n", + "2023-09-07 14:31:41,036[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:41,038[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,038[DEBUG] energy: -0.7054727510688598\n", + "2023-09-07 14:31:41,040[DEBUG] 4 sweeps are finished, lowest energy = -0.7054727510688598\n", + "2023-09-07 14:31:41,040[DEBUG] isweep: 4\n", + "2023-09-07 14:31:41,040[DEBUG] compress config in current loop: 40, percent: 0\n", + "2023-09-07 14:31:41,041[DEBUG] mps current size: 315.7KiB, Matrix product bond dim:[1, 4, 40, 40, 40, 20, 1]\n", + "2023-09-07 14:31:41,041[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:41,043[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,044[DEBUG] energy: -0.7054727510688984\n", + "2023-09-07 14:31:41,046[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:41,048[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,049[DEBUG] energy: -0.7054727510689378\n", + "2023-09-07 14:31:41,051[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:41,063[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,063[DEBUG] energy: -0.705472751068976\n", + "2023-09-07 14:31:41,074[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:41,081[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,082[DEBUG] energy: -0.7054727510690031\n", + "2023-09-07 14:31:41,087[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:41,092[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,093[DEBUG] energy: -0.7054727510690364\n", + "2023-09-07 14:31:41,095[DEBUG] 5 sweeps are finished, lowest energy = -0.7054727510690364\n", + "2023-09-07 14:31:41,095[DEBUG] isweep: 5\n", + "2023-09-07 14:31:41,095[DEBUG] compress config in current loop: 50, percent: 0\n", + "2023-09-07 14:31:41,096[DEBUG] mps current size: 318.8KiB, Matrix product bond dim:[1, 2, 40, 40, 40, 40, 1]\n", + "2023-09-07 14:31:41,096[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:41,099[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,099[DEBUG] energy: -0.7054727510690574\n", + "2023-09-07 14:31:41,102[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:41,109[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,109[DEBUG] energy: -0.7054727510690758\n", + "2023-09-07 14:31:41,115[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:41,127[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,128[DEBUG] energy: -0.7054727510690881\n", + "2023-09-07 14:31:41,139[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:41,146[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,146[DEBUG] energy: -0.7054727510691021\n", + "2023-09-07 14:31:41,148[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:41,151[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,151[DEBUG] energy: -0.7054727510691129\n", + "2023-09-07 14:31:41,153[DEBUG] 6 sweeps are finished, lowest energy = -0.7054727510691129\n", + "2023-09-07 14:31:41,153[DEBUG] isweep: 6\n", + "2023-09-07 14:31:41,153[DEBUG] compress config in current loop: 50, percent: 0\n", + "2023-09-07 14:31:41,154[DEBUG] mps current size: 398.5KiB, Matrix product bond dim:[1, 4, 50, 50, 40, 20, 1]\n", + "2023-09-07 14:31:41,154[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:41,158[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,158[DEBUG] energy: -0.7054727510691201\n", + "2023-09-07 14:31:41,160[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:41,163[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,163[DEBUG] energy: -0.7054727510691277\n", + "2023-09-07 14:31:41,165[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:41,175[DEBUG] use davidson, HC hops: 2\n", + "2023-09-07 14:31:41,175[DEBUG] energy: -0.7054727510691339\n", + "2023-09-07 14:31:41,185[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:41,191[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,192[DEBUG] energy: -0.7054727510691332\n", + "2023-09-07 14:31:41,199[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:41,204[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,204[DEBUG] energy: -0.705472751069133\n", + "2023-09-07 14:31:41,206[DEBUG] 7 sweeps are finished, lowest energy = -0.7054727510691339\n", + "2023-09-07 14:31:41,206[DEBUG] isweep: 7\n", + "2023-09-07 14:31:41,207[DEBUG] compress config in current loop: 100, percent: 0\n", + "2023-09-07 14:31:41,207[DEBUG] mps current size: 481.3KiB, Matrix product bond dim:[1, 2, 40, 50, 50, 50, 1]\n", + "2023-09-07 14:31:41,207[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:41,210[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,210[DEBUG] energy: -0.705472751069133\n", + "2023-09-07 14:31:41,212[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:41,217[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,217[DEBUG] energy: -0.7054727510691328\n", + "2023-09-07 14:31:41,224[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:41,232[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,232[DEBUG] energy: -0.7054727510691325\n", + "2023-09-07 14:31:41,253[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:41,260[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,261[DEBUG] energy: -0.7054727510691332\n", + "2023-09-07 14:31:41,264[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:41,267[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,267[DEBUG] energy: -0.7054727510691322\n", + "2023-09-07 14:31:41,269[DEBUG] 8 sweeps are finished, lowest energy = -0.7054727510691339\n", + "2023-09-07 14:31:41,269[DEBUG] isweep: 8\n", + "2023-09-07 14:31:41,270[DEBUG] compress config in current loop: 100, percent: 0\n", + "2023-09-07 14:31:41,270[DEBUG] mps current size: 815.7KiB, Matrix product bond dim:[1, 4, 80, 100, 40, 20, 1]\n", + "2023-09-07 14:31:41,270[DEBUG] optimize site: [0, 1]\n", + "2023-09-07 14:31:41,272[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,273[DEBUG] energy: -0.7054727510691324\n", + "2023-09-07 14:31:41,274[DEBUG] optimize site: [1, 2]\n", + "2023-09-07 14:31:41,277[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,277[DEBUG] energy: -0.705472751069133\n", + "2023-09-07 14:31:41,283[DEBUG] optimize site: [2, 3]\n", + "2023-09-07 14:31:41,289[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,289[DEBUG] energy: -0.7054727510691328\n", + "2023-09-07 14:31:41,301[DEBUG] optimize site: [3, 4]\n", + "2023-09-07 14:31:41,307[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,307[DEBUG] energy: -0.7054727510691325\n", + "2023-09-07 14:31:41,316[DEBUG] optimize site: [4, 5]\n", + "2023-09-07 14:31:41,323[DEBUG] use davidson, HC hops: 1\n", + "2023-09-07 14:31:41,323[DEBUG] energy: -0.7054727510691323\n", + "2023-09-07 14:31:41,326[DEBUG] 9 sweeps are finished, lowest energy = -0.7054727510691339\n", + "2023-09-07 14:31:41,326[WARNING] DMRG did not converge! Please increase the procedure!\n", + "2023-09-07 14:31:41,326[INFO] The lowest two energies: [-0.7054727510691339, -0.7054727510691332].\n", + "2023-09-07 14:31:41,343[INFO] mps current size: 440.7KiB, Matrix product bond dim:[1, 2, 40, 60, 40, 20, 1]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-0.6698226001091723, -0.7054054588299385, -0.7054146830986938, -0.7054146830992233, -0.7054146830993675, -0.7054146830993873, -0.7054146830993936, -0.7054146830993939, -0.7054146830993945]\n", + "[-0.6924010529836083, -0.7054706278007504, -0.7054727510683434, -0.7054727510688598, -0.7054727510690364, -0.7054727510691129, -0.7054727510691339, -0.7054727510691332, -0.705472751069133]\n" + ] + } + ], + "source": [ + "procedure = [[10, 0.4], [20, 0.2], [30, 0.1], [40, 0], [40, 0], [50, 0], [50, 0], [100, 0], [100, 0]]\n", + "optimize_config = OptimizeConfig(procedure=procedure)\n", + "optimize_config.e_rtol = 0\n", + "optimize_config.e_atol = 0\n", + "\n", + "elocalex = Quantity(0, \"eV\")\n", + "dipole_abs = 1\n", + "nmols = 3\n", + "\n", + "_j_matrix = (\n", + " np.array([[0.0, 1.0, 0], [1.0, 0.0, 1.0], [0, 1.0, 0.0]])\n", + ")\n", + "\n", + "w = 0.1\n", + "omega_quantities = [Quantity(w)]\n", + "omega = [\n", + " [omega_quantities[0], omega_quantities[0]]\n", + "]\n", + "\n", + "HR = 10\n", + "\n", + "displacement_quantities = [Quantity(np.sqrt(2*HR/w))]\n", + "displacement = [\n", + " [Quantity(0), displacement_quantities[0]]]\n", + "ph_phys_dim = [20]\n", + "ph_list = [Phonon(*args) for args in zip(omega, displacement, ph_phys_dim)]\n", + "\n", + "holstein_lf_model = HolsteinModelLangFirsov([Mol(elocalex, ph_list, dipole_abs)] * nmols, _j_matrix, )\n", + "lf_mpo = Mpo(holstein_lf_model)\n", + "mps_lf_holstein = Mps.random(holstein_lf_model, 1, 10)\n", + "mps_lf_holstein.optimize_config = optimize_config\n", + "\n", + "energy_lf, mps_lf_holstein = optimize_mps(mps_lf_holstein, lf_mpo)\n", + "\n", + "holstein_model = HolsteinModel([Mol(elocalex, ph_list, dipole_abs)] * nmols, _j_matrix, )\n", + "mpo = Mpo(holstein_model)\n", + "mps_holstein = Mps.random(holstein_model, 1, 10)\n", + "mps_holstein.optimize_config = optimize_config\n", + "energy, mps_holstein = optimize_mps(mps_holstein, mpo)\n", + "\n", + "print(energy_lf)\n", + "print(energy)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 32, + "outputs": [ + { + "data": { + "text/plain": "Text(0.5, 1.0, '3-site Holstein, $\\\\omega=0.1, J=1$, Huang-Rhys$=10$')" + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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+qN41H031H6W11H6/i84XQghEBERUaq/2H///Yf/+7//07zPysrClStX8NJLL5XZTllfeOV58IuwhIeHR5njBqWkpABApc+C6iMiIgKurq5wdXUtc74h9remKK/zd1lnsd5++22sXLkSEyZMQHBwMBwdHSFJEgYMGKA5tu9nqOP0yJEj5f4dKnF/Afn888/j8ccfx8CBAxETEwM7O7tHyhUaGorx48cjMTERBQUF+O+///DNN99oLaPv34LqPHZq0u9UTcWCiqpUyWngrKysMk9P338a2sPDA2PGjMGYMWOQlpaGtm3bYu7cueUWFeX98XZxcYG9vT1UKlW1/OvNxcUFNjY2iImJKTXvwoULUCgUFXbWfNi+15T9rEhOTg7u3Lmj9TM9c+YMkpKS4OTkpJm2Z88eqFQq9OzZs8x2yvrCK8+DX4QlgoKCsG/fvlKXLY8dO6aZX10iIiIeWtgaYn9rijp16pR5V++1a9dKTdu4cSOGDBmCRYsWaabduXPnkcZbc3V1hZWVFS5fvlxq3oPTKvo79CClUon58+fjqaeewjfffIMpU6bonQ8ABgwYgPfeew+//vor8vPzYW5uXuYNO/r8HazOY6cm/U7VVCyoyCDS0tJK/Qu8sLAQP//8M6ytreHn5wc7O7syv/hVKhVyc3Ph6Oiomebq6gpPT88yTzGXsLW1BYBSf4CVSiVeeuklrFu3DpGRkaVGck5PTzfInT/3b69nz57YunUr4uLiNH+0rl+/jnXr1uHxxx8v99KZLvteU/azIiWXRJKTkzXTlixZAldXV81lIZVKhc8//xwODg54+eWXy2zHEP1CXn75ZXz++edYtmyZZniGgoICrFy5Ep06ddIqcPPy8hAfH4969epp7qI0lFu3biEpKemhYxcZQx8qXTVt2hRZWVk4d+6cpohMSUkpc8gApVJZ6izO119//Uh9spRKJXr06IE//vhDq//R5cuXsWPHDq1lH+UyWbdu3dCxY0csWbIEEyZM0PQb0ke9evU0g4TeuXMHvXv31jreHuXvYHUeO/r8TtVWLKjIIN58801kZ2fjySefRP369ZGamoq1a9fiwoULWLRoUanT5PfLyclBgwYN8PLLL6N169aws7PD7t27ceLECa1/vT6opJ/ORx99hAEDBsDc3BzPPfccbG1t8emnn2Lfvn3o1KkTRo0aBT8/P2Rk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LLTOhgFA27ZtERUVhUaNGqFZs2ZaL1tb20fORVRVWFARmaj4+Hi89957iImJwa+//oqvv/4a48ePBwA0b94c//d//4dRo0bh0KFDOHv2LAYNGoT69evj//7v/wAAEyZMwK5duxAbG4vTp09j3759mi/7MWPGICEhAW+//TYuXLiArVu3YsaMGXjvvfeqfYiA5s2bIz4+HuvXr8eVK1fw1Vdflfri/vvvv7FixQqsXbsWzzzzDCZNmoQhQ4bodRlKl89MX7Nnz8aePXsQGRmJoUOHol69enoNeDlp0iQsWLAAv/32G2JiYjBlyhSEh4drfs66mDhxIvbs2YM5c+bg4sWLWL16Nb755hu8//77j7BHxY4dO4Z58+bh5MmTiI+Px+bNm5Genl5usdioUSMcO3YMcXFxuHHjBtRqNcaOHYuMjAy8/vrrOHHiBK5cuYJdu3Zh2LBhpYovopqABRWRiQoNDUV+fj46duyIsWPHYvz48XjjjTc081euXIl27drh2WefRXBwMIQQ2L59u+bSjkqlwtixY+Hr64vevXujRYsW+O677wAA9evXx/bt23H8+HG0bt0ao0ePxogRIzBt2rRq38/+/fvj3Xffxbhx4xAUFIQjR45g+vTpmvnp6ekYMWIEZs6cibZt2wIAZs2aBTc3N4wePVqvbVX0menr008/xfjx49GuXTukpqbir7/+goWFhc7rv/POO3jvvfcwceJEBAYGYufOnfjzzz/16h/Wtm1b/P7771i/fj0CAgLw8ccfY/bs2Rg6dOgj7FExBwcHHDx4EH379kWLFi0wbdo0LFq0CH369Clz+ffffx9KpRJ+fn5wcXFBfHy85uybSqVCz549ERgYiAkTJsDJyYnjelGNJIlHuSBPRESPbP/+/Xjqqadw69Ytk328DFFtwzKfiIiIqJJYUBERERFVEi/5EREREVUSz1ARERERVRILKiIiIqJKYkFFREREVEksqIiIiIgqiQUVERERUSWxoCIiIiKqJBZURERERJXEgoqIiIioklhQEREREVXS/wPsB1qq4YzMqQAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pdim = [10, 20, 40, 60, 80]\n", + "e = np.array(\n", + " [[-0.7001757941034783, -0.7002324512079512],\n", + " [-0.7054146830992755, -0.705472751068564],\n", + " [-0.7054155636098844, -0.7054736322708557],\n", + " [-0.7054155636097657, -0.7054736322708519],\n", + " [-0.7054155636098376, -0.7054736322711038]]\n", + ")\n", + "\n", + "import matplotlib.pyplot as plt\n", + "plt.plot(pdim, e[:, 0], 'o-', label='Lang-Firsov')\n", + "plt.plot(pdim, e[:, 1], 'X-', label='Holstein')\n", + "plt.legend()\n", + "plt.xlabel(\"boson max for phonon site\")\n", + "plt.ylabel(\"1-exciton ground state energy\")\n", + "plt.title(r'3-site Holstein, $\\omega=0.1, J=1$, Huang-Rhys$=10$')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}