用户工具

站点工具


atk:meta-gga和二维受限的砷化铟

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:meta-gga和二维受限的砷化铟 [2019/01/02 23:34] – [2D 平板的分析能带结构] xie.congweiatk:meta-gga和二维受限的砷化铟 [2019/06/29 15:59] (当前版本) – [在 QuantumATK 里的 Meta-GGA] dong.dong
行 71: 行 71:
 对于受限系统,必须首先为相应的块体系统确定适当的 c值。可以通过自洽或通过将 c 参数拟合到例如实验带隙(参见  [[https://docs.quantumwise.com/tutorials/inas_2d_mgga/inas_2d_mgga.html#sect1-bulk-c-fit|Fitting the meta-GGA c-parameter]])来实现。然后将由此确定的 c 参数运用于受限结构。 对于受限系统,必须首先为相应的块体系统确定适当的 c值。可以通过自洽或通过将 c 参数拟合到例如实验带隙(参见  [[https://docs.quantumwise.com/tutorials/inas_2d_mgga/inas_2d_mgga.html#sect1-bulk-c-fit|Fitting the meta-GGA c-parameter]])来实现。然后将由此确定的 c 参数运用于受限结构。
 </WRAP> </WRAP>
 +
 +<WRAP center info 100%>
 +=== 提示 ===
 +**本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。**
 +  * 不同版本的QuantumATK的py脚本可能不兼容;
 +  * 较新的版本输出的数据文件默认为hdf5;
 +  * 老版本的数据文件为nc文件,可以被新版本读取。
 +</WRAP>
 +
  
 ===== 采用 meta-GGA 计算块体 InAs 的能带结构 ===== ===== 采用 meta-GGA 计算块体 InAs 的能带结构 =====
行 590: 行 599:
  
 ===== 纳米线能带结构 ===== ===== 纳米线能带结构 =====
 +
 +作为最后的任务,您将研究是否分析模型也可用于估算纳米线的能带结构。由于纳米线的计算相当耗时,我们在此处只会显示结果,将实际计算作为练习。
 +
 +您可以通过返至 **Builder** 窗口创建 InAs 纳米线,并按照以下步骤操作:
 +
 +  * 沿 A 轴方向重复 InAs 平板 6 次。
 +  * 更改晶格常数使 x 方向上的 A 矢量为 40 Å 。
 +  * 使用 **Custom Passivator** 以与处理平板相同的方式钝化纳米线。
 +  * 坐标居中。
 +
 +
 +{{ :atk:nanowire1-20190102.png?600 |}}
 +
 +
 +
 +将结构发送到 **Script Generator**,采用与含有伪氢平板计算相同的程序。另外,
 +
 +  * 设置 k 点取样为(1,9,1)。
 +  * 添加 **Bandstructure**,更改布里渊区路径为“G,Y”。
 +  * 添加 Analysis/EffectiveMass,设置方向为“Cartesian”,(x,y,z) = (0,1,0)。
 +  * 设置输出文件名称为“InAs_nanowire.nc”。
 +  * 将脚本发送到 **Editor**,设置 meta-GGA c 参数为 0.936。
 +  * 最后把脚本发送到 **Job Manager** 并运行,注意本次计算将用时约 1 小时。
 +
 +当计算完成后,您可以运行如下的 Python 脚本 [[https://docs.quantumwise.com/_downloads/analyze_nanowire.py|↓ analyze_nanowire.py]] 分析非抛物线模型的质量。
 +
 +<file python analyze_nanowire.py>
 +import pylab as pl
 +from NL.CommonConcepts.Configurations.Utilities import fractional2cartesian
 +
 +
 +#-------------------------------------------------------------------------
 +# Model data
 +#-------------------------------------------------------------------------
 +
 +# alpha parameter fitted to bulk InAs
 +alpha_bulk = 2.869
 +
 +# InAs bulk conduction band effective mass
 +meff_bulk = 0.028*electron_mass
 +
 +# Effective widths of nanowire
 +Dx = 30*Angstrom
 +Dz = 30*Angstrom
 +
 +
 +#-------------------------------------------------------------------------
 +# Load DFT calcularted bandstructure and effective mass
 +#-------------------------------------------------------------------------
 +
 +filename = 'InAs_nanowire.nc'
 +
 +# Read bulk configuration
 +configuration = nlread(filename,BulkConfiguration)[0]
 +
 +# Read bandstructure
 +bandstructure = nlread(filename,Bandstructure)[-1]
 +
 +# Read Effective mass
 +effective_mass = nlread(filename,EffectiveMass)[0]
 +meff = effective_mass.evaluate(band=1)[0][0][0]
 +
 +# Get the fractional kpoints
 +kpoints = bandstructure.kpoints()
 +
 +
 +# Get reciprocal lattice vectors (used to convert frational k to cartesian k)
 +G = configuration.bravaisLattice().reciprocalVectors()
 +
 +# K-points in cartesian coordinates, Ang^-1
 +k_cart = fractional2cartesian(kpoints, G)
 +
 +# Get |k| as 1D array
 +k = numpy.zeros(len(kpoints))
 +for ii,ki in enumerate(k_cart.inUnitsOf(Angstrom**-1)):
 +    k[ii] = (ki[0]**2 + ki[1]**2 + ki[2]**2)**0.5
 +
 +# Add unit
 +k = k*Angstrom**-1
 +
 +# Get all the bands
 +bands = bandstructure.evaluate().inUnitsOf(eV)
 +
 +# Energies at the Gamma-point
 +E0 = bands[0,:]
 +
 +# Index of conduction band
 +conduction_band_index = numpy.where(E0 > 0.0)[0][0]
 +
 +# Get the energies of the conduction band
 +conduction_band = bands[:,conduction_band_index]
 +
 +# conduction band minimum
 +cbm = min(conduction_band)
 +
 +# Evaluate non-parabolic model bandstructure
 +E_non_parabolic = (-1 + (1 + 2*alpha_bulk*(hbar**2/meff_bulk*(k**2 + numpy.pi**2/(Dx)**2 + numpy.pi**2/(Dz)**2 ) ).inUnitsOf(eV) )**0.5 )/(2*alpha_bulk)
 +
 +# Align conduction band minimum to DFT
 +E_non_parabolic = E_non_parabolic - min(E_non_parabolic) + cbm
 +
 +# Evaluate parabolic model bandstructure and align CBM
 +E_parabolic = (0.5*hbar**2*k**2/meff_bulk).inUnitsOf(eV) + cbm
 +
 +
 +# Ananlytical effective mass of slab
 +m_slab = meff_bulk * (1 + 2*alpha_bulk*(hbar**2*numpy.pi**2/(meff_bulk)*(1/Dx**2 + 1/Dz**2 ) ).inUnitsOf(eV) )**0.5
 +print ''
 +print 'Analytical nanowire mass = %.4f m_e' %m_slab.inUnitsOf(electron_mass)
 +print 'DFT nanowire mass = %.4f m_e\n' %meff
 +
 +# Analytical band gap increase
 +delta_gap = (-1 +  (1 + 2*alpha_bulk*(hbar**2*numpy.pi**2/(meff_bulk)*(1/Dx**2 + 1/Dz**2 ) ).inUnitsOf(eV) )**0.5)/(2*alpha_bulk)
 +print 'Analytical band gap increase = %.4f eV' %delta_gap
 +print 'DFT gap change = %.4f eV' %(1.548-0.354)
 +print ''
 +
 +
 +pl.figure()
 +pl.plot(k,conduction_band,'k',label='DFT conduction bands')
 +pl.plot(k,bands[:,conduction_band_index+1:conduction_band_index+5],'k')
 +pl.plot(k,E_non_parabolic,'r',label='Non-parabolic fit ')
 +pl.plot(k,E_parabolic,'b',label='Parabolic fit')
 +pl.xlabel(' (Ang.$^{-1}$)')
 +pl.ylabel('Energy  (eV)')
 +pl.ylim([0,1.5])
 +pl.legend(loc=0)
 +
 +</file>
 +
 +
 +
 +{{ :atk:nanowire_band_with_model-20190102.png?600 |}}
  
  
 +对于 InAs 平板,非抛物线模型比抛物线/有效质量模型能更好地描述纳米线中的最低导带。尽管非抛物线模型与 DFT 能带结构之间的一致性不如平板的那么好,但它仍然提供了一个非常合理的估算。
 ===== 参考 ===== ===== 参考 =====
  
- +  * [1] Tran, and P. Blaha, Phys. Rev. Lett., 102, 226401, (2009) 
 +  * [2] A.D. Becke, and M.R. Roussel, Phys. Rev. A., 39, 3761, 1989 
 +  * [3] [[http://www.ioffe.ru/SVA/NSM/Semicond/InAs/index.html|http://www.ioffe.rssi.ru/SVA/NSM/Semicond/InAs/index.html]] 
 +  * [4] Li, and L.-W. Wang, Phys. Rev. B, 72, 125325, (2005) 
 +  * [5] 英文原文:[[https://docs.quantumwise.com/tutorials/inas_2d_mgga/inas_2d_mgga.html#bulk-inas-band-structure-with-meta-gga|https://docs.quantumwise.com/tutorials/inas_2d_mgga/inas_2d_mgga.html#bulk-inas-band-structure-with-meta-gga]]
  
    
atk/meta-gga和二维受限的砷化铟.txt · 最后更改: 2019/06/29 15:59 由 dong.dong

© 2014-2022 费米科技(京ICP备14023855号