{
"cells": [
{
"cell_type": "markdown",
"source": [
"# Gross-Pitaevskii equation with magnetism"
],
"metadata": {}
},
{
"cell_type": "markdown",
"source": [
"We solve the 2D Gross-Pitaevskii equation with a magnetic field.\n",
"This is similar to the\n",
"previous example (Gross-Pitaevskii equation in one dimension),\n",
"but with an extra term for the magnetic field.\n",
"We reproduce here the results of https://arxiv.org/pdf/1611.02045.pdf Fig. 10"
],
"metadata": {}
},
{
"outputs": [],
"cell_type": "code",
"source": [
"using DFTK\n",
"using StaticArrays\n",
"using Plots"
],
"metadata": {},
"execution_count": 1
},
{
"cell_type": "markdown",
"source": [
"Unit cell. Having one of the lattice vectors as zero means a 2D system"
],
"metadata": {}
},
{
"outputs": [],
"cell_type": "code",
"source": [
"a = 15\n",
"lattice = a .* [[1 0 0.]; [0 1 0]; [0 0 0]];"
],
"metadata": {},
"execution_count": 2
},
{
"cell_type": "markdown",
"source": [
"Confining scalar potential, and magnetic vector potential"
],
"metadata": {}
},
{
"outputs": [],
"cell_type": "code",
"source": [
"pot(x, y, z) = ((x - a/2)^2 + (y - a/2)^2)/2\n",
"ω = .6\n",
"Apot(x, y, z) = ω * @SVector [y - a/2, -(x - a/2), 0]\n",
"Apot(X) = Apot(X...);"
],
"metadata": {},
"execution_count": 3
},
{
"cell_type": "markdown",
"source": [
"Parameters"
],
"metadata": {}
},
{
"outputs": [],
"cell_type": "code",
"source": [
"Ecut = 20 # Increase this for production\n",
"η = 500\n",
"C = η/2\n",
"α = 2\n",
"n_electrons = 1; # Increase this for fun"
],
"metadata": {},
"execution_count": 4
},
{
"cell_type": "markdown",
"source": [
"Collect all the terms, build and run the model"
],
"metadata": {}
},
{
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iter Function value Gradient norm \n",
" 0 3.092949e+01 7.144394e+00\n",
" * time: 0.0018329620361328125\n",
" 1 3.039245e+01 4.509089e+00\n",
" * time: 0.007828950881958008\n",
" 2 2.078743e+01 4.382530e+00\n",
" * time: 0.014898061752319336\n",
" 3 1.507186e+01 3.588408e+00\n",
" * time: 0.02097296714782715\n",
" 4 1.200423e+01 1.828797e+00\n",
" * time: 0.027698993682861328\n",
" 5 1.147697e+01 2.192761e+00\n",
" * time: 0.034364938735961914\n",
" 6 1.056654e+01 1.398145e+00\n",
" * time: 0.039016008377075195\n",
" 7 9.477255e+00 1.622747e+00\n",
" * time: 0.0434720516204834\n",
" 8 8.929882e+00 1.568717e+00\n",
" * time: 0.047866106033325195\n",
" 9 8.678980e+00 1.114768e+00\n",
" * time: 0.05199003219604492\n",
" 10 8.465320e+00 1.062911e+00\n",
" * time: 0.055989980697631836\n",
" 11 8.287403e+00 1.022523e+00\n",
" * time: 0.06016397476196289\n",
" 12 8.123438e+00 6.219178e-01\n",
" * time: 0.06507611274719238\n",
" 13 8.016256e+00 4.476339e-01\n",
" * time: 0.06985902786254883\n",
" 14 7.937866e+00 3.560243e-01\n",
" * time: 0.07485198974609375\n",
" 15 7.901210e+00 6.028070e-01\n",
" * time: 0.0787210464477539\n",
" 16 7.885194e+00 4.175437e-01\n",
" * time: 0.08263301849365234\n",
" 17 7.877753e+00 7.210553e-01\n",
" * time: 0.0866250991821289\n",
" 18 7.843726e+00 4.307479e-01\n",
" * time: 0.09159207344055176\n",
" 19 7.810886e+00 4.612220e-01\n",
" * time: 0.09560203552246094\n",
" 20 7.771616e+00 3.468957e-01\n",
" * time: 0.09949588775634766\n",
" 21 7.753548e+00 3.208861e-01\n",
" * time: 0.10350394248962402\n",
" 22 7.734905e+00 3.313122e-01\n",
" * time: 0.10852289199829102\n",
" 23 7.718152e+00 2.835561e-01\n",
" * time: 0.11344695091247559\n",
" 24 7.706856e+00 3.901759e-01\n",
" * time: 0.11706089973449707\n",
" 25 7.701661e+00 3.109875e-01\n",
" * time: 0.1208341121673584\n",
" 26 7.700990e+00 2.890605e-01\n",
" * time: 0.15642595291137695\n",
" 27 7.695612e+00 2.386133e-01\n",
" * time: 0.1594541072845459\n",
" 28 7.691636e+00 2.331825e-01\n",
" * time: 0.16239690780639648\n",
" 29 7.683439e+00 1.674815e-01\n",
" * time: 0.1654679775238037\n",
" 30 7.677170e+00 2.318238e-01\n",
" * time: 0.16843295097351074\n",
" 31 7.672712e+00 1.914697e-01\n",
" * time: 0.17133307456970215\n",
" 32 7.670791e+00 1.980980e-01\n",
" * time: 0.17427396774291992\n",
" 33 7.668600e+00 1.394941e-01\n",
" * time: 0.17716693878173828\n",
" 34 7.665276e+00 9.027116e-02\n",
" * time: 0.18077397346496582\n",
" 35 7.664891e+00 2.126395e-01\n",
" * time: 0.18364405632019043\n",
" 36 7.662996e+00 1.709069e-01\n",
" * time: 0.18675804138183594\n",
" 37 7.661378e+00 1.907077e-01\n",
" * time: 0.18974900245666504\n",
" 38 7.660759e+00 1.745404e-01\n",
" * time: 0.19270896911621094\n",
" 39 7.660378e+00 1.150397e-01\n",
" * time: 0.1957099437713623\n",
" 40 7.658113e+00 1.092295e-01\n",
" * time: 0.19860291481018066\n",
" 41 7.656312e+00 1.714183e-01\n",
" * time: 0.20154404640197754\n",
" 42 7.654793e+00 1.345714e-01\n",
" * time: 0.20441889762878418\n",
" 43 7.651451e+00 1.158949e-01\n",
" * time: 0.20821905136108398\n",
" 44 7.651082e+00 1.159841e-01\n",
" * time: 0.21104693412780762\n",
" 45 7.649434e+00 1.281182e-01\n",
" * time: 0.21421289443969727\n",
" 46 7.646652e+00 7.067507e-02\n",
" * time: 0.2182319164276123\n",
" 47 7.644570e+00 7.518722e-02\n",
" * time: 0.22190594673156738\n",
" 48 7.643033e+00 6.021664e-02\n",
" * time: 0.22555088996887207\n",
" 49 7.641780e+00 8.117246e-02\n",
" * time: 0.22931408882141113\n",
" 50 7.640602e+00 2.624572e-02\n",
" * time: 0.23301196098327637\n",
" 51 7.640491e+00 6.791138e-02\n",
" * time: 0.23584699630737305\n",
" 52 7.640415e+00 7.633086e-02\n",
" * time: 0.2388620376586914\n",
" 53 7.639948e+00 7.220428e-02\n",
" * time: 0.24179291725158691\n",
" 54 7.639241e+00 6.705693e-02\n",
" * time: 0.24467706680297852\n",
" 55 7.638300e+00 9.608251e-02\n",
" * time: 0.24758696556091309\n",
" 56 7.638262e+00 5.528776e-02\n",
" * time: 0.2506740093231201\n",
" 57 7.637424e+00 3.926671e-02\n",
" * time: 0.2789750099182129\n",
" 58 7.636904e+00 6.511189e-02\n",
" * time: 0.28186798095703125\n",
" 59 7.636484e+00 6.006467e-02\n",
" * time: 0.28484606742858887\n",
" 60 7.636103e+00 8.170569e-02\n",
" * time: 0.28774189949035645\n",
" 61 7.635239e+00 6.511558e-02\n",
" * time: 0.2906229496002197\n",
" 62 7.634345e+00 3.559750e-02\n",
" * time: 0.29429197311401367\n",
" 63 7.633650e+00 3.705961e-02\n",
" * time: 0.29814791679382324\n",
" 64 7.633483e+00 6.586718e-02\n",
" * time: 0.3009200096130371\n",
" 65 7.632622e+00 4.458498e-02\n",
" * time: 0.3036930561065674\n",
" 66 7.631810e+00 5.054105e-02\n",
" * time: 0.3073410987854004\n",
" 67 7.631024e+00 3.047601e-02\n",
" * time: 0.3111259937286377\n",
" 68 7.630530e+00 4.498980e-02\n",
" * time: 0.313978910446167\n",
" 69 7.629999e+00 3.212314e-02\n",
" * time: 0.31752490997314453\n",
" 70 7.629596e+00 3.507266e-02\n",
" * time: 0.32129693031311035\n",
" 71 7.629121e+00 4.462318e-02\n",
" * time: 0.32411789894104004\n",
" 72 7.628863e+00 4.731378e-02\n",
" * time: 0.3269350528717041\n",
" 73 7.628691e+00 6.594313e-02\n",
" * time: 0.32981109619140625\n",
" 74 7.628356e+00 2.989370e-02\n",
" * time: 0.3334200382232666\n",
" 75 7.627832e+00 5.030390e-02\n",
" * time: 0.3362081050872803\n",
" 76 7.627673e+00 3.972048e-02\n",
" * time: 0.3391430377960205\n",
" 77 7.627116e+00 3.337398e-02\n",
" * time: 0.3419530391693115\n",
" 78 7.626590e+00 3.622094e-02\n",
" * time: 0.34461402893066406\n",
" 79 7.626237e+00 3.772358e-02\n",
" * time: 0.34746694564819336\n",
" 80 7.626068e+00 5.355742e-02\n",
" * time: 0.3503739833831787\n",
" 81 7.625921e+00 6.319780e-02\n",
" * time: 0.35317492485046387\n",
" 82 7.625501e+00 5.445749e-02\n",
" * time: 0.3560030460357666\n",
" 83 7.625219e+00 6.489779e-02\n",
" * time: 0.35884690284729004\n",
" 84 7.624850e+00 6.726056e-02\n",
" * time: 0.36181092262268066\n",
" 85 7.624435e+00 5.616170e-02\n",
" * time: 0.36464595794677734\n",
" 86 7.624060e+00 5.613096e-02\n",
" * time: 0.36748290061950684\n",
" 87 7.623566e+00 3.248903e-02\n",
" * time: 0.388261079788208\n",
" 88 7.622762e+00 5.289825e-02\n",
" * time: 0.3912529945373535\n",
" 89 7.622200e+00 3.355599e-02\n",
" * time: 0.39495301246643066\n",
" 90 7.621552e+00 4.324419e-02\n",
" * time: 0.3977320194244385\n",
" 91 7.621128e+00 4.930253e-02\n",
" * time: 0.4014160633087158\n",
" 92 7.620677e+00 1.796776e-02\n",
" * time: 0.4050929546356201\n",
" 93 7.620090e+00 2.794969e-02\n",
" * time: 0.40794897079467773\n",
" 94 7.619696e+00 4.094311e-02\n",
" * time: 0.41083788871765137\n",
" 95 7.619402e+00 4.664244e-02\n",
" * time: 0.41356492042541504\n",
" 96 7.619316e+00 9.689157e-02\n",
" * time: 0.4163360595703125\n",
" 97 7.618821e+00 4.791369e-02\n",
" * time: 0.42000603675842285\n",
" 98 7.618453e+00 5.079010e-02\n",
" * time: 0.42371392250061035\n",
" 99 7.617900e+00 4.724327e-02\n",
" * time: 0.4265270233154297\n",
" 100 7.617323e+00 4.062095e-02\n",
" * time: 0.42929601669311523\n",
" 101 7.616996e+00 3.213397e-02\n",
" * time: 0.4322481155395508\n",
" 102 7.616759e+00 4.587416e-02\n",
" * time: 0.435197114944458\n",
" 103 7.616481e+00 2.313925e-02\n",
" * time: 0.4387509822845459\n",
" 104 7.616187e+00 3.874921e-02\n",
" * time: 0.44160008430480957\n",
" 105 7.615872e+00 3.122982e-02\n",
" * time: 0.44446492195129395\n",
" 106 7.615684e+00 3.908353e-02\n",
" * time: 0.44733691215515137\n",
" 107 7.615346e+00 2.199401e-02\n",
" * time: 0.45098304748535156\n",
" 108 7.615007e+00 2.563637e-02\n",
" * time: 0.45381999015808105\n",
" 109 7.614907e+00 3.994865e-02\n",
" * time: 0.45656609535217285\n",
" 110 7.614840e+00 5.328746e-02\n",
" * time: 0.4593510627746582\n",
" 111 7.614720e+00 3.870166e-02\n",
" * time: 0.46227002143859863\n",
" 112 7.614596e+00 5.527046e-02\n",
" * time: 0.4651370048522949\n",
" 113 7.614375e+00 3.061071e-02\n",
" * time: 0.467972993850708\n",
" 114 7.614209e+00 5.321926e-02\n",
" * time: 0.4708380699157715\n",
" 115 7.613845e+00 2.474032e-02\n",
" * time: 0.47449588775634766\n",
" 116 7.613610e+00 3.077614e-02\n",
" * time: 0.4772670269012451\n",
" 117 7.613259e+00 3.313034e-02\n",
" * time: 0.48003506660461426\n",
" 118 7.612879e+00 2.420330e-02\n",
" * time: 0.49411606788635254\n",
" 119 7.612837e+00 4.552855e-02\n",
" * time: 0.49697208404541016\n",
" 120 7.612749e+00 6.665934e-02\n",
" * time: 0.4997549057006836\n",
" 121 7.612511e+00 4.065434e-02\n",
" * time: 0.5034348964691162\n",
" 122 7.612304e+00 4.023747e-02\n",
" * time: 0.5070860385894775\n",
" 123 7.612093e+00 4.559837e-02\n",
" * time: 0.5099430084228516\n",
" 124 7.611757e+00 4.962074e-02\n",
" * time: 0.5137150287628174\n",
" 125 7.611453e+00 1.860271e-02\n",
" * time: 0.5172760486602783\n",
" 126 7.611201e+00 3.199354e-02\n",
" * time: 0.5201330184936523\n",
" 127 7.611017e+00 3.525804e-02\n",
" * time: 0.5230669975280762\n",
" 128 7.610882e+00 3.147620e-02\n",
" * time: 0.5258979797363281\n",
" 129 7.610602e+00 3.271631e-02\n",
" * time: 0.528764009475708\n",
" 130 7.610499e+00 5.527226e-02\n",
" * time: 0.5317621231079102\n",
" 131 7.610371e+00 4.641534e-02\n",
" * time: 0.534682035446167\n",
" 132 7.610278e+00 6.806592e-02\n",
" * time: 0.5375819206237793\n",
" 133 7.610005e+00 3.757165e-02\n",
" * time: 0.5405130386352539\n",
" 134 7.609653e+00 2.228037e-02\n",
" * time: 0.5442090034484863\n",
" 135 7.609384e+00 2.447838e-02\n",
" * time: 0.547144889831543\n",
" 136 7.609224e+00 2.839178e-02\n",
" * time: 0.5500121116638184\n",
" 137 7.609101e+00 4.026911e-02\n",
" * time: 0.5529220104217529\n",
" 138 7.608961e+00 1.848177e-02\n",
" * time: 0.5566360950469971\n",
" 139 7.608831e+00 1.695676e-02\n",
" * time: 0.5603399276733398\n",
" 140 7.608746e+00 2.388414e-02\n",
" * time: 0.5633189678192139\n",
" 141 7.608660e+00 2.020082e-02\n",
" * time: 0.566972017288208\n",
" 142 7.608637e+00 2.829618e-02\n",
" * time: 0.5697650909423828\n",
" 143 7.608606e+00 3.268107e-02\n",
" * time: 0.5726311206817627\n",
" 144 7.608496e+00 1.914120e-02\n",
" * time: 0.5763719081878662\n",
" 145 7.608399e+00 2.836165e-02\n",
" * time: 0.5792860984802246\n",
" 146 7.608280e+00 2.338237e-02\n",
" * time: 0.5822598934173584\n",
" 147 7.608188e+00 2.627436e-02\n",
" * time: 0.585211992263794\n",
" 148 7.608086e+00 1.180398e-02\n",
" * time: 0.6003189086914062\n",
" 149 7.608006e+00 1.339341e-02\n",
" * time: 0.6033039093017578\n",
" 150 7.607952e+00 2.705721e-02\n",
" * time: 0.6062500476837158\n",
" 151 7.607904e+00 2.481473e-02\n",
" * time: 0.6092839241027832\n",
" 152 7.607864e+00 1.970629e-02\n",
" * time: 0.6121840476989746\n",
" 153 7.607781e+00 2.112683e-02\n",
" * time: 0.6159629821777344\n",
" 154 7.607677e+00 8.457094e-03\n",
" * time: 0.6197021007537842\n",
" 155 7.607624e+00 1.381003e-02\n",
" * time: 0.6226639747619629\n",
" 156 7.607557e+00 1.273533e-02\n",
" * time: 0.6257250308990479\n",
" 157 7.607503e+00 1.560984e-02\n",
" * time: 0.6286380290985107\n",
" 158 7.607485e+00 1.506689e-02\n",
" * time: 0.6315860748291016\n",
" 159 7.607429e+00 1.359827e-02\n",
" * time: 0.6344900131225586\n",
" 160 7.607340e+00 1.604387e-02\n",
" * time: 0.637347936630249\n",
" 161 7.607330e+00 2.319956e-02\n",
" * time: 0.6402308940887451\n",
" 162 7.607325e+00 2.307167e-02\n",
" * time: 0.6431660652160645\n",
" 163 7.607304e+00 2.358642e-02\n",
" * time: 0.6462080478668213\n",
" 164 7.607173e+00 1.581495e-02\n",
" * time: 0.6490380764007568\n",
" 165 7.607044e+00 1.904193e-02\n",
" * time: 0.6518549919128418\n",
" 166 7.607010e+00 3.189679e-02\n",
" * time: 0.6548349857330322\n",
" 167 7.606896e+00 2.190862e-02\n",
" * time: 0.6585090160369873\n",
" 168 7.606753e+00 2.583350e-02\n",
" * time: 0.6613221168518066\n",
" 169 7.606626e+00 1.627174e-02\n",
" * time: 0.6650149822235107\n",
" 170 7.606575e+00 2.266247e-02\n",
" * time: 0.6678969860076904\n",
" 171 7.606545e+00 2.153687e-02\n",
" * time: 0.6706759929656982\n",
" 172 7.606456e+00 1.768502e-02\n",
" * time: 0.6742970943450928\n",
" 173 7.606414e+00 2.668723e-02\n",
" * time: 0.6770970821380615\n",
" 174 7.606333e+00 2.265223e-02\n",
" * time: 0.6807210445404053\n",
" 175 7.606192e+00 2.872392e-02\n",
" * time: 0.6835060119628906\n",
" 176 7.606140e+00 2.688193e-02\n",
" * time: 0.6863601207733154\n",
" 177 7.606106e+00 1.954142e-02\n",
" * time: 0.6892220973968506\n",
" 178 7.606010e+00 1.926650e-02\n",
" * time: 0.6920359134674072\n",
" 179 7.605826e+00 3.136185e-02\n",
" * time: 0.7062718868255615\n",
" 180 7.605707e+00 1.733690e-02\n",
" * time: 0.7099380493164062\n",
" 181 7.605588e+00 1.650023e-02\n",
" * time: 0.7135019302368164\n",
" 182 7.605495e+00 2.496859e-02\n",
" * time: 0.716407060623169\n",
" 183 7.605404e+00 2.381374e-02\n",
" * time: 0.719264030456543\n",
" 184 7.605377e+00 3.183078e-02\n",
" * time: 0.722114086151123\n",
" 185 7.605298e+00 2.279632e-02\n",
" * time: 0.7258520126342773\n",
" 186 7.605119e+00 2.538510e-02\n",
" * time: 0.729482889175415\n",
" 187 7.605021e+00 2.862387e-02\n",
" * time: 0.7323689460754395\n",
" 188 7.604896e+00 3.052032e-02\n",
" * time: 0.7352859973907471\n",
" 189 7.604742e+00 1.964412e-02\n",
" * time: 0.7390379905700684\n",
" 190 7.604688e+00 3.354532e-02\n",
" * time: 0.741879940032959\n",
" 191 7.604669e+00 2.778443e-02\n",
" * time: 0.7446689605712891\n",
" 192 7.604565e+00 2.636902e-02\n",
" * time: 0.7485499382019043\n",
" 193 7.604426e+00 2.640297e-02\n",
" * time: 0.751439094543457\n",
" 194 7.604288e+00 2.448490e-02\n",
" * time: 0.7553260326385498\n",
" 195 7.604209e+00 2.910371e-02\n",
" * time: 0.7583310604095459\n",
" 196 7.604078e+00 2.841721e-02\n",
" * time: 0.7611560821533203\n",
" 197 7.603978e+00 2.278817e-02\n",
" * time: 0.764847993850708\n",
" 198 7.603862e+00 2.605204e-02\n",
" * time: 0.7677369117736816\n",
" 199 7.603851e+00 4.544651e-02\n",
" * time: 0.7705249786376953\n",
" 200 7.603698e+00 2.478883e-02\n",
" * time: 0.7734129428863525\n",
" 201 7.603662e+00 4.545850e-02\n",
" * time: 0.7763159275054932\n",
" 202 7.603443e+00 3.030984e-02\n",
" * time: 0.7799999713897705\n",
" 203 7.603293e+00 3.436837e-02\n",
" * time: 0.7836019992828369\n",
" 204 7.603137e+00 2.810137e-02\n",
" * time: 0.7865109443664551\n",
" 205 7.602982e+00 3.637739e-02\n",
" * time: 0.7893979549407959\n",
" 206 7.602979e+00 3.396018e-02\n",
" * time: 0.7922489643096924\n",
" 207 7.602875e+00 3.194552e-02\n",
" * time: 0.7950499057769775\n",
" 208 7.602831e+00 3.224236e-02\n",
" * time: 0.7980639934539795\n",
" 209 7.602682e+00 2.430060e-02\n",
" * time: 0.8121390342712402\n",
" 210 7.602634e+00 3.961676e-02\n",
" * time: 0.8150210380554199\n",
" 211 7.602402e+00 3.559408e-02\n",
" * time: 0.8180301189422607\n",
" 212 7.602197e+00 2.968846e-02\n",
" * time: 0.8216249942779541\n",
" 213 7.602050e+00 3.246387e-02\n",
" * time: 0.8245069980621338\n",
" 214 7.601963e+00 3.666965e-02\n",
" * time: 0.8275051116943359\n",
" 215 7.601887e+00 2.387274e-02\n",
" * time: 0.8305950164794922\n",
" 216 7.601670e+00 2.413248e-02\n",
" * time: 0.8343410491943359\n",
" 217 7.601430e+00 2.227738e-02\n",
" * time: 0.8380100727081299\n",
" 218 7.601192e+00 2.585857e-02\n",
" * time: 0.8417870998382568\n",
" 219 7.600923e+00 1.747981e-02\n",
" * time: 0.8455410003662109\n",
" 220 7.600768e+00 2.519239e-02\n",
" * time: 0.8486959934234619\n",
" 221 7.600622e+00 2.783515e-02\n",
" * time: 0.852341890335083\n",
" 222 7.600593e+00 4.221140e-02\n",
" * time: 0.8553268909454346\n",
" 223 7.600548e+00 3.351037e-02\n",
" * time: 0.8583250045776367\n",
" 224 7.600431e+00 2.502463e-02\n",
" * time: 0.8611910343170166\n",
" 225 7.600249e+00 4.038561e-02\n",
" * time: 0.8640611171722412\n",
" 226 7.600016e+00 2.906412e-02\n",
" * time: 0.8679280281066895\n",
" 227 7.599990e+00 5.264226e-02\n",
" * time: 0.8710200786590576\n",
" 228 7.599838e+00 4.369907e-02\n",
" * time: 0.8746829032897949\n",
" 229 7.599727e+00 4.718179e-02\n",
" * time: 0.8774349689483643\n",
" 230 7.599587e+00 4.297247e-02\n",
" * time: 0.8811709880828857\n",
" 231 7.599422e+00 3.260678e-02\n",
" * time: 0.8840711116790771\n",
" 232 7.599211e+00 4.238858e-02\n",
" * time: 0.8868629932403564\n",
" 233 7.599037e+00 5.480164e-02\n",
" * time: 0.8899269104003906\n",
" 234 7.598738e+00 2.844664e-02\n",
" * time: 0.8935379981994629\n",
" 235 7.598471e+00 2.980011e-02\n",
" * time: 0.8963749408721924\n",
" 236 7.598286e+00 2.896281e-02\n",
" * time: 0.900231122970581\n",
" 237 7.598126e+00 3.781617e-02\n",
" * time: 0.9030909538269043\n",
" 238 7.597861e+00 2.624738e-02\n",
" * time: 0.9066970348358154\n",
" 239 7.597686e+00 2.384146e-02\n",
" * time: 0.921781063079834\n",
" 240 7.597493e+00 2.404157e-02\n",
" * time: 0.9255270957946777\n",
" 241 7.597394e+00 2.562757e-02\n",
" * time: 0.929265022277832\n",
" 242 7.597295e+00 2.935479e-02\n",
" * time: 0.9321188926696777\n",
" 243 7.597197e+00 4.722609e-02\n",
" * time: 0.9350090026855469\n",
" 244 7.597066e+00 3.960497e-02\n",
" * time: 0.9378690719604492\n",
" 245 7.596951e+00 4.792311e-02\n",
" * time: 0.940925121307373\n",
" 246 7.596799e+00 4.771337e-02\n",
" * time: 0.9437460899353027\n",
" 247 7.596655e+00 3.802861e-02\n",
" * time: 0.9465630054473877\n",
" 248 7.596482e+00 2.704025e-02\n",
" * time: 0.9494400024414062\n",
" 249 7.596230e+00 2.560394e-02\n",
" * time: 0.9523739814758301\n",
" 250 7.596057e+00 1.963649e-02\n",
" * time: 0.9561209678649902\n",
" 251 7.595867e+00 1.682622e-02\n",
" * time: 0.9591178894042969\n",
" 252 7.595772e+00 2.330703e-02\n",
" * time: 0.9629299640655518\n",
" 253 7.595653e+00 2.460695e-02\n",
" * time: 0.9667699337005615\n",
" 254 7.595504e+00 1.159420e-02\n",
" * time: 0.9706070423126221\n",
" 255 7.595454e+00 2.027720e-02\n",
" * time: 0.9734640121459961\n",
" 256 7.595423e+00 3.922585e-02\n",
" * time: 0.9763529300689697\n",
" 257 7.595348e+00 2.969681e-02\n",
" * time: 0.9792160987854004\n",
" 258 7.595117e+00 2.186832e-02\n",
" * time: 0.9821529388427734\n",
" 259 7.595039e+00 3.883922e-02\n",
" * time: 0.9849579334259033\n",
" 260 7.594901e+00 3.358663e-02\n",
" * time: 0.9878830909729004\n",
" 261 7.594776e+00 3.396028e-02\n",
" * time: 0.9908249378204346\n",
" 262 7.594468e+00 3.025026e-02\n",
" * time: 0.9936769008636475\n",
" 263 7.594302e+00 2.254355e-02\n",
" * time: 0.9964339733123779\n",
" 264 7.594117e+00 3.003345e-02\n",
" * time: 0.9992680549621582\n",
" 265 7.593983e+00 1.643375e-02\n",
" * time: 1.0029730796813965\n",
" 266 7.593815e+00 2.551064e-02\n",
" * time: 1.0058400630950928\n",
" 267 7.593694e+00 2.483709e-02\n",
" * time: 1.0093989372253418\n",
" 268 7.593583e+00 1.584696e-02\n",
" * time: 1.0131580829620361\n",
" 269 7.593535e+00 2.985789e-02\n",
" * time: 1.0272090435028076\n",
" 270 7.593522e+00 2.712810e-02\n",
" * time: 1.0302379131317139\n",
" 271 7.593425e+00 2.603686e-02\n",
" * time: 1.0333061218261719\n",
" 272 7.593299e+00 1.606074e-02\n",
" * time: 1.037053108215332\n",
" 273 7.593219e+00 2.795821e-02\n",
" * time: 1.0399980545043945\n",
" 274 7.593117e+00 1.747816e-02\n",
" * time: 1.0430819988250732\n",
" 275 7.593061e+00 1.483956e-02\n",
" * time: 1.0460100173950195\n",
" 276 7.593000e+00 1.532046e-02\n",
" * time: 1.0489230155944824\n",
" 277 7.592955e+00 9.542154e-03\n",
" * time: 1.052746057510376\n",
" 278 7.592912e+00 1.420849e-02\n",
" * time: 1.0556559562683105\n",
" 279 7.592879e+00 1.249850e-02\n",
" * time: 1.0585429668426514\n",
" 280 7.592875e+00 1.529451e-02\n",
" * time: 1.0615909099578857\n",
" 281 7.592870e+00 1.585126e-02\n",
" * time: 1.064512014389038\n",
" 282 7.592860e+00 1.582477e-02\n",
" * time: 1.0674691200256348\n",
" 283 7.592830e+00 1.107019e-02\n",
" * time: 1.0703630447387695\n",
" 284 7.592801e+00 1.326934e-02\n",
" * time: 1.0734848976135254\n",
" 285 7.592768e+00 1.110618e-02\n",
" * time: 1.076611042022705\n",
" 286 7.592756e+00 1.300644e-02\n",
" * time: 1.0794799327850342\n",
" 287 7.592725e+00 9.129469e-03\n",
" * time: 1.0826148986816406\n",
" 288 7.592717e+00 1.319053e-02\n",
" * time: 1.0855278968811035\n",
" 289 7.592699e+00 1.624033e-02\n",
" * time: 1.0884509086608887\n",
" 290 7.592698e+00 1.264264e-02\n",
" * time: 1.09147310256958\n",
" 291 7.592679e+00 1.067761e-02\n",
" * time: 1.0952050685882568\n",
" 292 7.592653e+00 7.942211e-03\n",
" * time: 1.0987911224365234\n",
" 293 7.592633e+00 6.342543e-03\n",
" * time: 1.1025159358978271\n",
" 294 7.592624e+00 6.828025e-03\n",
" * time: 1.106132984161377\n",
" 295 7.592619e+00 1.146055e-02\n",
" * time: 1.1088929176330566\n",
" 296 7.592611e+00 1.196688e-02\n",
" * time: 1.1117849349975586\n",
" 297 7.592601e+00 8.520331e-03\n",
" * time: 1.1147170066833496\n",
" 298 7.592591e+00 7.228714e-03\n",
" * time: 1.11753511428833\n",
" 299 7.592580e+00 8.038250e-03\n",
" * time: 1.1204009056091309\n",
" 300 7.592562e+00 1.333804e-02\n",
" * time: 1.1349029541015625\n",
" 301 7.592550e+00 7.707980e-03\n",
" * time: 1.1378040313720703\n",
" 302 7.592537e+00 8.591416e-03\n",
" * time: 1.1406431198120117\n",
" 303 7.592529e+00 8.678138e-03\n",
" * time: 1.1435670852661133\n",
" 304 7.592517e+00 4.468362e-03\n",
" * time: 1.1464180946350098\n",
" 305 7.592510e+00 5.531683e-03\n",
" * time: 1.149266004562378\n",
" 306 7.592502e+00 4.094692e-03\n",
" * time: 1.1530330181121826\n",
" 307 7.592499e+00 7.749809e-03\n",
" * time: 1.155879020690918\n",
" 308 7.592497e+00 6.414353e-03\n",
" * time: 1.1587519645690918\n",
" 309 7.592494e+00 4.843122e-03\n",
" * time: 1.1615979671478271\n",
" 310 7.592494e+00 6.248924e-03\n",
" * time: 1.1646089553833008\n",
" 311 7.592489e+00 5.828639e-03\n",
" * time: 1.1674261093139648\n",
" 312 7.592486e+00 2.874717e-03\n",
" * time: 1.1710810661315918\n",
" 313 7.592483e+00 3.960841e-03\n",
" * time: 1.174062967300415\n",
" 314 7.592481e+00 2.463410e-03\n",
" * time: 1.177799940109253\n",
" 315 7.592479e+00 3.459159e-03\n",
" * time: 1.1807711124420166\n",
" 316 7.592478e+00 2.974892e-03\n",
" * time: 1.1837561130523682\n",
" 317 7.592476e+00 1.856272e-03\n",
" * time: 1.1867129802703857\n",
" 318 7.592475e+00 2.115382e-03\n",
" * time: 1.1903860569000244\n",
" 319 7.592474e+00 2.077518e-03\n",
" * time: 1.1941020488739014\n",
" 320 7.592473e+00 3.340243e-03\n",
" * time: 1.1969449520111084\n",
" 321 7.592473e+00 3.615788e-03\n",
" * time: 1.199808120727539\n",
" 322 7.592472e+00 2.215837e-03\n",
" * time: 1.2035839557647705\n",
" 323 7.592470e+00 2.275572e-03\n",
" * time: 1.2065489292144775\n",
" 324 7.592468e+00 2.446078e-03\n",
" * time: 1.2093369960784912\n",
" 325 7.592467e+00 2.479469e-03\n",
" * time: 1.212165117263794\n",
" 326 7.592465e+00 1.852516e-03\n",
" * time: 1.2158300876617432\n",
" 327 7.592463e+00 1.821267e-03\n",
" * time: 1.2194790840148926\n",
" 328 7.592462e+00 2.597769e-03\n",
" * time: 1.2222630977630615\n",
" 329 7.592462e+00 2.726703e-03\n",
" * time: 1.2251379489898682\n",
" 330 7.592460e+00 2.735389e-03\n",
" * time: 1.2279529571533203\n",
" 331 7.592459e+00 2.341658e-03\n",
" * time: 1.2433021068572998\n",
" 332 7.592457e+00 1.343376e-03\n",
" * time: 1.2471060752868652\n",
" 333 7.592455e+00 1.807439e-03\n",
" * time: 1.2499868869781494\n",
" 334 7.592454e+00 1.883420e-03\n",
" * time: 1.252835988998413\n",
" 335 7.592453e+00 2.420649e-03\n",
" * time: 1.2559559345245361\n",
" 336 7.592452e+00 2.130379e-03\n",
" * time: 1.258965015411377\n",
" 337 7.592450e+00 2.014848e-03\n",
" * time: 1.261810064315796\n",
" 338 7.592447e+00 2.362448e-03\n",
" * time: 1.2646679878234863\n",
" 339 7.592444e+00 2.515174e-03\n",
" * time: 1.268312931060791\n",
" 340 7.592442e+00 1.275058e-03\n",
" * time: 1.2721529006958008\n",
" 341 7.592440e+00 1.877595e-03\n",
" * time: 1.2750608921051025\n",
" 342 7.592439e+00 1.871827e-03\n",
" * time: 1.278027057647705\n",
" 343 7.592437e+00 2.419317e-03\n",
" * time: 1.2808749675750732\n",
" 344 7.592435e+00 1.946129e-03\n",
" * time: 1.2845780849456787\n",
" 345 7.592434e+00 2.676204e-03\n",
" * time: 1.2875139713287354\n",
" 346 7.592433e+00 4.270989e-03\n",
" * time: 1.2904279232025146\n",
" 347 7.592432e+00 2.911391e-03\n",
" * time: 1.2932519912719727\n",
" 348 7.592430e+00 2.313936e-03\n",
" * time: 1.2961950302124023\n",
" 349 7.592429e+00 4.262489e-03\n",
" * time: 1.2990219593048096\n",
" 350 7.592427e+00 3.103697e-03\n",
" * time: 1.301814079284668\n",
" 351 7.592426e+00 4.400363e-03\n",
" * time: 1.3045220375061035\n",
" 352 7.592425e+00 3.314501e-03\n",
" * time: 1.3074109554290771\n",
" 353 7.592425e+00 2.352045e-03\n",
" * time: 1.3102009296417236\n",
" 354 7.592423e+00 2.344909e-03\n",
" * time: 1.3130059242248535\n",
" 355 7.592422e+00 4.870236e-03\n",
" * time: 1.315911054611206\n",
" 356 7.592420e+00 3.030661e-03\n",
" * time: 1.3195528984069824\n",
" 357 7.592418e+00 2.954268e-03\n",
" * time: 1.3231160640716553\n",
" 358 7.592417e+00 2.301977e-03\n",
" * time: 1.3268790245056152\n",
" 359 7.592416e+00 2.550794e-03\n",
" * time: 1.3297269344329834\n",
" 360 7.592414e+00 1.496020e-03\n",
" * time: 1.3332691192626953\n",
" 361 7.592414e+00 2.660652e-03\n",
" * time: 1.3473129272460938\n",
" 362 7.592413e+00 2.044141e-03\n",
" * time: 1.351012945175171\n",
" 363 7.592413e+00 2.442139e-03\n",
" * time: 1.3538479804992676\n",
" 364 7.592412e+00 1.756013e-03\n",
" * time: 1.3566410541534424\n",
" 365 7.592411e+00 2.670431e-03\n",
" * time: 1.3595750331878662\n",
" 366 7.592409e+00 2.371550e-03\n",
" * time: 1.3624539375305176\n",
" 367 7.592407e+00 2.066133e-03\n",
" * time: 1.3653059005737305\n",
" 368 7.592407e+00 4.395356e-03\n",
" * time: 1.3682539463043213\n",
" 369 7.592406e+00 3.152695e-03\n",
" * time: 1.3711140155792236\n",
" 370 7.592405e+00 3.156834e-03\n",
" * time: 1.374000072479248\n",
" 371 7.592404e+00 2.874552e-03\n",
" * time: 1.3768858909606934\n",
" 372 7.592402e+00 1.884546e-03\n",
" * time: 1.380566120147705\n",
" 373 7.592399e+00 2.671336e-03\n",
" * time: 1.3834619522094727\n",
" 374 7.592399e+00 4.547401e-03\n",
" * time: 1.3862860202789307\n",
" 375 7.592397e+00 3.212882e-03\n",
" * time: 1.3899900913238525\n",
" 376 7.592395e+00 4.199533e-03\n",
" * time: 1.3927829265594482\n",
" 377 7.592395e+00 3.253342e-03\n",
" * time: 1.3956260681152344\n",
" 378 7.592394e+00 3.139471e-03\n",
" * time: 1.3994269371032715\n",
" 379 7.592391e+00 2.265809e-03\n",
" * time: 1.4030780792236328\n",
" 380 7.592389e+00 2.134461e-03\n",
" * time: 1.406836986541748\n",
" 381 7.592388e+00 1.616848e-03\n",
" * time: 1.4105539321899414\n",
" 382 7.592387e+00 2.468446e-03\n",
" * time: 1.4133539199829102\n",
" 383 7.592386e+00 1.990963e-03\n",
" * time: 1.4161670207977295\n",
" 384 7.592385e+00 2.426971e-03\n",
" * time: 1.4190449714660645\n",
" 385 7.592383e+00 1.493747e-03\n",
" * time: 1.4226291179656982\n",
" 386 7.592383e+00 2.296878e-03\n",
" * time: 1.425429105758667\n",
" 387 7.592381e+00 1.815985e-03\n",
" * time: 1.4283480644226074\n",
" 388 7.592381e+00 1.073100e-03\n",
" * time: 1.4319169521331787\n",
" 389 7.592380e+00 1.505405e-03\n",
" * time: 1.434809923171997\n",
" 390 7.592379e+00 1.118360e-03\n",
" * time: 1.4376649856567383\n",
" 391 7.592378e+00 1.396849e-03\n",
" * time: 1.4404780864715576\n",
" 392 7.592378e+00 1.321780e-03\n",
" * time: 1.4546239376068115\n",
" 393 7.592377e+00 1.538184e-03\n",
" * time: 1.4574809074401855\n",
" 394 7.592377e+00 2.041113e-03\n",
" * time: 1.4604229927062988\n",
" 395 7.592376e+00 1.178412e-03\n",
" * time: 1.4640240669250488\n",
" 396 7.592376e+00 1.662681e-03\n",
" * time: 1.466865062713623\n",
" 397 7.592375e+00 1.220468e-03\n",
" * time: 1.4706740379333496\n",
" 398 7.592375e+00 1.454911e-03\n",
" * time: 1.4734809398651123\n",
" 399 7.592374e+00 1.595429e-03\n",
" * time: 1.4763340950012207\n",
" 400 7.592374e+00 2.089198e-03\n",
" * time: 1.4792931079864502\n",
" 401 7.592373e+00 2.237055e-03\n",
" * time: 1.482184886932373\n",
" 402 7.592373e+00 1.901750e-03\n",
" * time: 1.4851739406585693\n",
" 403 7.592372e+00 1.949404e-03\n",
" * time: 1.4881210327148438\n",
" 404 7.592371e+00 2.279402e-03\n",
" * time: 1.4911069869995117\n",
" 405 7.592371e+00 1.451336e-03\n",
" * time: 1.4946908950805664\n",
" 406 7.592370e+00 2.359186e-03\n",
" * time: 1.4975121021270752\n",
" 407 7.592370e+00 1.677096e-03\n",
" * time: 1.5004990100860596\n",
" 408 7.592370e+00 1.927000e-03\n",
" * time: 1.5033760070800781\n",
" 409 7.592369e+00 1.364479e-03\n",
" * time: 1.5070679187774658\n",
" 410 7.592369e+00 1.457918e-03\n",
" * time: 1.509995937347412\n",
" 411 7.592369e+00 1.745647e-03\n",
" * time: 1.512861967086792\n",
" 412 7.592369e+00 1.080973e-03\n",
" * time: 1.5158870220184326\n",
" 413 7.592369e+00 1.864276e-03\n",
" * time: 1.5187909603118896\n",
" 414 7.592368e+00 1.262349e-03\n",
" * time: 1.521677017211914\n",
" 415 7.592368e+00 1.436547e-03\n",
" * time: 1.5243709087371826\n",
" 416 7.592367e+00 1.398478e-03\n",
" * time: 1.5271599292755127\n",
" 417 7.592367e+00 1.345295e-03\n",
" * time: 1.530914068222046\n",
" 418 7.592367e+00 1.006982e-03\n",
" * time: 1.5344440937042236\n",
" 419 7.592367e+00 1.193626e-03\n",
" * time: 1.5373649597167969\n",
" 420 7.592366e+00 9.131813e-04\n",
" * time: 1.5403540134429932\n",
" 421 7.592366e+00 7.624140e-04\n",
" * time: 1.5439229011535645\n",
" 422 7.592366e+00 6.121633e-04\n",
" * time: 1.558825969696045\n",
" 423 7.592366e+00 5.119024e-04\n",
" * time: 1.5625450611114502\n",
" 424 7.592366e+00 4.357370e-04\n",
" * time: 1.5663580894470215\n",
" 425 7.592366e+00 7.702982e-04\n",
" * time: 1.5691630840301514\n",
" 426 7.592366e+00 3.740865e-04\n",
" * time: 1.5728020668029785\n",
" 427 7.592366e+00 5.089640e-04\n",
" * time: 1.5756359100341797\n",
" 428 7.592366e+00 4.239451e-04\n",
" * time: 1.5784869194030762\n",
" 429 7.592366e+00 7.490375e-04\n",
" * time: 1.5814979076385498\n",
" 430 7.592366e+00 3.776566e-04\n",
" * time: 1.5842950344085693\n",
" 431 7.592365e+00 4.087774e-04\n",
" * time: 1.587151050567627\n",
" 432 7.592365e+00 2.657563e-04\n",
" * time: 1.5900459289550781\n",
" 433 7.592365e+00 4.712084e-04\n",
" * time: 1.5929300785064697\n",
" 434 7.592365e+00 3.322944e-04\n",
" * time: 1.5957729816436768\n",
" 435 7.592365e+00 2.891801e-04\n",
" * time: 1.5986430644989014\n",
" 436 7.592365e+00 2.442110e-04\n",
" * time: 1.6023108959197998\n",
" 437 7.592365e+00 3.899859e-04\n",
" * time: 1.6051061153411865\n",
" 438 7.592365e+00 3.447445e-04\n",
" * time: 1.6079668998718262\n",
" 439 7.592365e+00 2.755979e-04\n",
" * time: 1.610870122909546\n",
" 440 7.592365e+00 1.944922e-04\n",
" * time: 1.6145598888397217\n",
" 441 7.592365e+00 3.396783e-04\n",
" * time: 1.6173210144042969\n",
" 442 7.592365e+00 1.958185e-04\n",
" * time: 1.6209568977355957\n",
" 443 7.592365e+00 2.731380e-04\n",
" * time: 1.6237759590148926\n",
" 444 7.592365e+00 4.092511e-04\n",
" * time: 1.626615047454834\n",
" 445 7.592365e+00 1.719468e-04\n",
" * time: 1.6302990913391113\n",
" 446 7.592365e+00 2.644946e-04\n",
" * time: 1.633188009262085\n",
" 447 7.592365e+00 2.171367e-04\n",
" * time: 1.6359519958496094\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": "Plot{Plots.GRBackend() n=1}",
"image/png": "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OTk5Dv00Lfn5+bVp0yY7O1v8+XczPz+/srLSoZ9mcHCwWq1u06aN9GNsbOzvv/8uan1oS0tLHfpp3mEYCJUxZMiQjRs3Sodivv766yFDhth7j/6qFStWLF68ODU1tWnTpubGIUOGpKamSsXTN23aFB0dbXkBicMxGAx6vV66XVVVdfz48fDwcCHEkCFDduzYUVZWJoTYsGFD+/btQ0ND7bmjf03nzp137969dOnSpUuXTpgwITIycunSpWq1un///r/++qv0Z3T//v06na5Tp0723lnb6fV688zv8uXLR48ejY2NFUIMGTJk27Zt5eXlQogNGzZ07NgxIED28gh3Dzc3twEDBhw8eFD68eDBg9KgOGTIkJ07d0of2o0bNyYkJFj+5sJt2Dut43ieffbZxMREDw+PyMjIxMTE9PR0k8l08+bN++67r1u3bmPGjGnSpMnZs2ftvZt/SU5OjkqlCg8PT/yv7777Tvqv5OTkNm3aPP744wEBAVu2bLHvfv5Fly5datKkybBhw5KTk5s1a9a7d++Kigrpv0aNGtW2bduJEycGBATs3LnTvvupoOXLl5tToyaTafbs2REREZMmTQoKClq6dKkdd+yvy8rKCg4OHjFixJgxY/z8/J555hmp3Wg0DhkyJCEh4bHHHvP39//hhx/supsKOHLkSGBg4GOPPTZw4MCWLVtevXpVah89erT5Q7tjxw777qRjweoTsp0/f94yCBMVFSXl7nQ63e7du2/evNm7d28/Pz/77aACqqqqTpw4YdkSEREhXWxuMpl+/PHHnJycTp06NWvWzE47qJhLly4dPXq0srKyVatW7du3N7ebTKa9e/fm5uZ27tw5LCzMjnuorPz8/IKCgujoaHNLenr6+fPnExISbrvO3N3v9OnTp0+fNhqNcXFxUVFR5naj0bhnz568vLyuXbs69OTerKCgYPfu3Q0bNuzSpYv5LIzJZNq3b9+1a9fusQ/tHYCBEAAAnBrOEQIAgFPDQAgAAE4NAyEAADg1DIQAAODUMBACAIBTw0AIAABODQMhAAA4NQyEAADg1DAQAgCAU8NACAAATg0DIQAAOLX/D7XcFNrO0Qk9AAAAAElFTkSuQmCC",
"text/html": [
"\n",
"\n"
],
"image/svg+xml": [
"\n",
"\n"
]
},
"metadata": {},
"execution_count": 5
}
],
"cell_type": "code",
"source": [
"terms = [Kinetic(),\n",
" ExternalFromReal(X -> pot(X...)),\n",
" PowerNonlinearity(C, α),\n",
" Magnetic(Apot),\n",
"]\n",
"model = Model(lattice; n_electrons=n_electrons,\n",
" terms=terms, spin_polarization=:spinless) # \"spinless electrons\"\n",
"basis = PlaneWaveBasis(model; Ecut, kgrid=(1, 1, 1))\n",
"scfres = direct_minimization(basis, tol=1e-5) # Reduce tol for production\n",
"heatmap(scfres.ρ[:, :, 1, 1], c=:blues)"
],
"metadata": {},
"execution_count": 5
}
],
"nbformat_minor": 3,
"metadata": {
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.6.3"
},
"kernelspec": {
"name": "julia-1.6",
"display_name": "Julia 1.6.3",
"language": "julia"
}
},
"nbformat": 4
}