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")
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)
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))
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")
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')
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)
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)