In [1]:
%matplotlib inline
import numpy as np
import matplotlib as mpl
from pymatgen.util.plotting_utils import get_publication_quality_plot
from pyqe.qe_output import *
mpl.rcParams['axes.linewidth']=3
mpl.rcParams['lines.markeredgewidth']=3
mpl.rcParams['lines.linewidth']=2
mpl.rcParams['lines.markersize']=5
mpl.rcParams['xtick.major.width']=3
mpl.rcParams['xtick.major.size']=8
mpl.rcParams['xtick.minor.width']=3
mpl.rcParams['xtick.minor.size']=4
mpl.rcParams['ytick.major.width']=3
mpl.rcParams['ytick.major.size']=8
mpl.rcParams['ytick.minor.width']=3
mpl.rcParams['ytick.minor.size']=4
In [2]:
from pyqe.qe_surfio import analyze_surf
b0 = BasicAnalyzer('Al_latt.csv')
e_bulk = b0.emin_config['energy']
In [3]:
b1v = BasicAnalyzer('Al_100_nvac.csv')
df1v = analyze_surf(b1v,'100',e_bulk)
plt1v = get_convergence_plot(df1v,'nvac','surf_energy',0.01)
plt1v.xticks(range(1,5))
plt1v.xlabel('Number of vacuum layer')
plt1v.ylabel('$(100)$ surface energy (J/m$^2$)')
plt1v.tight_layout()
plt1v.savefig('Al_100_nvac.pdf')
In [4]:
b1s = BasicAnalyzer('Al_100_nslab.csv')
df1s = analyze_surf(b1s,'100',e_bulk)
plt1s = get_convergence_plot(df1s,'nslab','surf_energy',0.01)
plt1s.xticks(range(2,7))
plt1s.xlabel('Number of slab layer')
plt1s.ylabel('$(100)$ surface energy (J/m$^2$)')
plt1s.tight_layout()
plt1s.savefig('Al_100_nslab.pdf')
In [5]:
b2 = BasicAnalyzer('Al_111.csv')
df2 = analyze_surf(b2,'111',e_bulk)
In [6]:
print df1s.tail(1).surf_energy.real[0]
print df2.surf_energy.real[0]
In [ ]: