一套处理表面科学相关数据的工具
surfsci的Python项目详细描述
冲浪
一套处理表面科学相关数据的工具。这个项目将 包含以下工具:
- x射线光电子能谱(xps)
未来
- 文档(优先级)
x射线光电子能谱
示例
一个分析casaxps中ge峰拟合的例子。
from surfsci import xps
# Shortcut for the XPS machine at Dalhousie
# xps_mach = 'Dalhousie'
# mach = xps.mach_param[xps_mach]
mach = {
'coef' : [0.9033, -4.0724, 5.0677, 1.1066],
'scale' : 0.01,
'work_func' : 4.6,
}
hv = xps.photon_energy['Al']
# Pass energy [eV], found from XPS operator
pe = 30
sfwagner_Ge = xps.sf.Ge['3d'].area
data = xps.parser.CasaXPS('Ge_example.csv')
# Labels defined by user in CasaXPS fits
pk_lbl = 'Ge 3d'
be = data.binding_energy(pk_lbl)
area = data.area(pk_lbl)
ke = xps.kinetic_energy(be, hv, mach['work_func'])
t_fn = xps.transmission(ke, pe, mach['coef'], mach['scale'])
t_fn_wagner = 1/ke # Proportional to 1/KE
sf_mach = xps.sf_machine(sfwagner_Ge, t_fn, t_fn_wagner)
pk_corr = xps.peak_correction(area, sf_mach)
# NOTE Use the surfsci.xps.XPSPeak(...) helper for convienence
# analyzed_Ge = xps.XPSPeak(pk_lbl, be, area, sfwagner_Ge, hv, pe, mach)
# NOTE Returns pandas.DataFrame with all parameters calculated.
# The user can also query parameters individually
# df = analyzed_Ge.df()
矩阵因子校正
如果在基体中使用多元素(如合金),则可以使用
surfsci.xps.matrix_factor
函数。你需要非弹性平均自由程
电子散射(imfp)的体积和密度
以及在两种情况下测得的动能下矩阵的imfp。
元素例如,如果有两个校正的峰值:pk_Mn_corr
,并且
pk_Ge_corr
。可以使用tpp-2m方程计算imfp
非弹性平均自由程,见以下参考文献:
S.Tanuma,C.J.Powel,D.R.Penn,冲浪。干涉肛门。,第21165卷(1994年)
from surfsci import xps
# pk_Mn_corr and pk_Ge_corr calculated as in the example above
# a is the kinetic energy used to determine imfp of Ge in Bulk
imfp_matrix_a = 21.17
imfp_Ge_a = 29.84
rho_Ge_a = 5.32
# b is the kinetic energy used to determine imfp of Mn in Bulk
imfp_matrix_b = 14.17
imfp_Mn_b = 14.87
rho_Mn_b = 7.43
mat_fact = xps.matrix_factor(imfp_Ge_a, imfp_Mn_b,
mfp_matrix_a, mfp_matrix_b,
rho_Ge_a, rho_Mn_b)
relative_pk_Ge_corr = (pk_Ge_corr/pk_Mn_corr)*mat_fact
# NOTE because Mn is used as the normalizing component we can use its
# corrected peak value directly, all other elements require the matrix
# factor correction
print('Ratios of Mn and Ge in MnGe matrix')
print('Mn : {:0.4e}'.format(pk_Mn_corr))
print('Ge : {:0.4e}'.format(relative_pk_Ge_corr))
sfwagner.{db,py}:xps
附录5中的数据复制并提供给非营利组织使用 出版商John Wiley&Sons Ltd.的许可
“用俄歇和X射线光电子能谱进行实际表面分析”, 布里格斯和肖恩, 附录5,P511-514, J.Wiley and Sons于1983年出版,ISBN 0-471-26279
版权所有(c)1983,由John Wiley&Sons Ltd.提供。
原始数据集首先出现在以下资源中: 瓦格纳,戴维斯,泽勒,泰勒,雷蒙德和盖尔, 冲浪。界面分析,3.211(1981年)
任何使用这些数据必须包括上述引文在任何工作。
电子非弹性平均自由程
电子imfp可以用tanuma,powel,penn修饰的 (TPP-2M)由 以下参考:
S.Tanuma,C.J.Powel,D.R.Penn,冲浪。干涉肛门。,第21165卷(1994年)
为了方便起见,imfp-tpp-2m方程位于surfsci.scatter
和
可以这样使用:
from surfsci import scatter
# Mn example
kinetic_energy = 1000 # Can be calculated from surfsci.xps.kinetic_energy
rho = 7.43 # [g/cc]
Nv = 7 # valence electrons
M = 53.938 # atomic mass
bandgap_energy = 0 # [eV]
# Return SI units [m]
imfp_Mn = scatter.imfp_TPP2M(kinetic_energy, rho, M, Nv,
bandgap_energy, 'SI')
这里的值可以用于surfsci.xps.matrix_factor
计算
以上概述。