def case(indexCase, folderCase): data = scanFolder(getTime) selectedProcesses = ['evolve','DHSCF','PostSCF','siesta'] #,'TDbuildD' explainations = ['Propagation', 'Build H', 'Postprocess','Total'] #,'Build DM' image = data[-1][-1]['Prg.tot'] pieData = image[selectedProcesses[:-1]] other = image[selectedProcesses[-1]] - np.sum(pieData.values) ax = axsall[1][indexCase] explode = np.zeros(len(pieData)) + 0.04 explode[0] = 0.07 patches, texts, autotexts = ax.pie(pieData.values, explode=explode, labels=explainations[:-1], labeldistance = 0.2, autopct='%.0f%%',pctdistance = 0.7, shadow=True, textprops={'fontsize':'xx-large','color':'gold'}) for text in texts: text.set_fontsize(0) kargs=ma.getPropertyFromPosition(indexCase + 3, title='') ma.setProperty(ax,**kargs) for key,label in zip(selectedProcesses,explainations): totalTimes = np.array([time['Prg.tot'][key] for index, folder, time in data])/60.0 situations = np.array([int(folder) for index, folder, time in data]) ax = axsall[0][indexCase] ax.semilogy(situations, totalTimes,'-o', mew = 3, alpha=0.8 ,ms=12, label = label) # from scipy.optimize import curve_fit # popt, pcov = curve_fit(errorFunc, situations, totalTimes) # xfit = np.linspace(2,25,1000) # ax.semilogy(xfit, errorFunc(xfit,*popt),'--',lw=3, ) ax.grid(which='major',axis=u'both') kargs=ma.getPropertyFromPosition(indexCase, ylabel=r'Clock Time (Mimute)',title=folderCase, #xlimits = [0,10] ) ma.setProperty(ax,**kargs)
def case(indexCase, folderCase): data = scanFolder(getTime) selectedProcesses = ['evolve', 'DHSCF', 'PostSCF', 'siesta'] #,'TDbuildD' explainations = ['Propagation', 'Build H', 'Postprocess', 'Total'] #,'Build DM' image = data[-1][-1]['Prg.tot'] pieData = image[selectedProcesses[:-1]] other = image[selectedProcesses[-1]] - np.sum(pieData.values) ax = axsall[1][indexCase] explode = np.zeros(len(pieData)) + 0.04 explode[0] = 0.07 patches, texts, autotexts = ax.pie(pieData.values, explode=explode, labels=explainations[:-1], labeldistance=0.2, autopct='%.0f%%', pctdistance=0.7, shadow=True, textprops={ 'fontsize': 'xx-large', 'color': 'gold' }) for text in texts: text.set_fontsize(0) kargs = ma.getPropertyFromPosition(indexCase + 3, title='') ma.setProperty(ax, **kargs) for key, label in zip(selectedProcesses, explainations): totalTimes = np.array( [time['Prg.tot'][key] for index, folder, time in data]) / 60.0 situations = np.array([int(folder) for index, folder, time in data]) ax = axsall[0][indexCase] ax.semilogy(situations, totalTimes, '-o', mew=3, alpha=0.8, ms=12, label=label) # from scipy.optimize import curve_fit # popt, pcov = curve_fit(errorFunc, situations, totalTimes) # xfit = np.linspace(2,25,1000) # ax.semilogy(xfit, errorFunc(xfit,*popt),'--',lw=3, ) ax.grid(which='major', axis=u'both') kargs = ma.getPropertyFromPosition( indexCase, ylabel=r'Clock Time (Mimute)', title=folderCase, #xlimits = [0,10] ) ma.setProperty(ax, **kargs)
timeEl, exe = dP.getExcitedElectrons() exe -= exe[0] timeEn, T, E_ks, E_tot, Vol, P = dP.getEnergyTemperaturePressure() deltaE = (E_tot[2:,] - E_tot[2]) return [(index, folder), (timeEf, eField), (timeEl, exe), (timeEn,deltaE)] #------------------------------------------------------------------------------ fig, axs = plt.subplots(2,2,sharex=True,sharey=False,figsize=(8,6)) axs = axs.flatten() SaveName = __file__.split('/')[-1].split('.')[0] pimdData = getPIMDdata() axs[ipiTemp].plot(pimdData[:,0],pimdData[:,2]) data = scanFolder(action) #print data[-1][0][0] c = ma.getColors(data[-1][0][0]+1) maxElectrons = [] maxEnergies = [] minEnergies = [] for [(index, folder), (timeEf, eField), (timeEl, exe), (timeEn,deltaE)] in data: #ax = axs[efield] #ax.plot(timeEf,eField[:,2], c=c[index], # label=folder,lw=2,alpha=0.8) #eField = float(folder) * 13.6/0.529 ax = axs[exElectron] ax.plot(timeEl,exe,'-',alpha=0.8,
import pyramids.plot.setting as ma from pyramids.plot.PlotUtility import scanFolder def getTime(index, folder): #------------------------------------------------------------------------------ time = dP.getTime() return index, folder,time def getEnergy(index,folder): time, T, E_ks, E_tot, Vol, P = dP.getEnergyTemperaturePressure(ave=True) return index, folder, E_ks #------------------------------------------------------------------------------ fig, axs = plt.subplots(1,2,sharex=False,sharey=False,figsize=(10,6)) SaveName = __file__.split('/')[-1].split('.')[0] data = scanFolder(getTime) selectedProcesses = ['evolve','DHSCF','PostSCF','siesta'] #,'TDbuildD' explainations = ['Propagation', 'Build H', 'Postprocess','Total'] #,'Build DM' image = data[-1][-1]['Prg.tot'] pieData = image[selectedProcesses[:-1]] other = image[selectedProcesses[-1]] - np.sum(pieData.values) ax = axs[1] explode = np.zeros(len(pieData)) + 0.04 explode[0] = 0.07 patches, texts, autotexts = ax.pie(pieData.values, explode=explode, labels=explainations[:-1], labeldistance = 0.2, autopct='%.0f%%',pctdistance = 0.7, shadow=True, textprops={'fontsize':'xx-large','color':'gold'}) for text in texts: text.set_fontsize('xx-large')
def getEnergy(index, folder): time, T, E_ks, E_tot, Vol, P = dP.getEnergyTemperaturePressure(ave=True) return index, folder, E_ks def errorFunc(x, A, B): return A * np.exp(B / x) os.chdir('../../Data/') print os.listdir('.') for ufolder in os.listdir('.'): if os.path.isdir(ufolder): os.chdir(ufolder) ax = ax data = scanFolder(getEnergy) ref = np.load('ref.npy') deltaEnergy = np.array([ np.average(np.abs(energy - ref)) for index, folder, energy in data ]) #xticks = [ for index, folder, energy in data] xdata = np.array([int(folder) for index, folder, energy in data]) ax.semilogy(xdata, deltaEnergy, 'o-', ms=10, lw=3, label=ufolder, alpha=0.8, mew=3) #from scipy.optimize import curve_fit
import pyramids.plot.setting as ma import pyramids.process.struct as pps #-------------------------------------------------------------------------------------------- def action(index, folder): dataCurFolder = [] dataCurFolder.append([index, folder]) dataCurFolder.append(dp.getEnergyTemperaturePressure(ave=True)) dataCurFolder.append(dp.getEField()) return dataCurFolder #-------------------------------------------------------------------------------------------- fig, axs = plt.subplots(2, 1, sharex=True, sharey=False, figsize=(10, 8)) # data = scanFolder(action) c = ma.getColors(len(data)) for line in data: index, folder = line[0] ax = axs[1] cts = ax.plot(line[1][0], line[1][2] - line[1][2][0], lw=3, label=folder, c=c[index]) kargs = ma.getPropertyFromPosition(xlabel='Time (fs)', ylabel=r'E/atom (eV)', title='Excitation Energy') ma.setProperty(ax, **kargs) ax = axs[0]
#!/usr/bin/python import numpy as np import matplotlib.pyplot as plt import pyramids.io.result as dp import pyramids.plot.setting as ma import pyramids.plot.PlotUtility as pu #----------------------------------------------------------------------------- def action(index, folder): ls = ['-', '--', '-.', '-:'] pu.plotExcitation(axs[0]) pu.plotTotalEnergy(axs[1]) #------------------------------------------------------------------------------ if __name__ == '__main__': fig, axs = plt.subplots(1, 2, sharex=True, sharey=False, figsize=(10, 6)) #axs = axs.flatten() SaveName = __file__.split('/')[-1].split('.')[0] c = ['b', 'r', 'g', 'y'] plt.style.use('ggplot') #action(1,'') from pyramids.plot.PlotUtility import scanFolder scanFolder(action) plt.tight_layout() if False: for save_type in ['.pdf', '.png']: filename = SaveName + save_type plt.savefig(filename, dpi=600)
#-------------------------------------------------------------------------------------------- def action(index, folder): dataCurFolder = [] dataCurFolder.append([index, folder]) dp.getTrajactory() dataCurFolder.append(pps.calculateRMSD()) dataCurFolder.append(dp.getEnergyTemperaturePressure()) return dataCurFolder M = 28.08 R = 8.3144598 #-------------------------------------------------------------------------------------------- fig, axs = plt.subplots(2, 1, sharex=True, sharey=False, figsize=(6, 8)) # data = scanFolder(action, folders=['0.0025', '0.0035', '0.0045', '0.0055', '0.0065']) c = ma.getColors(len(data)) melt_v = [] for line in data: index, folder = line[0] ax = axs[0] ax.plot(line[1][0], line[1][1], lw=3, label=folder, c=c[index]) selectedstep = 5000 t, v = float(folder) / 2.0, line[1][1][selectedstep] / line[1][0][ selectedstep] * 1E3 #melt_v.append(t, v) if index == 0: vt = np.sqrt(3 * R * 300 / (M * 1E-3)) * 1E-2 ax.plot(line[1][0], line[1][0] * vt / 1E3)
#!/usr/bin/python import numpy as np import matplotlib.pyplot as plt import pyramids.io.result as dP import pyramids.plot.setting as ma #----------------------------------------------------------------------------- def getEnergy(index,folder): time, T, E_ks, E_tot, Vol, P = dP.getEnergyTemperaturePressure(ave=True) return index, folder, E_ks from pyramids.plot.PlotUtility import scanFolder data = scanFolder(getEnergy) ref = np.load('ref.npy') deltaEnergy = np.array([np.average(np.abs(energy - ref)) for index, folder, energy in data]) xticks = [float(folder) for index, folder, energy in data] import pandas as pd data = pd.DataFrame(data={'x':xticks, 'y':deltaEnergy}) SaveName = __file__.split('/')[-1].split('.')[0] data.to_csv(SaveName+'.csv')
from pyramids.io.result import getHomo eigenvalues = dp.readEigFile() x = float(folder) y = eigenvalues plotedBand = getHomo() return x, y, plotedBand import pyramids.plot.setting as ma SaveName = __file__.split('/')[-1].split('.')[0] from matplotlib import pyplot as plt import numpy as np fig, ax = plt.subplots(1, 1, sharex=True, sharey=False, figsize=(8, 6)) from pyramids.plot.PlotUtility import scanFolder data = scanFolder(plotEigenvalues) y0 = data[0][1].flatten() numBand = y0.shape[0] x = [] y = [] for x1, y1, h**o in data: x.append(x1) y.append(y1.flatten() - y0) y = np.array(y) plotedBand = h**o + 0 colors = ma.getColors(plotedBand) for i in range(plotedBand): ax.plot(x,
#!/usr/bin/python import numpy as np import matplotlib.pyplot as plt import pyramids.io.result as dp import pyramids.plot.setting as ma import pyramids.plot.PlotUtility as pu #----------------------------------------------------------------------------- def action(index,folder): ls = ['-','--','-.','-:'] import pyramids.plot.PlotUtility as pu pu.plotEField(axs[0][0],label=folder) pu.plotTotalEnergy(axs[1][0],label=folder) pu.plotRMSD(axs[0][1],label=folder) pu.plotTemperature(axs[1][1],label=folder) #------------------------------------------------------------------------------ if __name__ == '__main__': fig, axs = plt.subplots(2,2,sharex=True,sharey=False,figsize=(10,6)) #axs = axs.flatten() SaveName = __file__.split('/')[-1].split('.')[0] c = ['b','r','g','y'] plt.style.use('ggplot') #action(1,'') from pyramids.plot.PlotUtility import scanFolder scanFolder(action) plt.tight_layout() if False: for save_type in ['.pdf','.png']: filename = SaveName + save_type plt.savefig(filename,dpi=600)
import pyramids.io.result as dp from pyramids.io.result import getHomo eigenvalues = dp.readEigFile() x = float(folder) y = eigenvalues plotedBand = getHomo() return x,y,plotedBand import pyramids.plot.setting as ma SaveName = __file__.split('/')[-1].split('.')[0] from matplotlib import pyplot as plt import numpy as np fig, ax = plt.subplots(1,1,sharex=True,sharey=False,figsize=(8,6)) from pyramids.plot.PlotUtility import scanFolder data = scanFolder(plotEigenvalues) y0 = data[0][1].flatten() numBand = y0.shape[0] x = [] y = [] for x1,y1,h**o in data: x.append(x1) y.append(y1.flatten()-y0) y = np.array(y) plotedBand = h**o + 0 colors = ma.getColors(plotedBand) for i in range(plotedBand): ax.plot(x,y[:,i],'-o',color=colors[i],label=str(i)+' + '+str(y0[i]))
for text in texts: text.set_fontsize(0) kargs=ma.getPropertyFromPosition(indexCase + 3, title='') ma.setProperty(ax,**kargs) for key,label in zip(selectedProcesses,explainations): totalTimes = np.array([time['Prg.tot'][key] for index, folder, time in data])/60.0 situations = np.array([int(folder) for index, folder, time in data]) ax = axsall[0][indexCase] ax.semilogy(situations, totalTimes,'-o', mew = 3, alpha=0.8 ,ms=12, label = label) # from scipy.optimize import curve_fit # popt, pcov = curve_fit(errorFunc, situations, totalTimes) # xfit = np.linspace(2,25,1000) # ax.semilogy(xfit, errorFunc(xfit,*popt),'--',lw=3, ) ax.grid(which='major',axis=u'both') kargs=ma.getPropertyFromPosition(indexCase, ylabel=r'Clock Time (Mimute)',title=folderCase, #xlimits = [0,10] ) ma.setProperty(ax,**kargs) fig, axsall = plt.subplots(2,3,sharex='row',sharey='row',figsize=(15,10)) print axsall SaveName = __file__.split('/')[-1].split('.')[0] scanFolder(case) plt.tight_layout() for save_type in ['.pdf','.eps']: filename = SaveName + save_type plt.savefig(filename,dpi=800)