Example #1
0
ytimet.append(Ydin((0.05,0.05,0.05), +2))

nx = 4
ny = 4
nz = 1
dx = 0.1
dy = 0.1
dz = 0.1
V_hartree = tee_gridi(nx,ny,nz)
#print "V_hartree", V_hartree
elektroni_tiheys = tee_gridi(nx,ny,nz)
elektroni_tiheys[1,1,0] = -1
elektroni_tiheys[2,2,0] = -1
#elektroni_tiheys[3,0,1] = -3

aseta_gridin_alkuarvo(0, V_hartree)
#print "elektroni_tiheys", elektroni_tiheys
#print "V_hartree", V_hartree
#sys.exit()
for step in range(10):
    tee_gauss_seidel_yksi_askel(V_hartree, elektroni_tiheys, dx, dy, dz)
    #print V_hartree

print "kineettinen energia", E_T(elektroni_tiheys)
print "vaihtokorrelaatio energia", E_vaihtokorrelaatio(elektroni_tiheys)
print "elektroni_elektroni energia", \
    E_elektroni_elektroni(elektroni_tiheys,V_hartree)
print "elektroni_ydin energia", \
    E_elektroni_ydin(elektroni_tiheys,ytimet,dx,dy,dz)

plot2d(V_hartree, dx, dy, nx, ny)
Example #2
0
from piirtoa import plot2d
import numpy as np
from scipy.optimize import fmin_powell, fmin, anneal

nx = 5
ny = 5
nz = 1
dx = 0.2
dy = 0.2
dz = 0.2
V_hartree_init = tee_gridi(nx,ny,nz)
elektroni_tiheys_init = tee_gridi(nx,ny,nz)
ydin_tiheys_init = tee_gridi(nx,ny,nz)
tasa_tiheys = 1/(nx*ny*nz*dx*dy*dz)

V_hartree = aseta_gridin_alkuarvo(0, V_hartree_init)
elektroni_tiheys = aseta_gridin_alkuarvo(-0.1, elektroni_tiheys_init)
ydin_tiheys = aseta_gridin_alkuarvo(0, ydin_tiheys_init)
ydin_tiheys[1,1,0] = 1
ydin_tiheys[3,3,0] = 1

elektroni_tiheys_flat = elektroni_tiheys.ravel().tolist()
xopt = fmin(func=E_tot, x0=elektroni_tiheys_flat, \
               args = (V_hartree, ydin_tiheys, dx, dy, dz), \

V_hartree_xy = np.sum(V_hartree, axis=2)
print V_hartree_xy.shape
print V_hartree_xy
xopt.resize(V_hartree_xy.shape)
print xopt.shape
print xopt