Beispiel #1
0
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']
#
Beispiel #2
0
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')  
 
Beispiel #4
0
    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: