예제 #1
0
파일: main.py 프로젝트: RzeBar/Dipoles3D
#!/usr/bin/env python2.7

from core import Dipole, DipolePack, World, Event
import numpy as np
from mayavi import mlab
from tvtk.tools import visual
Qel = 3e-7

d1 = Dipole(np.array([1e-2,1e-3,0.]),np.array([1e-2,0.,0.]),Qel,1e-2,1e-2)
d2 = Dipole(np.array([0.,0.,0.]),np.array([-1e-3,0.,0.]),Qel,1e-2,1e-2)
d3 = Dipole(np.array([-1e-2,2e-3,0.]),np.array([-1e-2,1e-3,0.]),Qel,1e-2,1e-2)
d4 = Dipole(np.array([0.,2e-3,-2e-2]),np.array([0.,3e-3,-2e-2]),Qel,1e-2,1e-2)
d5 = Dipole(np.array([0.,-2e-3,2e-2]),np.array([0.,-3e-3,2e-2]),Qel,1e-2,1e-2)
d6 = Dipole(np.array([-1e-3,-4e-3,3e-2]),np.array([-1e-3,-3e-3,3e-2]),Qel,1e-2,1e-2)

p1 = DipolePack(d1,d2,d3,d4)

w1 = World(200,200,200)

t = 10 # czas symulacji (zycie swiata)
dt = 0.0001 # skok sym.

e1 = Event( t, dt, p1, w1 )
e1.setoutput("output.dat")  

e1.run(True)
예제 #2
0
파일: NaCl.py 프로젝트: RzeBar/Dipoles3D
 
NaCl = []

# ilosc dipoli w wymiarze
x =  4
y =  4
z =  4  #ilosc warstw

t = d #translacja 
# 1:Na , 2:Cl
for i in range(0,z+1):
	for j in range(0,y+1):
		for k in range(0,x+1):
			if i%2==0:
				if j%2 == 0: NaCl.append(Dipole(   np.array([k*d*2+d+t,j*d*2+t,i*d*2+t])  ,  np.array([k*d*2+t,j*d*2+t,i*d*2+t]) , Q , mNa, mCl  ))
				else:        NaCl.append(Dipole(   np.array([k*d*2+t,j*d*2+t,i*d*2+t])    ,  np.array([k*d*2+d+t,j*d*2+t,i*d*2+t]) , Q , mNa, mCl  ))
			else:
				if j%2 == 0: NaCl.append(Dipole(   np.array([k*d*2+t,j*d*2+t,i*d*2+t])    ,  np.array([k*d*2+d+t,j*d*2+t,i*d*2+t]) , Q , mNa, mCl  ))
				else:        NaCl.append(Dipole(   np.array([k*d*2+d+t,j*d*2+t,i*d*2+t])  ,  np.array([k*d*2+t,j*d*2+t,i*d*2+t]) , Q , mNa, mCl  ))    
p1 = DipolePack(*NaCl)

w1 = World(200,200,200)

time = 10 # czas symulacji (zycie swiata)
dt = 0.0001 # skok sym.

e1 = Event( time, dt, p1, w1 )
e1.setoutput("output.dat")  

e1.run() # True - wizulaizuje, False - bez wizyalizacji