|
41 | 41 | "source": [
|
42 | 42 | "import math as m\n",
|
43 | 43 | "import numpy as np\n",
|
44 |
| - "#impurt cupy as np\n", |
45 | 44 | "import scipy as sp\n",
|
46 | 45 | "import scipy.linalg as splalg\n",
|
47 |
| - "#import skcuda.linalg as splalg\n", |
48 | 46 | "import matplotlib.pyplot as plt\n",
|
49 |
| - "%matplotlib inline\n", |
50 |
| - "#import os\n", |
51 |
| - "#os.environ['CUDA_VISIBLE_DEVICES'] = '-1' #disable gpu usage" |
| 47 | + "%matplotlib inline" |
52 | 48 | ]
|
53 | 49 | },
|
54 | 50 | {
|
|
3176 | 3172 | "name": "stdout",
|
3177 | 3173 | "output_type": "stream",
|
3178 | 3174 | "text": [
|
3179 |
| - "State: 0 Energy: -0.2315937694988972\n", |
| 3175 | + "State: 0 Energy: -0.23159376856708852\n", |
3180 | 3176 | "\n",
|
3181 |
| - "Total energy: -0.4452697411031219 NIST value: -0.445671\n" |
| 3177 | + "Total energy: -0.4452697411031217 NIST value: -0.445671\n" |
3182 | 3178 | ]
|
3183 | 3179 | }
|
3184 | 3180 | ],
|
|
3198 | 3194 | "W = np.random.randn(np.prod(S),Ns) + 1j * np.random.randn(np.prod(S),Ns)\n",
|
3199 | 3195 | "W = orthogonalize(W)\n",
|
3200 | 3196 | "\n",
|
3201 |
| - "W, Elist = sd(W, 25, False)\n", |
| 3197 | + "W, Elist = sd(W, 30, False)\n", |
3202 | 3198 | "W = orthogonalize(W)\n",
|
3203 | 3199 | "\n",
|
3204 |
| - "W, Elist = pccg(W,25,1, False)\n", |
| 3200 | + "W, Elist = pccg(W, 30, 1, False)\n", |
3205 | 3201 | "\n",
|
3206 | 3202 | "Psi, epsilon = getPsi(W)\n",
|
3207 | 3203 | "\n",
|
|
3266 | 3262 | "name": "stdout",
|
3267 | 3263 | "output_type": "stream",
|
3268 | 3264 | "text": [
|
3269 |
| - "State: 0 Energy: -0.3659044983263073\n", |
| 3265 | + "State: 0 Energy: -0.36590449791075863\n", |
3270 | 3266 | "\n",
|
3271 |
| - "Total energy: -1.135952510684748 Expected: -1.136\n" |
| 3267 | + "Total energy: -1.135952510684747 Expected: -1.136\n" |
3272 | 3268 | ]
|
3273 | 3269 | }
|
3274 | 3270 | ],
|
|
3288 | 3284 | "W = np.random.randn(np.prod(S),Ns) + 1j * np.random.randn(np.prod(S),Ns)\n",
|
3289 | 3285 | "W = orthogonalize(W)\n",
|
3290 | 3286 | "\n",
|
3291 |
| - "W, Elist = sd(W, 25, False)\n", |
| 3287 | + "W, Elist = sd(W, 30, False)\n", |
3292 | 3288 | "W = orthogonalize(W)\n",
|
3293 | 3289 | "\n",
|
3294 |
| - "W, Elist = pccg(W,25,1, False)\n", |
| 3290 | + "W, Elist = pccg(W, 30, 1, False)\n", |
3295 | 3291 | "\n",
|
3296 | 3292 | "Psi, epsilon = getPsi(W)\n",
|
3297 | 3293 | "\n",
|
|
3484 | 3480 | "name": "stdout",
|
3485 | 3481 | "output_type": "stream",
|
3486 | 3482 | "text": [
|
3487 |
| - "State: 0 Energy: -0.22926194992364968\n", |
| 3483 | + "State: 0 Energy: -0.22926194992322046\n", |
3488 | 3484 | "\n",
|
3489 |
| - "Total energy: -0.44048365378580023 NIST value: -0.445671\n" |
| 3485 | + "Total energy: -0.4404836537858003 NIST value: -0.445671\n" |
3490 | 3486 | ]
|
3491 | 3487 | }
|
3492 | 3488 | ],
|
|
3506 | 3502 | "W = np.random.randn(active[0].size,Ns) + 1j * np.random.randn(active[0].size,Ns)\n",
|
3507 | 3503 | "W = orthogonalize(W)\n",
|
3508 | 3504 | "\n",
|
3509 |
| - "W, Elist = sd(W, 25, False)\n", |
| 3505 | + "W, Elist = sd(W, 30, False)\n", |
3510 | 3506 | "W = orthogonalize(W)\n",
|
3511 | 3507 | "\n",
|
3512 |
| - "W, Elist = pccg(W,25,1, False)\n", |
| 3508 | + "W, Elist = pccg(W, 30, 1, False)\n", |
3513 | 3509 | "\n",
|
3514 | 3510 | "Psi, epsilon = getPsi(W)\n",
|
3515 | 3511 | "\n",
|
|
3591 | 3587 | "name": "stdout",
|
3592 | 3588 | "output_type": "stream",
|
3593 | 3589 | "text": [
|
3594 |
| - "State: 0 Energy: -0.22926194991947513\n", |
| 3590 | + "State: 0 Energy: -0.22926194992399263\n", |
3595 | 3591 | "\n",
|
3596 | 3592 | "Total energy: -0.4404836537858002 NIST value: -0.445671\n"
|
3597 | 3593 | ]
|
|
3603 | 3599 | "W = np.random.randn(active[0].size,Ns) + 1j * np.random.randn(active[0].size,Ns)\n",
|
3604 | 3600 | "W = orthogonalize(W)\n",
|
3605 | 3601 | "\n",
|
3606 |
| - "W, Elist = sd(W, 25, False)\n", |
| 3602 | + "W, Elist = sd(W, 30, False)\n", |
3607 | 3603 | "W = orthogonalize(W)\n",
|
3608 | 3604 | "\n",
|
3609 |
| - "W, Elist = pccg(W,25,1, False)\n", |
| 3605 | + "W, Elist = pccg(W, 30, 1, False)\n", |
3610 | 3606 | "\n",
|
3611 | 3607 | "Psi, epsilon = getPsi(W)\n",
|
3612 | 3608 | "\n",
|
|
4144 | 4140 | },
|
4145 | 4141 | {
|
4146 | 4142 | "cell_type": "code",
|
4147 |
| - "execution_count": 117, |
| 4143 | + "execution_count": 125, |
4148 | 4144 | "metadata": {},
|
4149 | 4145 | "outputs": [
|
4150 | 4146 | {
|
4151 | 4147 | "name": "stdout",
|
4152 | 4148 | "output_type": "stream",
|
4153 | 4149 | "text": [
|
4154 |
| - "Niter: 0 E: -1.608521644539682\n", |
4155 |
| - "Anglecos: -0.8818111992133328\n", |
4156 |
| - "Niter: 1 E: -1.611714513927931\n", |
4157 |
| - "Anglecos: 0.016723575818258063\n", |
4158 |
| - "Niter: 2 E: -1.6121626772712896\n", |
4159 |
| - "Anglecos: 0.0006891945788002626\n", |
4160 |
| - "Niter: 3 E: -1.6123732286351387\n", |
4161 |
| - "Anglecos: 0.0015528432070223807\n", |
4162 |
| - "Niter: 4 E: -1.61250256728854\n", |
4163 |
| - "Anglecos: 0.00035037897018077305\n", |
4164 |
| - "Niter: 5 E: -1.6125878678459544\n", |
4165 |
| - "Anglecos: 0.0012822070416834707\n", |
4166 |
| - "Niter: 6 E: -1.612649347656511\n", |
4167 |
| - "Anglecos: 0.0011010389937777308\n", |
4168 |
| - "Niter: 7 E: -1.6126859609706246\n", |
4169 |
| - "Anglecos: 0.0015406748730367463\n", |
4170 |
| - "Niter: 8 E: -1.6127136471665966\n", |
4171 |
| - "Anglecos: 0.0016314534283183447\n", |
4172 |
| - "Niter: 9 E: -1.6127184773929353\n" |
| 4150 | + "Niter: 0 E: -1.6126669126024666\n", |
| 4151 | + "Anglecos: -0.8768535387313062\n", |
| 4152 | + "Niter: 1 E: -1.612928646844911\n", |
| 4153 | + "Anglecos: -0.0004790704270254443\n", |
| 4154 | + "Niter: 2 E: -1.6129837551172024\n", |
| 4155 | + "Anglecos: 0.00012053526888059705\n", |
| 4156 | + "Niter: 3 E: -1.613007241417608\n", |
| 4157 | + "Anglecos: 5.327052421027639e-06\n", |
| 4158 | + "Niter: 4 E: -1.61302262536089\n", |
| 4159 | + "Anglecos: 3.495269976882052e-05\n", |
| 4160 | + "Niter: 5 E: -1.61303297781298\n", |
| 4161 | + "Anglecos: 0.0001073010117246911\n", |
| 4162 | + "Niter: 6 E: -1.613040436632165\n", |
| 4163 | + "Anglecos: 2.2757597129762557e-06\n", |
| 4164 | + "Niter: 7 E: -1.6130461102323566\n", |
| 4165 | + "Anglecos: 0.00016698870886137226\n", |
| 4166 | + "Niter: 8 E: -1.6130506881869784\n", |
| 4167 | + "Anglecos: 2.869190160151949e-05\n", |
| 4168 | + "Niter: 9 E: -1.6130540511326215\n" |
4173 | 4169 | ]
|
4174 | 4170 | }
|
4175 | 4171 | ],
|
4176 | 4172 | "source": [
|
4177 | 4173 | "np.random.seed(100)\n",
|
4178 | 4174 | "\n",
|
4179 |
| - "#something is not exactly right here\n", |
4180 | 4175 | "W = np.random.randn(active[0].size,Ns) + 1j * np.random.randn(active[0].size,Ns)\n",
|
4181 | 4176 | "W = orthogonalize(W)\n",
|
4182 | 4177 | "\n",
|
4183 |
| - "W, Elist = sd(W, 300, False)\n", |
| 4178 | + "W, Elist = sd(W, 600, False)\n", |
4184 | 4179 | "W = orthogonalize(W)\n",
|
4185 | 4180 | "\n",
|
4186 |
| - "W, Elist = lm(W, 300, False)\n", |
| 4181 | + "W, Elist = lm(W, 600, False)\n", |
4187 | 4182 | "\n",
|
4188 | 4183 | "# the preconditioned variants do not work so well here\n",
|
4189 | 4184 | "W = orthogonalize(W)\n",
|
4190 | 4185 | "W, Elist = pclm(W, 10, True)\n",
|
4191 | 4186 | "\n",
|
4192 |
| - "#W, Elist = pccg(W, 10, 1, True, 0.000000001)" |
| 4187 | + "#W, Elist = pccg(W, 10, 1, True)" |
4193 | 4188 | ]
|
4194 | 4189 | },
|
4195 | 4190 | {
|
4196 | 4191 | "cell_type": "code",
|
4197 |
| - "execution_count": 118, |
| 4192 | + "execution_count": 126, |
4198 | 4193 | "metadata": {},
|
4199 | 4194 | "outputs": [
|
4200 | 4195 | {
|
4201 | 4196 | "name": "stdout",
|
4202 | 4197 | "output_type": "stream",
|
4203 | 4198 | "text": [
|
4204 |
| - "State: 0 Energy: -0.36206660142973934\n", |
4205 |
| - "State: 1 Energy: -0.08179735273075626\n", |
4206 |
| - "State: 2 Energy: -0.08179050361480827\n", |
4207 |
| - "State: 3 Energy: -0.08158806374169289\n", |
| 4199 | + "State: 0 Energy: -0.3618190185599205\n", |
| 4200 | + "State: 1 Energy: -0.08160355959823264\n", |
| 4201 | + "State: 2 Energy: -0.08160195312004917\n", |
| 4202 | + "State: 3 Energy: -0.08156312259730072\n", |
4208 | 4203 | "\n",
|
4209 |
| - "Total energy: -3.7297263666803318\n", |
4210 |
| - "Electronic energy: -1.6127184773929353\n", |
4211 |
| - "Energy dif beteen s and p orbitals: 0.28026924869898306 Expected (from NIST data): 0.276641\n" |
| 4204 | + "Total energy: -3.7300619404200184\n", |
| 4205 | + "Electronic energy: -1.6130540511326215\n", |
| 4206 | + "Energy dif beteen s and p orbitals: 0.28021545896168787 Expected (from NIST data): 0.276641\n" |
4212 | 4207 | ]
|
4213 | 4208 | }
|
4214 | 4209 | ],
|
|
4224 | 4219 | "print('Electronic energy:', E)\n",
|
4225 | 4220 | "print('Energy dif beteen s and p orbitals:', epsilon[1] - epsilon[0], 'Expected (from NIST data): 0.276641')"
|
4226 | 4221 | ]
|
4227 |
| - }, |
4228 |
| - { |
4229 |
| - "cell_type": "code", |
4230 |
| - "execution_count": null, |
4231 |
| - "metadata": {}, |
4232 |
| - "outputs": [], |
4233 |
| - "source": [] |
4234 | 4222 | }
|
4235 | 4223 | ],
|
4236 | 4224 | "metadata": {
|
|
0 commit comments