这是本文档旧的修订版!
本文以氢分子放置在锂的单原子线中间的模型为例,介绍ATK最重要的功能–电子输运计算。本例中的模型非常简单,因此计算可以在很短的时间里完成。然而本例中包括的物理概念和效应对很多实际体系都是适用的。
计算采用密度泛函理论(DFT)方法与非平衡态格林函数(NEGF)方法结合。更多关于计算的理论细节可以参考ATK的手册。
<jmol lih2.cif> </jmol>
用于器件计算的结构模型与普通的周期体系或非周期体系都不一样,而是两者的组合:两个周期体系部分分别代表左右电极(或者是晶体管的源、漏电极),中间的非周期部分是决定器件功能的关键部分,可以是一个分子、石墨烯、纳米管、多层结构等各种体系,这部分对于电子和空穴的透射起到了主要的散射作用。
除了源、漏电极以外,ATK还支持增加门电极,可以模拟晶体管,具体设置方法可以参考相关的实例教程。
ATK中的器件模型由三个相邻的区域构成:左电极、右电极以及位于中间的中央区域(Central Region)。(如下图)
由于电极部分是由周期性体系构成了,而中间区域是有有限的非周期体系构成的,因此它们连接的部分需要一个过渡区域。这部分是左右电极自然延伸而成的表面(Surfaces),分别与左右电极类似。但表面通常会有重构(原子排列不同于块体电极部分)。
此外,为计算的稳定性考虑,ATK要求中央区域的两端最少有一个周期的电极体系延伸部分(electrode extensions),这部分原子排布与电极始终保持完全一致。
电极的延伸部分和表面部分构成了屏蔽区域(Screening Region),这部分存在的意义是在自洽计算的过程中让中间的“分子”结构平滑的过渡到两端的块体结构。
上文解释了ATK中的电极模型实际上在中央区域中已经定义了(电极延伸部分),这也是构建双电极体系的最便捷方法:先构建包含电极延伸部分的中央区域,再扩展周期电极部分。
本例中使用的模型是氢分子作为杂质镶嵌在锂原子线中间,如下图中用不同颜色条标出了不同的区域。
本文最后一部分介绍如何正确构建中央区域模型,这里先直接给出模型的脚本:
# Set up lattice vector_a = [6.0, 0.0, 0.0]*Angstrom vector_b = [0.0, 6.0, 0.0]*Angstrom vector_c = [0.0, 0.0, 39.3702095157]*Angstrom lattice = UnitCell(vector_a, vector_b, vector_c) # Define elements elements = [Lithium, Lithium, Lithium, Lithium, Lithium, Lithium, Hydrogen, Hydrogen, Lithium, Lithium, Lithium, Lithium, Lithium, Lithium] # Define coordinates fractional_coordinates = [[ 0.5 , 0.5 , 0.03955015], [ 0.5 , 0.5 , 0.11865069], [ 0.5 , 0.5 , 0.19775123], [ 0.5 , 0.5 , 0.27624721], [ 0.5 , 0.5 , 0.35642874], [ 0.5 , 0.5 , 0.43295913], [ 0.5 , 0.5 , 0.48952536], [ 0.5 , 0.5 , 0.51047676], [ 0.5 , 0.5 , 0.56704061], [ 0.5 , 0.5 , 0.64357304], [ 0.5 , 0.5 , 0.72375085], [ 0.5 , 0.5 , 0.80224875], [ 0.5 , 0.5 , 0.88134932], [ 0.5 , 0.5 , 0.96044984]] # Set up configuration bulk_configuration = BulkConfiguration( bravais_lattice=lattice, elements=elements, fractional_coordinates=fractional_coordinates )
保存文件为central_region.py
,把文件拖动到Builder上即可导入结构。(也可以把以上脚本文本拷贝到剪贴板,然后在Builder中选择Add→From Clipboard
)
在Builder中选择右侧工具栏中Device Tools→Device from Bulk
。
这个工具自动探测中央区域的左右部分的周期性,给出添加电极的多种可能性。本例中两端的锂原子间距相同(约3.11Å),周期性明显,当然二倍、三倍、四倍等周期也是存在的。
尽管看上去选择最小的电极周期是可以的,但实际上却行不通。实际体系通常需要大于7-8Å的电极长度,小于这个长度的电极可能会导致计算结果错误。关于这一点的详细解释请参考双电极体系中如何正确设置电极。
本例中应该选择三个锂原子长度(约9.3Å)作为电极。
用左侧工具中的“Split Device”工具可以把器件的电极部分单独拆分开来,用来进行电极部分的能带计算等。
关于器件还有一些需要注意的地方。
中央区域和电极在ATK中都定义为块体结构(Bulk Configuration),因此是作为三维周期体系来处理的。当把三个部分结合成器件结构(Device Configuration)时,A、B方向仍然是周期结构,但是只有电极部分的C方向是周期结构,实际上是半无限周期结构(Semi-inifinite),从中间向两边无限周期重复。
在脚本里器件结构是这样定义的:
device_configuration = DeviceConfiguration( central_region, [left_electrode, right_electrode] )
需要注意的是,尽管左电极变量名为left_electrode
,右电极为right_electrode
,但实际上左右电极的变量名是任意的,仅通过先后顺序来定义哪个是左电极。
在输运计算中,中央区域并不是作为周期体系来处理,而是采用开放边界条件,电荷可以流出或流入中央区域。
由于A、B方向限定为周期结构,因此对于一位的纳米线或二维的片层结构,需要在A或B方向增加足够的真空区域,以确保AB方向周期性重复的体系不会相互作用。真空层的厚度可能需要测试一下收敛性。
ATK中的器件结构是描述中央散射区结构耦合在两个半无限电极结构的模型。构建这种结构的最便捷的方法是先构建包含左右电极的中央区域,再转换成器件。详细的建模过程参见本文最后一部分。
下面介绍如何设置器件的计算。
设置透射谱计算:
TransmissionSpectrum
;li-h2.nc
。
进一步修改计算参数,双击“Script”中的New Calculator
;为加快计算,将Density mesh cut-off设为50 Hartree。
点击OK关闭对话框。
双击“Script”中的TransmissionSpectrum。将能量范围设置为[-2,5] eV,选择Self-energy calculator为Krylov(最快的方法)。
点击OK。
将脚本传送到Job Manager(右下角拖动或点击“Send to”按钮选择Job Manager
)
点击Run Queue开始计算。出现的窗口中会显示计算过程的log信息。本例计算只需要几分钟,计算结束时可以保存log文件以便以后参考。
至此,一个完整的输运计算就结束了(零偏压下)。接下来可以进行结果分析。进一步的其他计算流程是类似的。
简单介绍一下如何查看计算结果。 在VNL文件浏览的窗口中,找到并勾选li-h2.nc文件,在中间的LabFloor窗口中就出现了所有可以查看的结果图标。
选中Transmission Spectrum图标,在右侧工具中点击Transmission Analyzer。新版的Transmission Analyzer中可以交互式的研究透射谱、k空间透射通道、本征透射通道等丰富的信息。
除了进行在上面的自洽计算脚本中直接添加其他分析计算以外,ATK还可以稍后再进行其他的分析计算。 这样做很多时候可以把耗时的自洽计算与快速的分析计算分开进行,很多时候更方便。因为往往我们需要先了解体系的基本特性,再根据需要决定进行哪些分析计算,而不是盲目的进行很多没有价值的计算。
例如,我们可以先计算一下透射谱,查看透射最强的能量是多少,再分析该能量处的局域态密度。后面的分析计算都不需要再进行自洽,因此是非常快的。
此外,非自洽的分析计算通常不需要很强的电脑,常常可以在台式机或笔记本电脑上完成。而第一步的自洽计算应该在专用的集群服务器上完成。
在之前的Script Generator窗中,删去New Calculator和TransmissionSpectrum(用Delete键)。 双击Analysis from File,双击Analysis选择DeviceDensityOfStates。
用户也可以直接打开一个新的Script Generator窗口,这样窗口的右侧不会显示结构。但这不影响计算,因为体系的信息将从li-h2.nc文件中读取。
Analysis from File功能可以从过去计算过的结果中读取体系的信息来进行分析,双击它,选择过去自洽计算得到的nc文件。
nc文件中可能包括多个体系的信息,用不同的ID标示(从gID000开始编号),为确定从哪个体系信息开始计算,应首先在VNL LabFoor里确定相应的ID。
点击OK关闭。
双击Script中的DeviceDensityOfStates,设置能量范围为[-5,5] Points为201。
本例中将分析计算的结果保存在相同的li-h2.nc文件中。实际上用户可以选择保存在其他文件中。分开保存有助于管理不同的数据,删去并不需要永久保存的结果等。
将脚本传送至Job Manager并进行计算。
在VNL的文件浏览窗口中选中li-h2.nc,在LabFloor中选中Device Density of States,即可用右侧的2D Plot工具打开分析数据。
在同一个窗口中还科技对态密度进行投影,值得注意的是氢原子上的投影态密度与透射谱形状非常相似。
投影(部分)态密度可以通过在右侧显示的结构上直接选择原子来显示,选择多个原子需要按住Ctrl键。选中原子后还可以在上部选择投影在s、p、d、f等角动量上。