Esempio n. 1
0
from laskentaa import tee_gauss_seidel_yksi_askel
from ydin import Ydin
from piirtoa import plot2d

#atomiytimet
ytimet = []
ytimet.append(Ydin((0.15,0.15,0.15), +1))
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)
Esempio n. 2
0
from alustus import tee_gridi, aseta_gridin_alkuarvo
from energiat import E_T, E_vaihtokorrelaatio, E_elektroni_elektroni, \
    E_elektroni_ydin, E_tot
from ydin import Ydin
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)