def main(): 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 ) fzs = relaxedScan3D( xTips, yTips, zTips ) PP.saveXSF( dirname+'/OutFz.xsf', headScan, lvecScan, fzs ) for iA,Amp in enumerate( Amps ): AmpStr = "/Amp%2.2f" %Amp print "Amp= ",AmpStr os.makedirs( dirname+AmpStr ) dfs = PP.Fz2df( fzs, dz = dz, k0 = PP.params['kCantilever'], f0=PP.params['f0Cantilever'], n=Amp/dz ) plotImages( dirname+AmpStr+"/df", dfs, slices = range( 0, len(dfs) ) )
rTips[:, 0] = x for iy, y in enumerate(yTips): rTips[:, 1] = y itrav = PP.relaxTipStroke(rTips, rs, fs) / float(len(zTips)) fzs[:, iy, ix] = fs[:, 2].copy() #print itrav #if itrav > 100: # print " bad convergence > %i iterations per pixel " % itrav # print " exiting " # break print " # ============ convert Fz -> df " dfs = PP.Fz2df(fzs, dz=dz, k0=PP.params['kCantilever'], f0=PP.params['f0Cantilever'], n=int(PP.params['Amplitude'] / dz)) print " # ============ Plot Relaxed Scan 3D " #slices = range( PP.params['plotSliceFrom'], PP.params['plotSliceTo'], PP.params['plotSliceBy'] ) #print "plotSliceFrom, plotSliceTo, plotSliceBy : ", PP.params['plotSliceFrom'], PP.params['plotSliceTo'], PP.params['plotSliceBy'] #print slices #nslice = len( slices ) slices = range(0, len(dfs)) for ii, i in enumerate(slices): print " plotting ", i plt.figure(figsize=(10, 10))
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 ) fzs = PP.relaxedScan3D(xTips, yTips, zTips) GU.saveXSF(dirname + '/OutFz.xsf', fzs, lvecScan, GU.XSF_HEAD_DEFAULT) for iA, Amp in enumerate(Amps): AmpStr = "/Amp%2.2f" % Amp print("Amp= ", AmpStr) os.makedirs(dirname + AmpStr) dz = PP.params['scanStep'][2] dfs = PP.Fz2df(fzs, dz=dz, k0=PP.params['kCantilever'], f0=PP.params['f0Cantilever'], n=Amp / dz) extent = (xTips[0], xTips[-1], yTips[0], yTips[-1]) PPPlot.plotImages(dirname + AmpStr + "/df", dfs, slices=list(range(0, len(dfs))), extent=extent) print(" ***** ALL DONE ***** ") #plt.show()