file = open(maindir + 'cputime', 'r') cputime = nstrip(file.readlines()) file.close() for i in range(len(names)): linei = names[i] + ',' + energies[i] + ',' + elconverge[i] + ',' + elsteps[ i] + ',' + Nk[i] + ',' + NkIBZ[i] + ',' + str( round(float(cputime[i]) / 60, 2)) + '\n' outfile.write(linei) outfile.close() struct = maindir.split('/')[-2] #plots titleadd = struct + ',' + lattype + ',' + title_detail names = [str(float(names[i])**3) for i in range(len(names))] plotxy(names, energies, 'vary_Nmesh', titleadd + 'Vasp energy vs N_mesh', 'N_mesh', 'eV') #plotxy(Nk,NkIBZ,'NkIBZ', titleadd+' Kpoint numbers','Nk from det M','Nk in IBZKPT') plotxy(names, cputime, 'cpu', titleadd + ' CPU Time', 'Packing fraction', 'CPU time(sec)') plotxy(NkIBZ, cputime, 'cpu_vs_Nk', titleadd + ' CPU Time vs Nk in IBZKPT', 'Nk in IBZKPT', 'CPU time(sec)') #enerparts deviations plots fig = figure() #rcParams['axes.color_cycle']=['r','g'] ax1 = fig.add_subplot(111) ax1.set_color_cycle(['r', 'b', 'g', 'c', 'm', 'y', 'k']) N = size(deviations, axis=1) enerlabels = ['alpha Z ','Ewald energy','-1/2 Hartree','-exchange','-V(xc)+E(xc)','PAW double counting',\ 'entropy T*S','eigenvalues','atomic energy'] #
elconverge = nstrip(file.readlines()) file.close() file = open(maindir+'cputime','r') cputime = nstrip(file.readlines()) file.close() for i in range(len(names)): linei = names[i]+','+energies[i] +','+ elconverge[i]+','+elsteps[i]+','+ Nk[i]+','+NkIBZ[i]+','+ str(round(float(cputime[i])/60,2))+'\n' outfile.write(linei) outfile.close() struct = maindir.split('/')[-2] #plots titleadd = struct +','+ lattype +','+ title_detail plotxy(names,energies,'vary_pf', titleadd + 'Vasp energy vs packing fraction','Packing fraction','eV') #plotxy(Nk,NkIBZ,'NkIBZ', titleadd+' Kpoint numbers','Nk from det M','Nk in IBZKPT') plotxy(names,cputime,'cpu', titleadd + ' CPU Time','Packing fraction','CPU time(sec)') plotxy(NkIBZ,cputime,'cpu_vs_Nk', titleadd + ' CPU Time vs Nk in IBZKPT','Nk in IBZKPT','CPU time(sec)') #enerparts deviations plots fig = figure() #rcParams['axes.color_cycle']=['r','g'] ax1 = fig.add_subplot(111) ax1.set_color_cycle(['r','b','g','c', 'm', 'y', 'k']) N = size(deviations,axis = 1) enerlabels = ['alpha Z ','Ewald energy','-1/2 Hartree','-exchange','-V(xc)+E(xc)','PAW double counting',\ 'entropy T*S','eigenvalues','atomic energy'] # # alpha Z PSCENC = -0.43400971 # Ewald energy TEWEN = -150.19868154
outfile.close() struct = maindir.split('/')[-2] #plots: must remove all that failed [[ns,ms,en_per_atom,efermis,NkIBZ,NkfullBZ,dets],zerolist] = removezeros([ns,ms,en_per_atom,efermis,NkIBZ,NkfullBZ,dets])#for structures that were not finished and have zero entries parts2 = deepcopy(parts); parts2 = delete(parts,zerolist,axis=0) parts3 = array([parts2[i]/dets[i] for i in range(len(dets))]) errabs = abs(en_per_atom-ebest) err = abs(en_per_atom-ebest)/abs(ebest) #do these again with only the finished runs ef_err = abs(efermis - efbest)/abs(efbest) errsList[iplot] = err nsList[iplot] = ns #en_per_atom vs ns titleadd = ''+ titles[iplot] plotxy(ns,en_per_atom,'en_per_atom', titleadd + 'Vasp energy vs n (defines grid)','n','eV') fig = figure() semilogy(ns,err,'ro') title(titleadd + ' Error vs n (defines grid)') xlabel('n') ylabel('error') fig.savefig('vary_n_log_err') #log(err) vs efermi fig = figure() semilogy(efermis,err,'ro') title(titleadd + ' Error vs e-fermi') xlabel('e-fermi (ev)') ylabel('error') fig.savefig('ef_log_err')
title(titleadd + ' E-Fermi Error vs Nk in IBZKPT') xlabel('Nk') ylabel('error') fig.savefig('nk_loglog_errEF') #log(err) vs log(NkfullBZ) fig = figure() loglog(NkfullBZ,err,'ro') title(titleadd + ' Error vs Nk in unreduced BZ') xlabel('Nk in unreduced BZ') ylabel('error') fig.savefig('NkfullBZ_loglog_err') #eigenerr plot eigenbest = parts3[-1,7] #take the last eigenvalue contribution to total energy as best eigenerr = plotxy(ns,parts3[:,7],'eigen_dev_vs_n', titleadd + 'Eigenvalue err vs n','n','eV') ## enerparts deviations (eV) plots #find deviation from average for each part # means = mean(parts3,axis=0) # deviations = abs(parts3 - means) + 1e-12 #last term to handle zero entries #print'deviations';print deviations partsbest = parts3[ibestnew,:] print 'partsbest',partsbest,'for the run', names[ibestnew] # sys.exit('stop') # partserr = zeros((len(dets),10)) partsdev = zeros((len(dets),10)) for j in range(9): for i in range(len(dets)): if abs(partsbest[j])>0: