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 ]
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' ]
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 )