{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Generating a basic Grid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Grid.ipynb\n", "\n", "- Creates a basic grid by specifying the number of points. Each grid depends on the number of radial/angular blocks that is multiplied by the number of points per block. \n", "\n", "- Naturally, with a greater number of points, the calculation is more accurate and expensive. \n", "\n", "- Here, we do an example with the Boron atom. Additionally, we include a 2D plot to see how the points are distributed in space. \n", "\n", "- Lastly, we create a 3D plot showing the convergence of the energy with respect to the number of points." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import plotly.graph_objects as go\n", "from CADMium import Psgrid\n", "from CADMium import Kohnsham\n", "\n", "#Distance of the nucley from grid center\n", "a = 5\n", "\n", "#Grid Options\n", "NP = 5 #Number of points per block\n", "NM = [3,3] #Number of blocks [angular, radial]\n", "L = np.arccosh(15./a)#Maximum radial coordinate value\n", "loc = np.array(range(-4,5)) #Non inclusive on upper bound\n", "\n", "#Create and initialize grid object\n", "grid = Psgrid(NP, NM, a, L, loc)\n", "grid.initialize()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(dpi=100)\n", "\n", "ax.scatter(np.vstack((-np.flip(grid.Z), grid.Z)), \n", " np.vstack((-np.flip(grid.Y), grid.Y)))\n", "\n", "# The Boron atom is located at one of the dense areas.\n", "# If two atoms are present, each one is located at each foci. \n", "# The separation distance translate into the distance between foci. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How much would our grid affect a calculation? \n", "\n", "Let us redo the previous procedure with the ability of changing both the number of blocks and points per block. \n", "Don't fret too much on each of the small details of the calculation, you'll be able to abstract them as you follow more examples. \n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Define the number of points that we are going to explore. \n", "# We use very small values to make it go fast. \n", "\n", "points_per_block = [7]\n", "ang_points = [3, 5, 7]\n", "rad_points = [3, 5, 7]\n", "energy = []\n", "all_ang = []\n", "all_rad = []\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.85187 -2.76665e-01 +1.00000e+00\n", " 2 -25.48169 -4.21852e-01 +1.46361e-01\n", " 3 -24.55273 -4.69748e-01 +7.05942e-02\n", " 4 -24.21184 -4.86792e-01 +3.41545e-02\n", " 5 -24.08530 -4.92447e-01 +1.71583e-02\n", " 6 -24.03953 -4.94155e-01 +8.75097e-03\n", " 7 -24.02406 -4.94571e-01 +4.41074e-03\n", " 8 -24.01737 -4.94717e-01 +2.37986e-03\n", " 9 -24.01626 -4.94601e-01 +1.22774e-03\n", " 10 -24.01604 -4.94522e-01 +6.31166e-04\n", " 11 -24.01606 -4.94473e-01 +3.24030e-04\n", " 12 -24.01612 -4.94445e-01 +1.66164e-04\n", " 13 -24.01617 -4.94429e-01 +8.51265e-05\n", " 14 -24.01620 -4.94421e-01 +4.35799e-05\n", " 15 -24.01622 -4.94416e-01 +2.22995e-05\n", " 16 -24.01623 -4.94414e-01 +1.14069e-05\n", " 17 -24.01623 -4.94413e-01 +5.83399e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -28.13381 -1.35263e-01 +1.00000e+00\n", " 2 -25.24803 -2.98326e-01 +1.59366e-01\n", " 3 -24.16902 -3.58970e-01 +8.33263e-02\n", " 4 -23.80344 -3.81395e-01 +4.15207e-02\n", " 5 -23.68091 -3.90414e-01 +2.08619e-02\n", " 6 -23.64357 -3.94111e-01 +1.07453e-02\n", " 7 -23.63448 -3.95609e-01 +5.61351e-03\n", " 8 -23.63346 -3.96210e-01 +2.84760e-03\n", " 9 -23.63434 -3.96493e-01 +1.64363e-03\n", " 10 -23.63590 -3.96559e-01 +8.62630e-04\n", " 11 -23.63687 -3.96581e-01 +4.50125e-04\n", " 12 -23.63743 -3.96587e-01 +2.34110e-04\n", " 13 -23.63774 -3.96589e-01 +1.21437e-04\n", " 14 -23.63791 -3.96589e-01 +6.28507e-05\n", " 15 -23.63800 -3.96588e-01 +3.24711e-05\n", " 16 -23.63805 -3.96588e-01 +1.67689e-05\n", " 17 -23.63807 -3.96588e-01 +8.65555e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.83082 -2.95307e-01 +1.00000e+00\n", " 2 -25.71877 -4.52539e-01 +1.48269e-01\n", " 3 -24.86640 -5.07378e-01 +7.64401e-02\n", " 4 -24.55315 -5.28981e-01 +3.56528e-02\n", " 5 -24.44030 -5.36482e-01 +1.76132e-02\n", " 6 -24.40135 -5.38959e-01 +8.87665e-03\n", " 7 -24.38923 -5.39698e-01 +4.46973e-03\n", " 8 -24.38396 -5.40020e-01 +2.39187e-03\n", " 9 -24.38390 -5.39938e-01 +1.23567e-03\n", " 10 -24.38418 -5.39872e-01 +6.33072e-04\n", " 11 -24.38444 -5.39828e-01 +3.24961e-04\n", " 12 -24.38462 -5.39802e-01 +1.66727e-04\n", " 13 -24.38473 -5.39788e-01 +8.55058e-05\n", " 14 -24.38479 -5.39779e-01 +4.37975e-05\n", " 15 -24.38482 -5.39775e-01 +2.24166e-05\n", " 16 -24.38483 -5.39773e-01 +1.14660e-05\n", " 17 -24.38484 -5.39771e-01 +5.86277e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.73104 -2.37631e-01 +1.00000e+00\n", " 2 -25.38780 -4.04895e-01 +1.54734e-01\n", " 3 -24.46449 -4.60200e-01 +7.95738e-02\n", " 4 -24.13455 -4.79057e-01 +3.80463e-02\n", " 5 -24.01586 -4.85170e-01 +1.89430e-02\n", " 6 -23.97468 -4.86944e-01 +9.61860e-03\n", " 7 -23.96196 -4.87333e-01 +4.84081e-03\n", " 8 -23.95601 -4.87480e-01 +2.60575e-03\n", " 9 -23.95569 -4.87317e-01 +1.34488e-03\n", " 10 -23.95584 -4.87212e-01 +6.88668e-04\n", " 11 -23.95603 -4.87150e-01 +3.52830e-04\n", " 12 -23.95617 -4.87116e-01 +1.80848e-04\n", " 13 -23.95625 -4.87097e-01 +9.26052e-05\n", " 14 -23.95630 -4.87087e-01 +4.73711e-05\n", " 15 -23.95633 -4.87081e-01 +2.42147e-05\n", " 16 -23.95634 -4.87078e-01 +1.23727e-05\n", " 17 -23.95635 -4.87077e-01 +6.32047e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -31.15721 -4.71411e-02 +1.00000e+00\n", " 2 -25.04459 -2.01558e-01 +2.44070e-01\n", " 3 -23.05259 -2.43010e-01 +1.18335e-01\n", " 4 -22.39443 -2.46425e-01 +5.97137e-02\n", " 5 -22.17192 -2.42830e-01 +2.96003e-02\n", " 6 -22.09417 -2.39592e-01 +1.48213e-02\n", " 7 -22.06573 -2.37572e-01 +7.45135e-03\n", " 8 -22.05631 -2.36458e-01 +3.73692e-03\n", " 9 -22.05046 -2.35878e-01 +1.90525e-03\n", " 10 -22.04857 -2.35579e-01 +9.66113e-04\n", " 11 -22.04774 -2.35429e-01 +4.89302e-04\n", " 12 -22.04736 -2.35354e-01 +2.48034e-04\n", " 13 -22.04718 -2.35316e-01 +1.25817e-04\n", " 14 -22.04710 -2.35298e-01 +6.38668e-05\n", " 15 -22.04705 -2.35289e-01 +3.24417e-05\n", " 16 -22.04703 -2.35284e-01 +1.64907e-05\n", " 17 -22.04702 -2.35282e-01 +8.38777e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.85810 -2.56719e-01 +1.00000e+00\n", " 2 -25.49116 -4.16210e-01 +1.54027e-01\n", " 3 -24.55624 -4.68619e-01 +7.90912e-02\n", " 4 -24.21984 -4.86945e-01 +3.81190e-02\n", " 5 -24.09901 -4.92878e-01 +1.89401e-02\n", " 6 -24.05728 -4.94595e-01 +9.66290e-03\n", " 7 -24.04457 -4.94966e-01 +4.87450e-03\n", " 8 -24.03864 -4.95104e-01 +2.64141e-03\n", " 9 -24.03841 -4.94943e-01 +1.36651e-03\n", " 10 -24.03862 -4.94840e-01 +7.02018e-04\n", " 11 -24.03885 -4.94778e-01 +3.60105e-04\n", " 12 -24.03901 -4.94744e-01 +1.84400e-04\n", " 13 -24.03911 -4.94725e-01 +9.43074e-05\n", " 14 -24.03917 -4.94715e-01 +4.81841e-05\n", " 15 -24.03920 -4.94710e-01 +2.46010e-05\n", " 16 -24.03921 -4.94707e-01 +1.25539e-05\n", " 17 -24.03922 -4.94705e-01 +6.40463e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.43654 -1.65412e-01 +1.00000e+00\n", " 2 -24.78830 -3.33232e-01 +1.58872e-01\n", " 3 -23.81365 -3.83609e-01 +8.28597e-02\n", " 4 -23.48505 -3.98478e-01 +4.09655e-02\n", " 5 -23.37073 -4.02390e-01 +2.06317e-02\n", " 6 -23.33215 -4.03052e-01 +1.06205e-02\n", " 7 -23.31975 -4.02900e-01 +5.46911e-03\n", " 8 -23.31684 -4.02644e-01 +2.75276e-03\n", " 9 -23.31487 -4.02494e-01 +1.47969e-03\n", " 10 -23.31495 -4.02343e-01 +7.59680e-04\n", " 11 -23.31508 -4.02260e-01 +3.88025e-04\n", " 12 -23.31518 -4.02216e-01 +1.98104e-04\n", " 13 -23.31524 -4.02193e-01 +1.01043e-04\n", " 14 -23.31527 -4.02180e-01 +5.15096e-05\n", " 15 -23.31529 -4.02174e-01 +2.62641e-05\n", " 16 -23.31530 -4.02171e-01 +1.33971e-05\n", " 17 -23.31530 -4.02169e-01 +6.83600e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.92058 -2.58146e-01 +1.00000e+00\n", " 2 -25.55068 -4.12107e-01 +1.52829e-01\n", " 3 -24.60402 -4.63601e-01 +7.70864e-02\n", " 4 -24.26597 -4.82169e-01 +3.75801e-02\n", " 5 -24.14328 -4.88585e-01 +1.87645e-02\n", " 6 -24.10047 -4.90660e-01 +9.58610e-03\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 7 -24.08707 -4.91243e-01 +4.82854e-03\n", " 8 -24.08116 -4.91501e-01 +2.62135e-03\n", " 9 -24.08098 -4.91392e-01 +1.35464e-03\n", " 10 -24.08123 -4.91313e-01 +6.95867e-04\n", " 11 -24.08150 -4.91263e-01 +3.57345e-04\n", " 12 -24.08168 -4.91234e-01 +1.83205e-04\n", " 13 -24.08179 -4.91218e-01 +9.38200e-05\n", " 14 -24.08185 -4.91209e-01 +4.80092e-05\n", " 15 -24.08189 -4.91204e-01 +2.45549e-05\n", " 16 -24.08191 -4.91201e-01 +1.25525e-05\n", " 17 -24.08192 -4.91200e-01 +6.41453e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -25.85664 -4.28936e-02 +1.00000e+00\n", " 2 -22.05906 -1.51416e-01 +2.22167e-01\n", " 3 -20.97351 -1.46369e-01 +1.12019e-01\n", " 4 -20.63250 -1.29429e-01 +5.55638e-02\n", " 5 -20.50740 -1.18679e-01 +2.70844e-02\n", " 6 -20.45576 -1.13076e-01 +1.32632e-02\n", " 7 -20.43280 -1.10270e-01 +6.55342e-03\n", " 8 -20.42403 -1.08891e-01 +3.28304e-03\n", " 9 -20.41707 -1.08190e-01 +1.61186e-03\n", " 10 -20.41433 -1.07879e-01 +8.08838e-04\n", " 11 -20.41300 -1.07725e-01 +4.06351e-04\n", " 12 -20.41234 -1.07649e-01 +2.04729e-04\n", " 13 -20.41201 -1.07611e-01 +1.03250e-04\n", " 14 -20.41184 -1.07593e-01 +5.21464e-05\n", " 15 -20.41176 -1.07584e-01 +2.63651e-05\n", " 16 -20.41172 -1.07579e-01 +1.33403e-05\n", " 17 -20.41169 -1.07577e-01 +6.75589e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.62561 -2.72600e-01 +1.00000e+00\n", " 2 -25.32017 -4.10686e-01 +1.54645e-01\n", " 3 -24.40633 -4.51256e-01 +7.23368e-02\n", " 4 -24.06370 -4.64173e-01 +3.43996e-02\n", " 5 -23.93178 -4.67351e-01 +1.71416e-02\n", " 6 -23.88120 -4.67718e-01 +8.69707e-03\n", " 7 -23.86322 -4.67448e-01 +4.36908e-03\n", " 8 -23.85354 -4.67266e-01 +2.32696e-03\n", " 9 -23.85107 -4.66977e-01 +1.19000e-03\n", " 10 -23.85008 -4.66817e-01 +6.06344e-04\n", " 11 -23.84967 -4.66730e-01 +3.08909e-04\n", " 12 -23.84950 -4.66685e-01 +1.57263e-04\n", " 13 -23.84943 -4.66661e-01 +8.00280e-05\n", " 14 -23.84939 -4.66649e-01 +4.07177e-05\n", " 15 -23.84938 -4.66642e-01 +2.07157e-05\n", " 16 -23.84937 -4.66639e-01 +1.05400e-05\n", " 17 -23.84937 -4.66638e-01 +5.36416e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.85681 -2.56279e-01 +1.00000e+00\n", " 2 -25.48978 -4.16132e-01 +1.54421e-01\n", " 3 -24.55442 -4.68507e-01 +7.88662e-02\n", " 4 -24.21791 -4.86818e-01 +3.79028e-02\n", " 5 -24.09705 -4.92743e-01 +1.89366e-02\n", " 6 -24.05532 -4.94455e-01 +9.66276e-03\n", " 7 -24.04266 -4.94825e-01 +4.86401e-03\n", " 8 -24.03662 -4.94971e-01 +2.64177e-03\n", " 9 -24.03643 -4.94804e-01 +1.36407e-03\n", " 10 -24.03665 -4.94698e-01 +6.99816e-04\n", " 11 -24.03688 -4.94636e-01 +3.58594e-04\n", " 12 -24.03705 -4.94601e-01 +1.83448e-04\n", " 13 -24.03715 -4.94582e-01 +9.37636e-05\n", " 14 -24.03720 -4.94572e-01 +4.78969e-05\n", " 15 -24.03723 -4.94567e-01 +2.44527e-05\n", " 16 -24.03725 -4.94564e-01 +1.24781e-05\n", " 17 -24.03726 -4.94563e-01 +6.36639e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -28.16779 -2.20862e-01 +1.00000e+00\n", " 2 -25.39209 -3.68727e-01 +1.58612e-01\n", " 3 -24.32385 -4.12442e-01 +8.16640e-02\n", " 4 -23.94515 -4.26379e-01 +3.90672e-02\n", " 5 -23.81212 -4.30137e-01 +1.94522e-02\n", " 6 -23.76732 -4.30815e-01 +9.91383e-03\n", " 7 -23.75474 -4.30701e-01 +4.99025e-03\n", " 8 -23.74811 -4.30605e-01 +2.69149e-03\n", " 9 -23.74804 -4.30346e-01 +1.38548e-03\n", " 10 -23.74834 -4.30199e-01 +7.08552e-04\n", " 11 -23.74861 -4.30118e-01 +3.62174e-04\n", " 12 -23.74880 -4.30075e-01 +1.84878e-04\n", " 13 -23.74891 -4.30052e-01 +9.43049e-05\n", " 14 -23.74897 -4.30040e-01 +4.80871e-05\n", " 15 -23.74900 -4.30034e-01 +2.45116e-05\n", " 16 -23.74902 -4.30031e-01 +1.24913e-05\n", " 17 -23.74903 -4.30029e-01 +6.36508e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.81218 -6.48243e-02 +1.00000e+00\n", " 2 -24.65717 -2.53466e-01 +1.83328e-01\n", " 3 -23.52601 -3.22381e-01 +9.09170e-02\n", " 4 -23.16765 -3.35203e-01 +4.75393e-02\n", " 5 -23.04564 -3.36579e-01 +2.40426e-02\n", " 6 -23.00387 -3.35972e-01 +1.23563e-02\n", " 7 -22.99033 -3.35153e-01 +6.35448e-03\n", " 8 -22.98750 -3.34551e-01 +3.20097e-03\n", " 9 -22.98508 -3.34230e-01 +1.71162e-03\n", " 10 -22.98512 -3.33987e-01 +8.75199e-04\n", " 11 -22.98525 -3.33857e-01 +4.46072e-04\n", " 12 -22.98535 -3.33790e-01 +2.27278e-04\n", " 13 -22.98542 -3.33755e-01 +1.15779e-04\n", " 14 -22.98546 -3.33737e-01 +5.89747e-05\n", " 15 -22.98548 -3.33729e-01 +3.00417e-05\n", " 16 -22.98549 -3.33724e-01 +1.53064e-05\n", " 17 -22.98549 -3.33722e-01 +7.80227e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -31.03930 -5.00866e-02 +1.00000e+00\n", " 2 -25.06771 -1.97200e-01 +2.38218e-01\n", " 3 -23.08997 -2.34769e-01 +1.17563e-01\n", " 4 -22.42445 -2.37284e-01 +5.88306e-02\n", " 5 -22.19305 -2.33522e-01 +2.90469e-02\n", " 6 -22.10938 -2.30260e-01 +1.45201e-02\n", " 7 -22.07755 -2.28251e-01 +7.29077e-03\n", " 8 -22.06647 -2.27151e-01 +3.64971e-03\n", " 9 -22.05950 -2.26579e-01 +1.85852e-03\n", " 10 -22.05709 -2.26289e-01 +9.40777e-04\n", " 11 -22.05599 -2.26143e-01 +4.75680e-04\n", " 12 -22.05547 -2.26071e-01 +2.40791e-04\n", " 13 -22.05522 -2.26035e-01 +1.21992e-04\n", " 14 -22.05510 -2.26017e-01 +6.18635e-05\n", " 15 -22.05504 -2.26008e-01 +3.13979e-05\n", " 16 -22.05501 -2.26004e-01 +1.59468e-05\n", " 17 -22.05499 -2.26002e-01 +8.10485e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -28.15547 -1.61171e-01 +1.00000e+00\n", " 2 -25.11139 -3.35052e-01 +1.59761e-01\n", " 3 -23.98812 -3.93157e-01 +8.21289e-02\n", " 4 -23.59137 -4.12427e-01 +4.04434e-02\n", " 5 -23.45067 -4.18037e-01 +2.03572e-02\n", " 6 -23.40166 -4.19353e-01 +1.04408e-02\n", " 7 -23.38494 -4.19465e-01 +5.37458e-03\n", " 8 -23.38005 -4.19320e-01 +2.70210e-03\n", " 9 -23.37736 -4.19229e-01 +1.45514e-03\n", " 10 -23.37708 -4.19096e-01 +7.45595e-04\n", " 11 -23.37704 -4.19022e-01 +3.80785e-04\n", " 12 -23.37705 -4.18982e-01 +1.94446e-04\n", " 13 -23.37707 -4.18962e-01 +9.92569e-05\n", " 14 -23.37709 -4.18951e-01 +5.06598e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 15 -23.37710 -4.18945e-01 +2.58550e-05\n", " 16 -23.37710 -4.18942e-01 +1.31965e-05\n", " 17 -23.37710 -4.18941e-01 +6.73864e-06\n", " iter Total Energy HOMO Eigenvalue Res \n", "\n", "----------------------------------------------------------- \n", "\n", " 1 -27.85737 -2.56324e-01 +1.00000e+00\n", " 2 -25.48978 -4.16122e-01 +1.54220e-01\n", " 3 -24.55444 -4.68503e-01 +7.87766e-02\n", " 4 -24.21794 -4.86817e-01 +3.78407e-02\n", " 5 -24.09708 -4.92744e-01 +1.89209e-02\n", " 6 -24.05535 -4.94457e-01 +9.66861e-03\n", " 7 -24.04273 -4.94827e-01 +4.86643e-03\n", " 8 -24.03662 -4.94978e-01 +2.65179e-03\n", " 9 -24.03645 -4.94808e-01 +1.36823e-03\n", " 10 -24.03668 -4.94701e-01 +7.01665e-04\n", " 11 -24.03692 -4.94639e-01 +3.59471e-04\n", " 12 -24.03708 -4.94603e-01 +1.83925e-04\n", " 13 -24.03718 -4.94584e-01 +9.40011e-05\n", " 14 -24.03724 -4.94574e-01 +4.79995e-05\n", " 15 -24.03727 -4.94569e-01 +2.44944e-05\n", " 16 -24.03728 -4.94566e-01 +1.24944e-05\n", " 17 -24.03729 -4.94565e-01 +6.37225e-06\n" ] } ], "source": [ "#Nuclear charges on centers AB\n", "Za = 5\n", "Zb = 0\n", "\n", "#Set polaization. 1 Unpolarized, 2 Polarized\n", "pol = 2\n", "\n", "#Assign electronic structure\n", "Nmo = [[3,3], [1,0]]\n", "N = [[2,2], [1,0]]\n", "\n", "optKS = {}\n", "\n", "for i in ang_points:\n", " for j in rad_points:\n", " \n", " #Grid Options\n", " a = 1.0\n", " NP = 7 #Number of points per block\n", " NM = [i,j] #Number of blocks [angular, radial]\n", " L = np.arccosh(15./a) #Maximum radial coordinate value\n", " loc = np.array(range(-4,5)) #Non inclusive on upper bound\n", "\n", " #Create and initialize grid object\n", " grid = Psgrid(NP, NM, a, L, loc)\n", " grid.initialize()\n", "\n", " #Kohn Sham object\n", " KS = Kohnsham(grid, Za, Zb, pol, Nmo, N, optKS)\n", " KS.scf(optKS)\n", "\n", " energy.append(KS.E.E)\n", " all_ang.append(i)\n", " all_rad.append(j)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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W265BY2Njaivr8dLL72U7DJTnihAKY3255TA6OgopZTSyclJWl9fT//xj38s8opSA16vl7777rv0pptuomvXrqVXXXUVfe6556jJZKJ2uz3oj9VqpR999BHt6uqa8392u51aLBba09NDn332Wbpy5Uq6bNky+qc//YlyHLegn8lms9GZmRn+71u3bqWvvfZaXMdg7xeu3ev1Ur1eT6+55hpqtVoppZTeeuut9Pbbb5di2bHuw0X/s3Ce54sIlpEvLi7Grl27cODAgUVeUWpApVLh3HPPxa9//Wu0trbiW9/6Fj766COcc845uO666/Diiy/CbrfzdoAFBQURtQ8ajQZLlixBU1MTcnJycNVVV2HPnj249dZbF/QzTU5O4qyzzsKGDRuwefNmXHTRRbjgggtEv//jjz9GY2Mjent7QQgBnY24Wcu8xWLBk08+iV27dkGlUuEXv/jFfH2U1EIMJjnpIcUThlJKLRYLvfTSS2ltbS1dvXo1/fjjj6VeasrA7/fT/fv30+9///t0/fr1dPXq1fRf/uVf6MTERNhogv3p7++njY2N9O233+aPtdARRaIQrvNf//Vf6caNG2lXVxf/fz6fj1JK6VtvvUUfeugh+t3vflfK0y96xBDrzylv1z85OYldu3YBCMiMr7rqqrieMAzf+c53cMEFF2D37t28G9KpCoVCgc2bN6OpqQmDg4MoLy9HZmYmLrzwwoieGkajEZdffjnuv/9+nHfeefzPT5YJ4xMTE3zy9/7770d6ejouu+wyPPPMM1i7di1fHm1ra0N9fT2+973vLeZyFx4xmEQGpXR6eppWV1efNE9HqcBxHP373/8e9O/29nZ6991306amJrp9+3b62GOP0ba2Nrpp0ya6d+/eeV+Tz+ejDQ0N9KKLLpLsmF1dXfSCCy6gbrebut1u/uf33Xcfrauro52dnZRSSm+88Ua6detW6vf7JTv3LBY9Yoj155SPKKRAf38/dDodvv71r0vihnSygBASNEODEIJ169Zh3bp1uPvuu9HT04Pdu3fjC1/4An784x/joosumvc1zUc3sdfrxfT0NJRKJZRKJW9pd+edd0Kj0eCrX/0qVq5cifHxcbz33nsLOs4wZRCDSWRQSg8ePEiVSiX95JNPKKWBbPe///u/L/KqUgcLFWkNDw/T8847j7799tuSRhSUUnrdddfRd955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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot(projection='3d')\n", "\n", "\n", "ax.scatter(all_ang, all_rad, energy)\n", "\n", "ax.set_xlabel('X Label')\n", "ax.set_ylabel('Y Label')\n", "ax.set_zlabel('Z Label')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Optional. If `plotly` is installed:\n", "\n", "# fig = go.Figure(data=[go.Scatter3d(\n", "# x=all_ang,\n", "# y=all_rad,\n", "# z=energy,\n", "# mode='markers',\n", "# marker=dict(\n", "# size=5,\n", "# color=energy, # set color to an array/list of desired values\n", "# colorscale='Viridis', # choose a colorscale\n", "# opacity=0.8\n", "# )\n", "# )])\n", "\n", "# fig.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.5" } }, "nbformat": 4, "nbformat_minor": 4 }