#!/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)
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