LDA NeonΒΆ

[5]:
import numpy as np
from CADMium import Psgrid
from CADMium import Kohnsham

#Distance of the nucley from grid center
a =  1.0

#Nuclear charges on centers AB
Za  = 10
Zb = 0

#Set polaization. 1 Unpolarized, 2 Polarized
pol = 1

Nmo = [[3],[2]]
N   = [[6],[4]] # Why do we need molecular orbitals (?)


optKS = {
        "interaction_type" : "dft",
        "SYM" : False,
        "FRACTIONAL" : False,
        }

#Grid Options
NP = 7 #Number of points per block
NM =  [10,10] #Number of blocks [angular, radial]
L = np.arccosh(15./a)#Maximum radial coordinate value
loc = np.array(range(-4,5)) #Non inclusive on upper bound

#Create and initialize grid object
grid = Psgrid(NP, NM, a, L, loc)
grid.initialize()

#Kohn Sham object
KS = Kohnsham(grid, Za, Zb, pol, Nmo, N, optKS)
KS.scf()

print(f" Total Energy: {KS.E.E}")
 iter    Total Energy     HOMO Eigenvalue         Res

-----------------------------------------------------------

    1      -173.70297      +4.28212e-02       +1.00000e+00
    2      -129.49817      -2.47347e+00       +3.41355e-01
    3      -131.96403      -1.23654e+00       +1.98279e-02
    4      -130.22035      -8.18264e-01       +1.33902e-02
    5      -129.02979      -6.47305e-01       +9.22699e-03
    6      -128.88827      -5.67080e-01       +1.19854e-03
    7      -128.33113      -5.28687e-01       +4.34144e-03
    8      -128.27004      -5.11861e-01       +4.76242e-04
    9      -128.23873      -5.04640e-01       +2.44115e-04
   10      -128.23216      -5.01002e-01       +8.11805e-05
   11      -128.22964      -4.99340e-01       +4.27014e-05
   12      -128.22927      -4.98549e-01       +2.21693e-05
   13      -128.22934      -4.98177e-01       +1.14056e-05
   14      -128.22949      -4.98001e-01       +5.81501e-06
 Total Energy: -128.2294916671537

Compare Againts NIST Total Energy: Etot = -128.233481