这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:meta-gga和二维受限的砷化铟 [2019/01/02 23:34] – [2D 平板的分析能带结构] xie.congwei | atk:meta-gga和二维受限的砷化铟 [2019/06/29 15:59] (当前版本) – [在 QuantumATK 里的 Meta-GGA] dong.dong | ||
---|---|---|---|
行 71: | 行 71: | ||
对于受限系统,必须首先为相应的块体系统确定适当的 c值。可以通过自洽或通过将 c 参数拟合到例如实验带隙(参见 | 对于受限系统,必须首先为相应的块体系统确定适当的 c值。可以通过自洽或通过将 c 参数拟合到例如实验带隙(参见 | ||
</ | </ | ||
+ | |||
+ | <WRAP center info 100%> | ||
+ | === 提示 === | ||
+ | **本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。** | ||
+ | * 不同版本的QuantumATK的py脚本可能不兼容; | ||
+ | * 较新的版本输出的数据文件默认为hdf5; | ||
+ | * 老版本的数据文件为nc文件,可以被新版本读取。 | ||
+ | </ | ||
+ | |||
===== 采用 meta-GGA 计算块体 InAs 的能带结构 ===== | ===== 采用 meta-GGA 计算块体 InAs 的能带结构 ===== | ||
行 590: | 行 599: | ||
===== 纳米线能带结构 ===== | ===== 纳米线能带结构 ===== | ||
+ | |||
+ | 作为最后的任务,您将研究是否分析模型也可用于估算纳米线的能带结构。由于纳米线的计算相当耗时,我们在此处只会显示结果,将实际计算作为练习。 | ||
+ | |||
+ | 您可以通过返至 **Builder** 窗口创建 InAs 纳米线,并按照以下步骤操作: | ||
+ | |||
+ | * 沿 A 轴方向重复 InAs 平板 6 次。 | ||
+ | * 更改晶格常数使 x 方向上的 A 矢量为 40 Å 。 | ||
+ | * 使用 **Custom Passivator** 以与处理平板相同的方式钝化纳米线。 | ||
+ | * 坐标居中。 | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
+ | 将结构发送到 **Script Generator**,采用与含有伪氢平板计算相同的程序。另外, | ||
+ | |||
+ | * 设置 k 点取样为(1, | ||
+ | * 添加 **Bandstructure**,更改布里渊区路径为“G, | ||
+ | * 添加 Analysis/ | ||
+ | * 设置输出文件名称为“InAs_nanowire.nc”。 | ||
+ | * 将脚本发送到 **Editor**,设置 meta-GGA c 参数为 0.936。 | ||
+ | * 最后把脚本发送到 **Job Manager** 并运行,注意本次计算将用时约 1 小时。 | ||
+ | |||
+ | 当计算完成后,您可以运行如下的 Python 脚本 [[https:// | ||
+ | |||
+ | <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 = ' | ||
+ | |||
+ | # Read bulk configuration | ||
+ | configuration = nlread(filename, | ||
+ | |||
+ | # Read bandstructure | ||
+ | bandstructure = nlread(filename, | ||
+ | |||
+ | # Read Effective mass | ||
+ | effective_mass = nlread(filename, | ||
+ | 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, | ||
+ | k_cart = fractional2cartesian(kpoints, | ||
+ | |||
+ | # 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 minimum | ||
+ | cbm = min(conduction_band) | ||
+ | |||
+ | # Evaluate non-parabolic model bandstructure | ||
+ | E_non_parabolic = (-1 + (1 + 2*alpha_bulk*(hbar**2/ | ||
+ | |||
+ | # 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/ | ||
+ | |||
+ | |||
+ | # Ananlytical effective mass of slab | ||
+ | m_slab = meff_bulk * (1 + 2*alpha_bulk*(hbar**2*numpy.pi**2/ | ||
+ | print '' | ||
+ | print ' | ||
+ | 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/ | ||
+ | print ' | ||
+ | print 'DFT gap change = %.4f eV' %(1.548-0.354) | ||
+ | print '' | ||
+ | |||
+ | |||
+ | pl.figure() | ||
+ | pl.plot(k, | ||
+ | pl.plot(k, | ||
+ | pl.plot(k, | ||
+ | pl.plot(k, | ||
+ | pl.xlabel(' | ||
+ | pl.ylabel(' | ||
+ | pl.ylim([0, | ||
+ | pl.legend(loc=0) | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | {{ : | ||
+ | 对于 InAs 平板,非抛物线模型比抛物线/ | ||
===== 参考 ===== | ===== 参考 ===== | ||
- | + | * [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:// | ||
+ | * [4] Li, and L.-W. Wang, Phys. Rev. B, 72, 125325, (2005) | ||
+ | * [5] 英文原文:[[https:// | ||