这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版上一修订版两侧同时换到之后的修订记录 | ||
atk:硅的光学性质 [2017/12/27 03:09] – [简介] xie.congwei | atk:硅的光学性质 [2018/06/15 10:17] – [简介] fermi | ||
---|---|---|---|
行 6: | 行 6: | ||
===== 简介 ===== | ===== 简介 ===== | ||
- | 这篇教程主要讲述:基于密度泛函理论(DFT)以及由Tran和Blaha提出的meta-GGA泛函(TB09),如何使用**ATK**准确计算半导体的电子结构、光学和介电性质。TB09是一种半经验的泛函,利用它可以对非金属的带隙值给出非常好的估计。相比于先进的多体计算方法,TB09泛函通常能够得到相近的结果,但所需时间更短 - 计算速率会快几个数量级,在耗时上基本与LDA方法相当。因此,meta-GGA泛函是一种非常实用的能够有效描述半导体和绝缘体电子结构的方法。 | + | 这篇教程主要讲述:基于密度泛函理论(DFT)以及由Tran和Blaha提出的meta-GGA泛函(TB09),如何使用**QuantumATK**准确计算半导体的电子结构、光学和介电性质。TB09是一种半经验的泛函,利用它可以对非金属的带隙值给出非常好的估计。相比于先进的多体计算方法,TB09泛函通常能够得到相近的结果,但所需时间更短 - 计算速率会快几个数量级,在耗时上基本与LDA方法相当。因此,meta-GGA泛函是一种非常实用的能够有效描述半导体和绝缘体电子结构的方法。 |
需要注意的是,TB09泛函不能用于计算材料的精确能量,只能用于计算材料的电子结构。材料体系的精确能量和几何结构可以基于GGA-PBE泛函得到。 | 需要注意的是,TB09泛函不能用于计算材料的精确能量,只能用于计算材料的电子结构。材料体系的精确能量和几何结构可以基于GGA-PBE泛函得到。 | ||
- | 在这里,我们假定你已经熟悉**VNL**的基本工作流程,如Basic VNL and ATK tutorial所述。 | + | 在这里,我们假定你已经熟悉**VNL**的基本工作流程,如[[atk: |
+ | |||
+ | 本教程使用硅作为计算实例。与绝大多数半导体类似,GGA和LDA方法均会严重低估Si的带隙(0.5eV到0.6eV)。但是,利用TB09计算得到的带隙值(1.18eV)会与实验值非常接近。此外,利用**QuantumATK**的光学性质计算模块,Si的准确介电常数也可以得到,与实验值仅相差百分之几。 | ||
+ | |||
+ | <WRAP center info 100%> | ||
+ | === 提示 === | ||
+ | **本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。** | ||
+ | </ | ||
- | 本教程使用硅作为计算实例。与绝大多数半导体类似,GGA和LDA方法均会严重低估Si的带隙(0.5eV到0.6eV)。但是,利用TB09计算得到的带隙值(1.18eV)会与实验值非常接近。此外,利用**ATK**的光学性质计算模块,Si的准确介电常数也可以得到,与实验值仅相差百分之几。 | ||
===== 硅的电子结构及光学性质 ===== | ===== 硅的电子结构及光学性质 ===== | ||
==== 设置计算参数 ==== | ==== 设置计算参数 ==== | ||
- | 启动**VNL**,创建新任务并命名,打开该任务。通过点击工具栏上的按钮运行**Builder**。 | + | 启动**VNL**,创建新任务并命名,然后打开该任务。通过点击工具栏上的按钮{{: |
+ | |||
+ | {{ : | ||
+ | |||
+ | 双击所选中的硅结构或者点击右下角的{{: | ||
+ | |||
+ | 现在,通过点击窗口右下角的" | ||
+ | |||
+ | 在**Script Generator**中, | ||
+ | |||
+ | * 增加New calculator; | ||
+ | * 增加Analysis ‣ Bandstructure; | ||
+ | * 增加Analysis ‣ DensityOfStates; | ||
+ | * 增加Analysis ‣ OpticalSpectrum; | ||
+ | * 更改输出文件名为'' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 下一步是通过双击每一模块更改计算参数: | ||
+ | |||
+ | * 打开{{: | ||
+ | * 选择ATK-DFT calculator(默认设置), | ||
+ | * 选择// | ||
+ | * 选择交换关联泛函(exchange-correlation functional)为MGGA, | ||
+ | * 在" | ||
+ | * 最后,为Si元素选择**Tier 3**基组。 | ||
+ | * 点击右下角的OK按钮关闭对话框 | ||
+ | |||
+ | * 打开DensityOfStates模块,设置: | ||
+ | * 选择// | ||
+ | |||
+ | * 打开OpticalSpectrum模块,设置: | ||
+ | * 选择// | ||
+ | * 费米面以下和以上分别选择10条和20条能带(这控制了光学矩阵元计算中所包含能带的数目)。 | ||
+ | |||
+ | <WRAP center info 80%> | ||
+ | === 提示 === | ||
+ | 对于该计算,您将使用Hartwigsen,Goedecker,Hutter(HGH)赝势^[2]。光学性质的计算需要对费米能级以上的虚拟态有很好的描述。硅的**Tier 3**基组包含已优化好的3s,3p(2个轨道),3d,4s 轨道。硅的**Tier 4**基组会增加对其另一个3s轨道以及其它轨道的描述,但这似乎对带隙值并没有显著的影响(仅仅会更耗时)。如果选择比**Tier 3**更小的基组,即便使用MGGA,您将会得到不准确的带隙值。 | ||
+ | </ | ||
+ | |||
+ | 保存Editor处的脚本以便将来作参考。 | ||
==== 运行计算与结构分析 ==== | ==== 运行计算与结构分析 ==== | ||
+ | |||
+ | 将作业脚本发送至**Job Manager**,然后开始计算。任务将会在几分钟后结束。文件'' | ||
=== 硅的态密度 === | === 硅的态密度 === | ||
+ | |||
+ | 选择**DensityOfStates**(gID002),点击插件面板中的**2D plot...**按钮。由态密度图可以确定硅的带隙。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 为了读出带隙,您可以放大态密度图,或者将DOS数据输出为一个文件(或者简单的选择利用**Text Representation...**进行显示而不是**2D Plot...**)。能带的上下边缘分布位于-0.59 eV和0.57 eV处,由此可以得到带隙值为1.16 eV。这个数值和0K下的实验值1.17 eV非常吻合,明显优于LDA方法给出的带隙值0.55 eV。 | ||
=== 光谱 === | === 光谱 === | ||
- | ===== 参考文献 ===== | + | 接下来选择**OpticalSpectrum**(gID003),点击插件面板中的**2D plot...**按钮。光谱图如下图所示。 |
+ | {{ : | ||
+ | 通过放大图片(右键单击图片),你可以从图中得到静介电常数$Re[ε(ω=0)]=10.9$, | ||
+ | 吸收系数和折射率与介电常数有关,可以参见[[https:// | ||
+ | |||
+ | 下面的脚本描述如何利用介电常数计算吸收系数和折射率,并绘制它们随波长变化的图谱。 | ||
+ | |||
+ | <code python> | ||
+ | # Load the optical spectrum | ||
+ | spectrum = nlread(' | ||
+ | |||
+ | # Get the energies range | ||
+ | energies = spectrum.energies() | ||
+ | |||
+ | # get the real and imaginary part of the e_xx component of the dielectric tensor | ||
+ | d_r = spectrum.evaluateDielectricConstant()[0, | ||
+ | d_i = spectrum.evaluateImaginaryDielectricConstant()[0, | ||
+ | |||
+ | # Calculate the wavelength | ||
+ | l = (speed_of_light*planck_constant/ | ||
+ | |||
+ | # Calculate real and complex part of the refractive index | ||
+ | n = numpy.sqrt(0.5*(numpy.sqrt(d_r**2+d_i**2)+d_r)) | ||
+ | k = numpy.sqrt(0.5*(numpy.sqrt(d_r**2+d_i**2)-d_r)) | ||
+ | |||
+ | # Calculate the adsorption coefficient | ||
+ | alpha = (2*energies/ | ||
+ | |||
+ | # Plot the data | ||
+ | import pylab | ||
+ | pylab.figure() | ||
+ | pylab.subplots_adjust(hspace=0.0) | ||
+ | ax = pylab.subplot(211) | ||
+ | ax.plot(l, n, ' | ||
+ | ax.axis([180, | ||
+ | ax.set_ylabel(r" | ||
+ | ax.tick_params(axis=' | ||
+ | ax = pylab.subplot(212) | ||
+ | ax.plot(l, alpha, ' | ||
+ | ax.axis([180, | ||
+ | ax.set_xlabel(r" | ||
+ | ax.set_ylabel(r" | ||
+ | pylab.show() | ||
+ | </ | ||
+ | |||
+ | 保存脚本到项目文件夹,通过拉拽该脚本到工具栏中的**Job Manager**{{: | ||
+ | |||
+ | 脚本产生的图如下所示。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
+ | ===== 参考文献 ===== | ||
+ | * (1, 2) Tran, P. Blaha, Phys. Rev. Lett., 102, 226401, 2009. | ||
+ | * Hartwigsen, S. Goedecker, J. Hutter, Phys. Rev. B, 58, 3641, 1998. |