Created
May 17, 2022 11:18
-
-
Save foxqstm/57f693de9c6cf900b1c8b48f2aa2345d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"id": "8670c6c9", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"190\n", | |
"(0, 1)\n", | |
"Emb -40.49338713790425\n", | |
"EmbO -20.493387137904172\n", | |
"(0, 2)\n", | |
"Emb -40.451522578908104\n", | |
"EmbO -20.451522578908047\n", | |
"(0, 3)\n", | |
"Emb -40.332560790995785\n", | |
"EmbO -20.3325607909957\n", | |
"(0, 4)\n", | |
"Emb -40.3196294350776\n", | |
"EmbO -20.319629435077655\n", | |
"(0, 5)\n", | |
"Emb -40.243506204939266\n", | |
"EmbO -20.243506204939223\n", | |
"(0, 6)\n", | |
"Emb -40.06719161359707\n", | |
"EmbO -20.067191613596954\n", | |
"(0, 7)\n", | |
"Emb -40.033070283381306\n", | |
"EmbO -20.03307028338122\n", | |
"(0, 8)\n", | |
"Emb -39.9747144181317\n", | |
"EmbO -19.974714418131676\n", | |
"(0, 9)\n", | |
"Emb -39.900097809824665\n", | |
"EmbO -19.900097809824604\n", | |
"(0, 10)\n", | |
"Emb -39.76954484872376\n", | |
"EmbO -19.769544848723648\n", | |
"(0, 11)\n", | |
"Emb -39.18954647477006\n", | |
"EmbO -19.189546474770047\n", | |
"(0, 12)\n", | |
"Emb -39.172891029955274\n", | |
"EmbO -19.172891029955217\n", | |
"(0, 13)\n", | |
"Emb -39.084629875815494\n", | |
"EmbO -19.084629875815406\n", | |
"(0, 14)\n", | |
"Emb -39.05301396180111\n", | |
"EmbO -19.053013961801188\n", | |
"(0, 15)\n", | |
"Emb -38.99870685840591\n", | |
"EmbO -18.99870685840598\n", | |
"(0, 16)\n", | |
"Emb -38.97632154728909\n", | |
"EmbO -18.976321547289146\n", | |
"(0, 17)\n", | |
"Emb -38.950520035552\n", | |
"EmbO -18.95052003555201\n", | |
"(0, 18)\n", | |
"Emb -38.894631398337125\n", | |
"EmbO -18.894631398337093\n", | |
"(0, 19)\n", | |
"Emb -38.885180043911376\n", | |
"EmbO -18.885180043911284\n", | |
"(1, 2)\n", | |
"Emb -39.052630448239036\n", | |
"EmbO -19.052630448238986\n", | |
"(1, 3)\n", | |
"Emb -38.93366866032672\n", | |
"EmbO -18.933668660326642\n", | |
"(1, 4)\n", | |
"Emb -38.92073730440853\n", | |
"EmbO -18.920737304408597\n", | |
"(1, 5)\n", | |
"Emb -38.8446140742702\n", | |
"EmbO -18.84461407427016\n", | |
"(1, 6)\n", | |
"Emb -38.668299482928\n", | |
"EmbO -18.668299482927896\n", | |
"(1, 7)\n", | |
"Emb -38.63417815271224\n", | |
"EmbO -18.634178152712163\n", | |
"(1, 8)\n", | |
"Emb -38.57582228746263\n", | |
"EmbO -18.575822287462614\n", | |
"(1, 9)\n", | |
"Emb -38.501205679155596\n", | |
"EmbO -18.501205679155547\n", | |
"(1, 10)\n", | |
"Emb -38.37065271805469\n", | |
"EmbO -18.370652718054593\n", | |
"(1, 11)\n", | |
"Emb -37.79065434410099\n", | |
"EmbO -17.790654344100993\n", | |
"(1, 12)\n", | |
"Emb -37.773998899286205\n", | |
"EmbO -17.773998899286163\n", | |
"(1, 13)\n", | |
"Emb -37.685737745146426\n", | |
"EmbO -17.685737745146348\n", | |
"(1, 14)\n", | |
"Emb -37.654121831132045\n", | |
"EmbO -17.65412183113213\n", | |
"(1, 15)\n", | |
"Emb -37.59981472773684\n", | |
"EmbO -17.599814727736927\n", | |
"(1, 16)\n", | |
"Emb -37.57742941662002\n", | |
"EmbO -17.577429416620085\n", | |
"(1, 17)\n", | |
"Emb -37.551627904882935\n", | |
"EmbO -17.551627904882952\n", | |
"(1, 18)\n", | |
"Emb -37.49573926766806\n", | |
"EmbO -17.495739267668036\n", | |
"(1, 19)\n", | |
"Emb -37.48628791324231\n", | |
"EmbO -17.486287913242226\n", | |
"(2, 3)\n", | |
"Emb -38.89180410133057\n", | |
"EmbO -18.891804101330514\n", | |
"(2, 4)\n", | |
"Emb -38.878872745412394\n", | |
"EmbO -18.878872745412473\n", | |
"(2, 5)\n", | |
"Emb -38.80274951527406\n", | |
"EmbO -18.802749515274037\n", | |
"(2, 6)\n", | |
"Emb -38.62643492393185\n", | |
"EmbO -18.626434923931768\n", | |
"(2, 7)\n", | |
"Emb -38.59231359371609\n", | |
"EmbO -18.592313593716035\n", | |
"(2, 8)\n", | |
"Emb -38.53395772846648\n", | |
"EmbO -18.53395772846649\n", | |
"(2, 9)\n", | |
"Emb -38.45934112015945\n", | |
"EmbO -18.459341120159422\n", | |
"(2, 10)\n", | |
"Emb -38.32878815905855\n", | |
"EmbO -18.328788159058465\n", | |
"(2, 11)\n", | |
"Emb -37.74878978510485\n", | |
"EmbO -17.748789785104865\n", | |
"(2, 12)\n", | |
"Emb -37.73213434029006\n", | |
"EmbO -17.732134340290035\n", | |
"(2, 13)\n", | |
"Emb -37.64387318615028\n", | |
"EmbO -17.643873186150223\n", | |
"(2, 14)\n", | |
"Emb -37.612257272135906\n", | |
"EmbO -17.612257272136006\n", | |
"(2, 15)\n", | |
"Emb -37.557950168740696\n", | |
"EmbO -17.5579501687408\n", | |
"(2, 16)\n", | |
"Emb -37.535564857623875\n", | |
"EmbO -17.53556485762396\n", | |
"(2, 17)\n", | |
"Emb -37.50976334588678\n", | |
"EmbO -17.509763345886824\n", | |
"(2, 18)\n", | |
"Emb -37.45387470867191\n", | |
"EmbO -17.45387470867191\n", | |
"(2, 19)\n", | |
"Emb -37.44442335424617\n", | |
"EmbO -17.4444233542461\n", | |
"(3, 4)\n", | |
"Emb -38.75991095750007\n", | |
"EmbO -18.759910957500125\n", | |
"(3, 5)\n", | |
"Emb -38.68378772736173\n", | |
"EmbO -18.68378772736169\n", | |
"(3, 6)\n", | |
"Emb -38.507473136019534\n", | |
"EmbO -18.507473136019424\n", | |
"(3, 7)\n", | |
"Emb -38.47335180580377\n", | |
"EmbO -18.47335180580369\n", | |
"(3, 8)\n", | |
"Emb -38.414995940554164\n", | |
"EmbO -18.414995940554142\n", | |
"(3, 9)\n", | |
"Emb -38.34037933224713\n", | |
"EmbO -18.340379332247075\n", | |
"(3, 10)\n", | |
"Emb -38.20982637114623\n", | |
"EmbO -18.20982637114612\n", | |
"(3, 11)\n", | |
"Emb -37.62982799719253\n", | |
"EmbO -17.62982799719252\n", | |
"(3, 12)\n", | |
"Emb -37.61317255237774\n", | |
"EmbO -17.61317255237769\n", | |
"(3, 13)\n", | |
"Emb -37.52491139823796\n", | |
"EmbO -17.524911398237876\n", | |
"(3, 14)\n", | |
"Emb -37.49329548422358\n", | |
"EmbO -17.49329548422366\n", | |
"(3, 15)\n", | |
"Emb -37.43898838082838\n", | |
"EmbO -17.438988380828455\n", | |
"(3, 16)\n", | |
"Emb -37.416603069711556\n", | |
"EmbO -17.416603069711613\n", | |
"(3, 17)\n", | |
"Emb -37.39080155797447\n", | |
"EmbO -17.39080155797448\n", | |
"(3, 18)\n", | |
"Emb -37.33491292075959\n", | |
"EmbO -17.334912920759564\n", | |
"(3, 19)\n", | |
"Emb -37.32546156633384\n", | |
"EmbO -17.325461566333754\n", | |
"(4, 5)\n", | |
"Emb -38.670856371443556\n", | |
"EmbO -18.670856371443648\n", | |
"(4, 6)\n", | |
"Emb -38.49454178010136\n", | |
"EmbO -18.49454178010138\n", | |
"(4, 7)\n", | |
"Emb -38.46042044988559\n", | |
"EmbO -18.460420449885646\n", | |
"(4, 8)\n", | |
"Emb -38.40206458463598\n", | |
"EmbO -18.4020645846361\n", | |
"(4, 9)\n", | |
"Emb -38.327447976328955\n", | |
"EmbO -18.32744797632903\n", | |
"(4, 10)\n", | |
"Emb -38.19689501522805\n", | |
"EmbO -18.196895015228073\n", | |
"(4, 11)\n", | |
"Emb -37.61689664127435\n", | |
"EmbO -17.616896641274472\n", | |
"(4, 12)\n", | |
"Emb -37.600241196459564\n", | |
"EmbO -17.600241196459642\n", | |
"(4, 13)\n", | |
"Emb -37.51198004231978\n", | |
"EmbO -17.51198004231983\n", | |
"(4, 14)\n", | |
"Emb -37.4803641283054\n", | |
"EmbO -17.480364128305613\n", | |
"(4, 15)\n", | |
"Emb -37.42605702491019\n", | |
"EmbO -17.426057024910406\n", | |
"(4, 16)\n", | |
"Emb -37.40367171379337\n", | |
"EmbO -17.40367171379357\n", | |
"(4, 17)\n", | |
"Emb -37.377870202056286\n", | |
"EmbO -17.377870202056435\n", | |
"(4, 18)\n", | |
"Emb -37.32198156484141\n", | |
"EmbO -17.32198156484152\n", | |
"(4, 19)\n", | |
"Emb -37.312530210415666\n", | |
"EmbO -17.31253021041571\n", | |
"(5, 6)\n", | |
"Emb -38.41841854996302\n", | |
"EmbO -18.418418549962944\n", | |
"(5, 7)\n", | |
"Emb -38.38429721974725\n", | |
"EmbO -18.38429721974721\n", | |
"(5, 8)\n", | |
"Emb -38.325941354497644\n", | |
"EmbO -18.325941354497665\n", | |
"(5, 9)\n", | |
"Emb -38.25132474619062\n", | |
"EmbO -18.251324746190598\n", | |
"(5, 10)\n", | |
"Emb -38.120771785089715\n", | |
"EmbO -18.12077178508964\n", | |
"(5, 11)\n", | |
"Emb -37.540773411136016\n", | |
"EmbO -17.54077341113604\n", | |
"(5, 12)\n", | |
"Emb -37.52411796632123\n", | |
"EmbO -17.52411796632121\n", | |
"(5, 13)\n", | |
"Emb -37.43585681218144\n", | |
"EmbO -17.4358568121814\n", | |
"(5, 14)\n", | |
"Emb -37.40424089816707\n", | |
"EmbO -17.40424089816718\n", | |
"(5, 15)\n", | |
"Emb -37.34993379477186\n", | |
"EmbO -17.349933794771975\n", | |
"(5, 16)\n", | |
"Emb -37.327548483655036\n", | |
"EmbO -17.327548483655136\n", | |
"(5, 17)\n", | |
"Emb -37.30174697191795\n", | |
"EmbO -17.301746971918\n", | |
"(5, 18)\n", | |
"Emb -37.24585833470307\n", | |
"EmbO -17.245858334703087\n", | |
"(5, 19)\n", | |
"Emb -37.23640698027733\n", | |
"EmbO -17.236406980277277\n", | |
"(6, 7)\n", | |
"Emb -38.207982628405055\n", | |
"EmbO -18.207982628404945\n", | |
"(6, 8)\n", | |
"Emb -38.149626763155446\n", | |
"EmbO -18.149626763155396\n", | |
"(6, 9)\n", | |
"Emb -38.075010154848414\n", | |
"EmbO -18.07501015484833\n", | |
"(6, 10)\n", | |
"Emb -37.94445719374751\n", | |
"EmbO -17.944457193747375\n", | |
"(6, 11)\n", | |
"Emb -37.36445881979381\n", | |
"EmbO -17.364458819793775\n", | |
"(6, 12)\n", | |
"Emb -37.34780337497902\n", | |
"EmbO -17.347803374978945\n", | |
"(6, 13)\n", | |
"Emb -37.25954222083924\n", | |
"EmbO -17.25954222083913\n", | |
"(6, 14)\n", | |
"Emb -37.22792630682487\n", | |
"EmbO -17.227926306824912\n", | |
"(6, 15)\n", | |
"Emb -37.17361920342966\n", | |
"EmbO -17.17361920342971\n", | |
"(6, 16)\n", | |
"Emb -37.15123389231284\n", | |
"EmbO -17.151233892312867\n", | |
"(6, 17)\n", | |
"Emb -37.125432380575745\n", | |
"EmbO -17.125432380575734\n", | |
"(6, 18)\n", | |
"Emb -37.069543743360875\n", | |
"EmbO -17.069543743360818\n", | |
"(6, 19)\n", | |
"Emb -37.06009238893513\n", | |
"EmbO -17.060092388935008\n", | |
"(7, 8)\n", | |
"Emb -38.115505432939685\n", | |
"EmbO -18.115505432939663\n", | |
"(7, 9)\n", | |
"Emb -38.04088882463265\n", | |
"EmbO -18.040888824632596\n", | |
"(7, 10)\n", | |
"Emb -37.91033586353175\n", | |
"EmbO -17.910335863531643\n", | |
"(7, 11)\n", | |
"Emb -37.33033748957805\n", | |
"EmbO -17.330337489578042\n", | |
"(7, 12)\n", | |
"Emb -37.31368204476326\n", | |
"EmbO -17.313682044763212\n", | |
"(7, 13)\n", | |
"Emb -37.22542089062348\n", | |
"EmbO -17.225420890623397\n", | |
"(7, 14)\n", | |
"Emb -37.1938049766091\n", | |
"EmbO -17.19380497660918\n", | |
"(7, 15)\n", | |
"Emb -37.1394978732139\n", | |
"EmbO -17.139497873213976\n", | |
"(7, 16)\n", | |
"Emb -37.11711256209708\n", | |
"EmbO -17.117112562097134\n", | |
"(7, 17)\n", | |
"Emb -37.09131105035999\n", | |
"EmbO -17.09131105036\n", | |
"(7, 18)\n", | |
"Emb -37.03542241314511\n", | |
"EmbO -17.035422413145085\n", | |
"(7, 19)\n", | |
"Emb -37.025971058719364\n", | |
"EmbO -17.025971058719275\n", | |
"(8, 9)\n", | |
"Emb -37.98253295938304\n", | |
"EmbO -17.98253295938305\n", | |
"(8, 10)\n", | |
"Emb -37.85197999828214\n", | |
"EmbO -17.851979998282093\n", | |
"(8, 11)\n", | |
"Emb -37.27198162432844\n", | |
"EmbO -17.271981624328493\n", | |
"(8, 12)\n", | |
"Emb -37.25532617951365\n", | |
"EmbO -17.255326179513663\n", | |
"(8, 13)\n", | |
"Emb -37.16706502537387\n", | |
"EmbO -17.16706502537385\n", | |
"(8, 14)\n", | |
"Emb -37.13544911135949\n", | |
"EmbO -17.135449111359634\n", | |
"(8, 15)\n", | |
"Emb -37.08114200796429\n", | |
"EmbO -17.081142007964427\n", | |
"(8, 16)\n", | |
"Emb -37.05875669684747\n", | |
"EmbO -17.05875669684759\n", | |
"(8, 17)\n", | |
"Emb -37.03295518511038\n", | |
"EmbO -17.032955185110453\n", | |
"(8, 18)\n", | |
"Emb -36.977066547895504\n", | |
"EmbO -16.97706654789554\n", | |
"(8, 19)\n", | |
"Emb -36.967615193469754\n", | |
"EmbO -16.96761519346973\n", | |
"(9, 10)\n", | |
"Emb -37.77736338997511\n", | |
"EmbO -17.777363389975022\n", | |
"(9, 11)\n", | |
"Emb -37.19736501602141\n", | |
"EmbO -17.197365016021422\n", | |
"(9, 12)\n", | |
"Emb -37.18070957120662\n", | |
"EmbO -17.18070957120659\n", | |
"(9, 13)\n", | |
"Emb -37.09244841706684\n", | |
"EmbO -17.09244841706678\n", | |
"(9, 14)\n", | |
"Emb -37.06083250305247\n", | |
"EmbO -17.060832503052563\n", | |
"(9, 15)\n", | |
"Emb -37.00652539965726\n", | |
"EmbO -17.006525399657356\n", | |
"(9, 16)\n", | |
"Emb -36.984140088540435\n", | |
"EmbO -16.98414008854052\n", | |
"(9, 17)\n", | |
"Emb -36.95833857680334\n", | |
"EmbO -16.958338576803385\n", | |
"(9, 18)\n", | |
"Emb -36.90244993958847\n", | |
"EmbO -16.902449939588468\n", | |
"(9, 19)\n", | |
"Emb -36.89299858516273\n", | |
"EmbO -16.89299858516266\n", | |
"(10, 11)\n", | |
"Emb -37.066812054920504\n", | |
"EmbO -17.06681205492047\n", | |
"(10, 12)\n", | |
"Emb -37.05015661010572\n", | |
"EmbO -17.05015661010564\n", | |
"(10, 13)\n", | |
"Emb -36.96189545596594\n", | |
"EmbO -16.961895455965823\n", | |
"(10, 14)\n", | |
"Emb -36.93027954195156\n", | |
"EmbO -16.930279541951606\n", | |
"(10, 15)\n", | |
"Emb -36.87597243855635\n", | |
"EmbO -16.875972438556403\n", | |
"(10, 16)\n", | |
"Emb -36.85358712743953\n", | |
"EmbO -16.853587127439564\n", | |
"(10, 17)\n", | |
"Emb -36.82778561570244\n", | |
"EmbO -16.82778561570243\n", | |
"(10, 18)\n", | |
"Emb -36.77189697848757\n", | |
"EmbO -16.77189697848751\n", | |
"(10, 19)\n", | |
"Emb -36.762445624061826\n", | |
"EmbO -16.762445624061705\n", | |
"(11, 12)\n", | |
"Emb -36.47015823615202\n", | |
"EmbO -16.470158236152038\n", | |
"(11, 13)\n", | |
"Emb -36.38189708201224\n", | |
"EmbO -16.381897082012223\n", | |
"(11, 14)\n", | |
"Emb -36.35028116799786\n", | |
"EmbO -16.350281167998006\n", | |
"(11, 15)\n", | |
"Emb -36.29597406460265\n", | |
"EmbO -16.295974064602802\n", | |
"(11, 16)\n", | |
"Emb -36.27358875348583\n", | |
"EmbO -16.273588753485964\n", | |
"(11, 17)\n", | |
"Emb -36.24778724174874\n", | |
"EmbO -16.24778724174883\n", | |
"(11, 18)\n", | |
"Emb -36.19189860453387\n", | |
"EmbO -16.19189860453391\n", | |
"(11, 19)\n", | |
"Emb -36.182447250108126\n", | |
"EmbO -16.182447250108105\n", | |
"(12, 13)\n", | |
"Emb -36.36524163719745\n", | |
"EmbO -16.365241637197393\n", | |
"(12, 14)\n", | |
"Emb -36.333625723183076\n", | |
"EmbO -16.333625723183175\n", | |
"(12, 15)\n", | |
"Emb -36.279318619787865\n", | |
"EmbO -16.279318619787972\n", | |
"(12, 16)\n", | |
"Emb -36.256933308671044\n", | |
"EmbO -16.256933308671133\n", | |
"(12, 17)\n", | |
"Emb -36.23113179693395\n", | |
"EmbO -16.231131796934\n", | |
"(12, 18)\n", | |
"Emb -36.17524315971908\n", | |
"EmbO -16.17524315971908\n", | |
"(12, 19)\n", | |
"Emb -36.16579180529334\n", | |
"EmbO -16.165791805293274\n", | |
"(13, 14)\n", | |
"Emb -36.24536456904329\n", | |
"EmbO -16.245364569043364\n", | |
"(13, 15)\n", | |
"Emb -36.191057465648086\n", | |
"EmbO -16.191057465648157\n", | |
"(13, 16)\n", | |
"Emb -36.168672154531265\n", | |
"EmbO -16.168672154531322\n", | |
"(13, 17)\n", | |
"Emb -36.14287064279418\n", | |
"EmbO -16.142870642794186\n", | |
"(13, 18)\n", | |
"Emb -36.0869820055793\n", | |
"EmbO -16.08698200557927\n", | |
"(13, 19)\n", | |
"Emb -36.07753065115355\n", | |
"EmbO -16.07753065115346\n", | |
"(14, 15)\n", | |
"Emb -36.159441551633705\n", | |
"EmbO -16.15944155163394\n", | |
"(14, 16)\n", | |
"Emb -36.137056240516884\n", | |
"EmbO -16.137056240517104\n", | |
"(14, 17)\n", | |
"Emb -36.1112547287798\n", | |
"EmbO -16.11125472877997\n", | |
"(14, 18)\n", | |
"Emb -36.05536609156492\n", | |
"EmbO -16.055366091565052\n", | |
"(14, 19)\n", | |
"Emb -36.04591473713918\n", | |
"EmbO -16.045914737139242\n", | |
"(15, 16)\n", | |
"Emb -36.08274913712168\n", | |
"EmbO -16.082749137121898\n", | |
"(15, 17)\n", | |
"Emb -36.056947625384595\n", | |
"EmbO -16.056947625384765\n", | |
"(15, 18)\n", | |
"Emb -36.00105898816972\n", | |
"EmbO -16.001058988169845\n", | |
"(15, 19)\n", | |
"Emb -35.99160763374397\n", | |
"EmbO -15.991607633744039\n", | |
"(16, 17)\n", | |
"Emb -36.034562314267774\n", | |
"EmbO -16.034562314267923\n", | |
"(16, 18)\n", | |
"Emb -35.978673677052896\n", | |
"EmbO -15.978673677053008\n", | |
"(16, 19)\n", | |
"Emb -35.96922232262715\n", | |
"EmbO -15.9692223226272\n", | |
"(17, 18)\n", | |
"Emb -35.95287216531581\n", | |
"EmbO -15.952872165315874\n", | |
"(17, 19)\n", | |
"Emb -35.94342081089006\n", | |
"EmbO -15.943420810890064\n", | |
"(18, 19)\n", | |
"Emb -35.88753217367518\n", | |
"EmbO -15.887532173675147\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"import scipy.linalg as LA\n", | |
"import random\n", | |
"import itertools\n", | |
"import operator\n", | |
"import cmath\n", | |
"import math\n", | |
"from tqdm import tqdm\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"\n", | |
"def lat_to_num(lat,L,dim):\n", | |
"\n", | |
" dd=1\n", | |
" num=0\n", | |
" for l in lat:\n", | |
" num+=l*L**(dim-dd)\n", | |
" dd+=1\n", | |
" return num\n", | |
" \n", | |
"def num_to_lat(num,L,dim):\n", | |
"\n", | |
" n=num\n", | |
" lat=[]\n", | |
" for d in range(dim,0,-1):\n", | |
" if d==1:\n", | |
" lat.append(n%L)\n", | |
" else:\n", | |
" dn=(n//L**(d-1))\n", | |
" lat.append(dn)\n", | |
" n-=dn*L**(d-1)\n", | |
" return lat\n", | |
" \n", | |
"def dist(lat1,lat2,L):\n", | |
" period=True\n", | |
" l=0\n", | |
" for i in range(len(lat1)):\n", | |
" if period:\n", | |
" ll=lat1[i]-lat2[i]\n", | |
" if abs(ll)==L-1:\n", | |
" ll=1\n", | |
" else:\n", | |
" ll=lat1[i]-lat2[i]\n", | |
" l+=(ll)**2\n", | |
" \n", | |
" return l\n", | |
"\n", | |
"def nn(lat1,lat2,L):\n", | |
" if dist(lat1,lat2,L)==1:\n", | |
" return True\n", | |
" else:\n", | |
" return False\n", | |
"\n", | |
"def AM(W,dim,L):\n", | |
" val=[]\n", | |
" for num in range(L**dim):\n", | |
" val.append([0]*L**dim)\n", | |
" for num1 in range(L**dim):\n", | |
" for num2 in range(num1,L**dim):\n", | |
" if num1==num2:\n", | |
" val[num1][num1]=random.uniform(-W/2,W/2)\n", | |
" else:\n", | |
" lat1=num_to_lat(num1,L,dim)\n", | |
" lat2=num_to_lat(num2,L,dim)\n", | |
"# print(num1,num2,nn(lat1,lat2,L))\n", | |
" if nn(lat1,lat2,L):\n", | |
" val[num1][num2]=-1\n", | |
" val[num2][num1]=-1\n", | |
" return val\n", | |
"\n", | |
"def mixsort2(ea,av,eb,bv):\n", | |
" \n", | |
" emin=10**5\n", | |
" ia=0\n", | |
" ib=0\n", | |
" e=[]\n", | |
" vec=[]\n", | |
" for i in range(len(ea)+len(eb)):\n", | |
" if ia<len(ea):\n", | |
" if ea[ia]<eb[ib]:\n", | |
" e.append(ea[ia])\n", | |
" vec.append(av[ia])\n", | |
" ia+=1\n", | |
" else:\n", | |
" e.append(eb[ib])\n", | |
" vec.append(bv[ib])\n", | |
" ib+=1 \n", | |
" \n", | |
" np.array(vec)\n", | |
" return e,vec\n", | |
"\n", | |
"def mixsort1(ea,av):\n", | |
" \n", | |
" emin=10**5\n", | |
" e=ea\n", | |
" eo=[]\n", | |
" vo=[]\n", | |
" for i in range(len(ea)):\n", | |
" arg=np.argmin(e)\n", | |
" eo.append(ea[arg])\n", | |
" vo.append(av[arg])\n", | |
" e.pop(arg)\n", | |
" \n", | |
" np.array(vo)\n", | |
" return eo,vo\n", | |
"\n", | |
"def mixsort(ea,av,eb,bv,cv,dv):\n", | |
" \n", | |
" emin=10**5\n", | |
" ia=0\n", | |
" ib=0\n", | |
" e=[]\n", | |
" vec=[]\n", | |
" eo=[]\n", | |
" sign=[]\n", | |
" for i in range(len(ea)+len(eb)):\n", | |
" if ia<len(ea):\n", | |
" if ea[ia]<eb[ib]:\n", | |
" e.append(ea[ia])\n", | |
" vec.append(av[ia])\n", | |
" eo.append(cv[ia])\n", | |
" sign.append(+1)\n", | |
" ia+=1\n", | |
" else:\n", | |
" e.append(eb[ib])\n", | |
" vec.append(bv[ib])\n", | |
" eo.append(dv[ib])\n", | |
" sign.append(-1)\n", | |
" ib+=1 \n", | |
" \n", | |
" np.array(vec)\n", | |
" np.array(eo)\n", | |
" return e,vec,eo,sign\n", | |
"\n", | |
"def hermitian(arr):\n", | |
" arr=np.array(arr)\n", | |
" return np.conjugate(arr.T)\n", | |
"\n", | |
"def chain(l_2d):\n", | |
" \n", | |
" return list(itertools.chain.from_iterable(l_2d))\n", | |
" \n", | |
"dim=5\n", | |
"L=4\n", | |
"W=10.0\n", | |
"Ne=2\n", | |
"Nmax=20\n", | |
"U=10\n", | |
"\n", | |
"#Create AM\n", | |
"H0=AM(W,dim,L)\n", | |
"H0=np.array(H0)\n", | |
"\n", | |
"#Solve one body problem\n", | |
"l,v=LA.eigh(H0)\n", | |
" \n", | |
"#for n in range(len(v)):\n", | |
"# print(v.T@v)\n", | |
"\n", | |
"#iv=LA.inv(v)\n", | |
"#print(iv@a@v)\n", | |
"\n", | |
"#print('eigvec',v)\n", | |
"#print('eigval',l)\n", | |
"\n", | |
"#copy to spin-1/2\n", | |
"vup=[]\n", | |
"vdown=[]\n", | |
"for vec in v:\n", | |
" vup.append(vec)\n", | |
" vdown.append(vec)\n", | |
" \n", | |
"#degeneracy problem\n", | |
"Hsp=[]\n", | |
"for i in range(len(vup)):\n", | |
"# print(cc)\n", | |
" Uij=0\n", | |
" for j in range(len(vup[i])): \n", | |
" Uij+=vup[i][j]*U*vdown[i][j]\n", | |
" \n", | |
" Hsp.append([[0,Uij],[np.conjugate(Uij),0]])\n", | |
"Hsp=np.array(Hsp)\n", | |
"\n", | |
"#Solve the degeneracy\n", | |
"lspup=[]\n", | |
"vspup=[]\n", | |
"lspdown=[]\n", | |
"vspdown=[]\n", | |
"lsoup=[]\n", | |
"lsodown=[]\n", | |
"for i,h in enumerate(Hsp):\n", | |
"# print('h',h)\n", | |
" a,b=LA.eigh(h)\n", | |
" lspup.append(l[i]+a[0])\n", | |
" lsoup.append(l[i])\n", | |
" vspup.append(v[i]*(b[0][0]+b[0][1]))\n", | |
" lspdown.append(l[i]+a[1])\n", | |
" lsodown.append(l[i])\n", | |
" vspdown.append(v[i]*(b[1][0]+b[1][1]))\n", | |
"#print('Etest',Etest)\n", | |
"#print('lspup',lspup)\n", | |
"#print('lspdown',lspdown)\n", | |
"\n", | |
"#print('lspdown',lspdown)\n", | |
"#print('lspup',lspup)\n", | |
"\n", | |
"#Sort eigenvalue and eigenvectors\n", | |
"be,bv,bo,sign=mixsort(lspup,vspup,lspdown,vspdown,lsoup,lsodown)\n", | |
"\n", | |
"c=list(itertools.combinations(list(range(Nmax)),Ne))\n", | |
"print(len(c))\n", | |
"\n", | |
"#Create excited state basis\n", | |
"c=list(itertools.combinations(list(range(Nmax)),Ne))\n", | |
"mbv=[1]*len(c)\n", | |
"Emb=[0]*len(c)\n", | |
"EmbO=[0]*len(c)\n", | |
"spin=[[]]*len(c)\n", | |
"for i,cc in enumerate(c):\n", | |
" for j in cc:\n", | |
" mbv[i]*=bv[j]\n", | |
" Emb[i]+=be[j]\n", | |
" EmbO[i]+=bo[j]\n", | |
" spin[i].append(sign[j])\n", | |
" \n", | |
"for i,cc in enumerate(c):\n", | |
" print(cc)\n", | |
"# print('spin',spin[i])\n", | |
" print('Emb',Emb[i])\n", | |
" print('EmbO',EmbO[i])\n", | |
"\n", | |
"Emb.sort()\n", | |
" \n", | |
"dE=[]\n", | |
"for i in range(len(c)-1):\n", | |
" dE.append(Emb[i+1]-Emb[i])\n", | |
"\n", | |
"dE=len(dE)*dE/sum(dE) \n", | |
"\n", | |
"plt.figure()\n", | |
"plt.hist(dE,bins=20,density=True)\n", | |
"plt.show()" | |
] | |
} | |
], | |
"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.8.11" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment