用户工具

站点工具


atk:硅的光学性质

硅的光学性质

简介

这篇教程主要讲述:基于密度泛函理论(DFT)以及由Tran和Blaha提出的meta-GGA泛函(TB09),如何使用QuantumATK准确计算半导体的电子结构、光学和介电性质。TB09是一种半经验的泛函,利用它可以对非金属的带隙值给出非常好的估计。相比于先进的多体计算方法,TB09泛函通常能够得到相近的结果,但所需时间更短 - 计算速率会快几个数量级,在耗时上基本与LDA方法相当。因此,meta-GGA泛函是一种非常实用的能够有效描述半导体和绝缘体电子结构的方法。

需要注意的是,TB09泛函不能用于计算材料的精确能量,只能用于计算材料的电子结构。材料体系的精确能量和几何结构可以基于GGA-PBE泛函得到。

在这里,我们假定你已经熟悉VNL的基本工作流程,如QuantumATK入门所述。

本教程使用硅作为计算实例。与绝大多数半导体类似,GGA和LDA方法均会严重低估Si的带隙(0.5eV到0.6eV)。但是,利用TB09计算得到的带隙值(1.18eV)会与实验值非常接近。此外,利用QuantumATK的光学性质计算模块,Si的准确介电常数也可以得到,与实验值仅相差百分之几。

提示

本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。

硅的电子结构及光学性质

设置计算参数

启动VNL,创建新任务并命名,然后打开该任务。通过点击工具栏上的按钮运行Builder。在Builder中,点击Add下拉菜单中的From Database…。在搜索栏中输入“silicon”并从所有匹配项列表中选中硅的标准相 - Silicon (alpha)。在下面的面板中,您将可以看到所选硅结构的晶格参数和对称性等信息。

双击所选中的硅结构或者点击右下角的图标,将结构加入到Stash中。

现在,通过点击窗口右下角的“Send to”图标,将结构发送到Script Generator,并从弹出的菜单中选择Script Generator(默认选择,黑体bold高亮显示)。

Script Generator中,

  • 增加New calculator;
  • 增加Analysis ‣ Bandstructure;
  • 增加Analysis ‣ DensityOfStates;
  • 增加Analysis ‣ OpticalSpectrum;
  • 更改输出文件名为si.nc

下一步是通过双击每一模块更改计算参数:

  • 打开New calculator模块,设置:
    • 选择ATK-DFT calculator(默认设置),
    • 选择k-points为(4,4,4),
    • 选择交换关联泛函(exchange-correlation functional)为MGGA,
    • 在“Basis set/exchange correlation”下,选择赝势为HGH[Z=4] LDA.PZ
    • 最后,为Si元素选择Tier 3基组。
    • 点击右下角的OK按钮关闭对话框
  • 打开DensityOfStates模块,设置:
    • 选择k-points为(15,15,15)。
  • 打开OpticalSpectrum模块,设置:
    • 选择k-points为(15,15,15),
    • 费米面以下和以上分别选择10条和20条能带(这控制了光学矩阵元计算中所包含能带的数目)。

提示

对于该计算,您将使用Hartwigsen,Goedecker,Hutter(HGH)赝势^[2]。光学性质的计算需要对费米能级以上的虚拟态有很好的描述。硅的Tier 3基组包含已优化好的3s,3p(2个轨道),3d,4s 轨道。硅的Tier 4基组会增加对其另一个3s轨道以及其它轨道的描述,但这似乎对带隙值并没有显著的影响(仅仅会更耗时)。如果选择比Tier 3更小的基组,即便使用MGGA,您将会得到不准确的带隙值。

保存Editor处的脚本以便将来作参考。

运行计算与结构分析

将作业脚本发送至Job Manager,然后开始计算。任务将会在几分钟后结束。文件si.nc会出现在VNL主窗口中的Project Files下。在LabFloor中选择Group by Item Type。

硅的态密度

选择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$,这一数值与实验值11.9基本一致。(用更大的机组描述Si元素,我们可得到12.2左右的数值,但是也请注意我们并没有对k点采样进行优化)。

吸收系数和折射率与介电常数有关,可以参见https://docs.quantumwise.com/manuals/manual.html

下面的脚本描述如何利用介电常数计算吸收系数和折射率,并绘制它们随波长变化的图谱。

# Load the optical spectrum
spectrum = nlread('si.nc', OpticalSpectrum)[-1]
 
# 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, 0, :]
d_i = spectrum.evaluateImaginaryDielectricConstant()[0, 0, :]
 
# Calculate the wavelength
l = (speed_of_light*planck_constant/energies).inUnitsOf(nanoMeter)
 
# 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/hbar/speed_of_light*k).inUnitsOf(nanoMeter**-1)
 
# Plot the data
import pylab
pylab.figure()
pylab.subplots_adjust(hspace=0.0)
ax = pylab.subplot(211)
ax.plot(l, n, 'b', label='refractive index')
ax.axis([180, 1000, 2.2, 6.4])
ax.set_ylabel(r"$n$", size=16)
ax.tick_params(axis='x', labelbottom=False, labeltop=True)
ax = pylab.subplot(212)
ax.plot(l, alpha, 'r')
ax.axis([180, 1000, 0, 0.24])
ax.set_xlabel(r"$\lambda$ (nm)",  size=16)
ax.set_ylabel(r"$\alpha$ (1/nm)", size=16)
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.
atk/硅的光学性质.txt · 最后更改: 2019/02/06 10:08 由 220.181.108.166

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