PP.params['gridC'],
]).copy() 

gridN = PP.params['gridN']

FF   = np.zeros( (gridN[2],gridN[1],gridN[0],3) )

#quit()

# ==============================================
#   The costly part of simulation starts here
# ==============================================

print " # =========== Sample LenardJones "

PP.setFF( FF, cell  )
PP.setFF_Pointer( FF )
PP.getLenardJonesFF( Rs, C6, C12 )

plt.figure(figsize=( 5*nslice,5 )); plt.title( ' FF LJ ' )
'''
for i in range(nslice):
	plt.subplot( 1, nslice, i+1 )
	plt.imshow( FF[i,:,:,2], origin='image', interpolation='nearest' )
'''

withElectrostatics = ( abs( PP.params['charge'] )>0.001 )
if withElectrostatics: 
	print " # =========== Sample Coulomb "
	FFel = np.zeros( np.shape( FF ) )
	CoulombConst = -14.3996448915;  # [ e^2 eV/A ]
示例#2
0
    PP.params['gridC'],
]).copy()

gridN = PP.params['gridN']

FF = np.zeros((gridN[2], gridN[1], gridN[0], 3))

#quit()

# ==============================================
#   The costly part of simulation starts here
# ==============================================

print " # =========== Sample LenardJones "

PP.setFF(FF, cell)
PP.setFF_Pointer(FF)
PP.getLenardJonesFF(Rs, C6, C12)

plt.figure(figsize=(5 * nslice, 5))
plt.title(' FF LJ ')
'''
for i in range(nslice):
	plt.subplot( 1, nslice, i+1 )
	plt.imshow( FF[i,:,:,2], origin='image', interpolation='nearest' )
'''

withElectrostatics = (abs(PP.params['charge']) > 0.001)
if withElectrostatics:
    print " # =========== Sample Coulomb "
    FFel = np.zeros(np.shape(FF))
FFel[:, :, :, 2] = Fz

del Fx
del Fy
del Fz

cell = np.array([
    PP.params['gridA'],
    PP.params['gridB'],
    PP.params['gridC'],
]).copy()
gridN = PP.params['gridN']

print("cell", cell)

PP.setFF(FFLJ, cell)

print(" # ============ define atoms ")

atoms = basUtils.loadAtoms('watter4NaCl-2.xyz')
Rs = np.array([atoms[1], atoms[2], atoms[3]])
iZs = np.array(atoms[0])

if not PP.params['PBC']:
    print(" NO PBC => autoGeom ")
    PP.autoGeom(Rs, shiftXY=True, fitCell=True, border=3.0)
    print(" NO PBC => params[ 'gridA'   ] ", PP.params['gridA'])
    print(" NO PBC => params[ 'gridB'   ] ", PP.params['gridB'])
    print(" NO PBC => params[ 'gridC'   ] ", PP.params['gridC'])
    print(" NO PBC => params[ 'scanMin' ] ", PP.params['scanMin'])
    print(" NO PBC => params[ 'scanMax' ] ", PP.params['scanMax'])
FFel[:,:,:,1]=Fy
FFel[:,:,:,2]=Fz

del Fx; del Fy; del Fz


cell =np.array([
PP.params['gridA'],
PP.params['gridB'],
PP.params['gridC'],
]).copy() 
gridN = PP.params['gridN']

print "cell", cell

PP.setFF( FFLJ, cell  )

print " # ============ define atoms "

atoms    = basUtils.loadAtoms('watter4NaCl-2.xyz')
Rs       = np.array([atoms[1],atoms[2],atoms[3]]);  
iZs      = np.array( atoms[0])

if not PP.params['PBC' ]:
	print " NO PBC => autoGeom "
	PP.autoGeom( Rs, shiftXY=True,  fitCell=True,  border=3.0 )
	print " NO PBC => params[ 'gridA'   ] ", PP.params[ 'gridA' ] 
	print " NO PBC => params[ 'gridB'   ] ", PP.params[ 'gridB'   ]
	print " NO PBC => params[ 'gridC'   ] ", PP.params[ 'gridC'   ]
	print " NO PBC => params[ 'scanMin' ] ", PP.params[ 'scanMin' ]
	print " NO PBC => params[ 'scanMax' ] ", PP.params[ 'scanMax' ]
示例#5
0
Qs = [-0.2, -0.1, 0.0, 0.1, 0.2]
Amps = [1.0]

print(" ============= RUN  ")

print(" >> WARNING!!! OVEWRITING SETTINGS by params.ini  ")
PP.loadParams('params.ini')

PPPlot.params = PP.params

print(" load Electrostatic Force-field ")
FFel, lvec, nDim, head = GU.loadVecFieldXsf("FFel")
print(" load Lenard-Jones Force-field ")
FFLJ, lvec, nDim, head = GU.loadVecFieldXsf("FFLJ")
PP.lvec2params(lvec)
PP.setFF(FFel)

xTips, yTips, zTips, lvecScan = PP.prepareScanGrids()

#Ks   = [ 0.25, 0.5, 1.0 ]
#Qs   = [ -0.2, 0.0, +0.2 ]
#Amps = [ 2.0 ]

for iq, Q in enumerate(Qs):
    FF = FFLJ + FFel * Q
    PP.setFF_Pointer(FF)
    for ik, K in enumerate(Ks):
        dirname = "Q%1.2fK%1.2f" % (Q, K)
        os.makedirs(dirname)
        PP.setTip(kSpring=np.array((K, K, 0.0)) / -PP.eVA_Nm)
        #GU.saveVecFieldXsf( 'FFtot', FF, lvec, head )
Qs   = [ 0.0]
Amps = [  1.0 ]

print " ============= RUN  "

print " >> WARNING!!! OVEWRITING SETTINGS by params.ini  "
PP.loadParams( 'params.ini' )

PPPlot.params = PP.params

print " load Electrostatic Force-field "
FFel, lvec, nDim, head = GU.loadVecFieldXsf( "FFel" )
print " load Lenard-Jones Force-field "
FFLJ, lvec, nDim, head = GU.loadVecFieldXsf( "FFLJ" )
PP.lvec2params( lvec )
PP.setFF( FFel )

xTips,yTips,zTips,lvecScan = PP.prepareScanGrids( )

#Ks   = [ 0.25, 0.5, 1.0 ]
#Qs   = [ -0.2, 0.0, +0.2 ]
#Amps = [ 2.0 ]



for iq,Q in enumerate( Qs ):
	FF = FFLJ + FFel * Q
	PP.setFF_Pointer( FF )
	for ik,K in enumerate( Ks ):
		dirname = "Q%1.2fK%1.2f" %(Q,K)
		os.makedirs( dirname )