Beispiel #1
0
import hfnum

import seaborn
import matplotlib.pyplot as plt

Z = 4

# log grid
dx = 1.0 / 16.0
N = 110.0
rmin = np.exp(-4) / Z
h = hfnum.HF()
h.resetGrid(1, dx, int(N), rmin)
h.setZ(Z)
h.method(3)

orb0 = hfnum.Orbital(1, 0, "+-")
orb1 = hfnum.Orbital(2, 0, "+-")
h.addOrbital(orb0)
h.addOrbital(orb1)

NiterSCF = 40
Niter = 100
F0stop = 1e-8
r = np.asarray(h.getR())
print "Last r:", r[-1]
print "First r:", r[0:5]
h.gammaSCF(0.3)
h.solve(NiterSCF, Niter, F0stop)
h.save("output/results_Be.txt")
Beispiel #2
0
import seaborn
import matplotlib.pyplot as plt

Z = 1

# log grid
dx = 0.5e-1
N = 421
rmin = 1e-8
h = hfnum.HF()
h.resetGrid(1, dx, int(N), rmin)
h.setZ(Z)
h.method(3)

orb = hfnum.Orbital(2, 1, "+NNNNN")

h.addOrbital(orb)

NiterSCF = 1
Niter = 100
F0stop = 1e-6
r = np.asarray(h.getR())
h.solve(NiterSCF, Niter, F0stop)

h.save('output/results_H_2p.txt')

o = [np.asarray(orb.getCentral())]
v = h.getNucleusPotential()
H1s = 2 * np.exp(-r)
H2s = 1.0 / (2.0 * np.sqrt(2)) * (2 - r) * np.exp(-r / 2.0)
Beispiel #3
0
        if l_str == 's': l = 0
        elif l_str == 'p': l = 1
        elif l_str == 'd': l = 2
        elif l_str == 'f': l = 3
        elif l_str == 'g': l = 4
        elif l_str == 'h': l = 5
        c = ['n'] * (2 * (2 * l + 1))
        mult = int(m.group(3))
        for k in range(0, min([(2 * l + 1), mult])):
            pos = 2 * k
            c[pos] = '+'
        for k in range(0, min([(2 * l + 1), mult - 2 * l - 1])):
            pos = 1 + 2 * k
            c[pos] = '-'
        c = "".join(c)
        orb.append(hfnum.Orbital(n, l, c))
        print(
            "Added orbital with (n, l) = (%d, %d) and electron configuration %s"
            % (n, l, c))
        h.addOrbital(orb[-1])
        electronCount += mult

symbol_name = "Xx"  # unknown
charge = Z - electronCount
if Z.is_integer():
    symbol_name = hfnum.getSymbol(int(Z))
    charge = int(charge)
    symbol_name += "%d" % charge

print(">>> Z = %f, electron count = %d, symbol = %s" %
      (Z, electronCount, symbol_name))
Beispiel #4
0
import seaborn
import matplotlib.pyplot as plt

Z = 5

# log grid
dx = 1.0 / 16.0 * 0.5
N = 120.0 * 2
rmin = np.exp(-4) / Z
h = hfnum.HF()
h.resetGrid(1, dx, int(N), rmin)
h.setZ(Z)
h.method(3)

orb0 = hfnum.Orbital(1, 0, "+-")
orb1 = hfnum.Orbital(2, 0, "+-")
orb2 = hfnum.Orbital(2, 1, "+NNNNN")
h.addOrbital(orb0)
h.addOrbital(orb1)
h.addOrbital(orb2)

NiterSCF = 40
Niter = 100
F0stop = 1e-8
r = np.asarray(h.getR())
print "Last r:", r[-1]
print "First r:", r[0:5]
h.gammaSCF(0.3)
h.solve(NiterSCF, Niter, F0stop)
h.save("output/results_B.txt")
Beispiel #5
0
sys.path.append("lib/")

import numpy as np
import hfnum

import seaborn
import matplotlib.pyplot as plt

Z = 2
dx = 0.5e-1/4
N = 421*4
rmin = 1e-8
h = hfnum.HFS()
h.resetGrid(1, dx, int(N), rmin)
h.setZ(Z)
orb0 = hfnum.Orbital( 1, 0, "+-")
h.method(3)
h.addOrbital(orb0)

NiterSCF = 40
Niter = 100
F0stop = 1e-8
r = h.getR()
r = np.asarray(r)
print "Last r:", r[-1]
print "First r:", r[0:5]
h.gammaSCF(0.1)
h.solve(NiterSCF, Niter, F0stop)
h.save('output/results_He_hfs.txt')

Beispiel #6
0
import seaborn
import matplotlib.pyplot as plt

Z = 1

# log grid
dx = 1.0 / 16.0 * 0.5
N = 120.0 * 2
rmin = np.exp(-4) / Z
h = hfnum.HF()
h.resetGrid(1, dx, int(N), rmin)
h.setZ(Z)
h.method(3)

orb = hfnum.Orbital(1, 0, "+N")

h.addOrbital(orb)

NiterSCF = 1
Niter = 100
F0stop = 1e-6
r = np.asarray(h.getR())
print r[0], r[-1]
h.solve(NiterSCF, Niter, F0stop)

h.save('output/results_H.txt')

o = [np.asarray(h.getCentral(0))]
v = h.getNucleusPotential()
H1s = 2 * np.exp(-r)
Beispiel #7
0
sys.path.append("lib/")

import numpy as np
import hfnum

import seaborn
import matplotlib.pyplot as plt

Z = 3
dx = 0.5e-1
N = 421
rmin = 1e-8
h = hfnum.DFT()
h.resetGrid(1, dx, int(N), rmin)
h.setZ(Z)
orb0 = hfnum.Orbital(1, 0, "+-")
orb2 = hfnum.Orbital(2, 0, "+N")
h.method(3)
h.addOrbital(orb0)
h.addOrbital(orb1)
h.addOrbital(orb2)

NiterSCF = 40
Niter = 100
F0stop = 1e-5
r = h.getR()
r = np.asarray(r)
print "Last r:", r[-1]
print "First r:", r[0:5]
h.gammaSCF(0.4)
h.solve(NiterSCF, Niter, F0stop)