目录

硅 p-n 结

在这篇教程里,你将会学习到:

提示

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

硅晶胞:Slater-Koster 和 MGGA

Slater-Koster 计算

接下来,我们首先使用半经验的方法(ATK-SE)计算,哈密顿量由 Slater-Koster 模型给出。

DFT-MGGA 计算

ATK-DFT中的TB09 MGGA近似[参考文献:aTB09],已经在Meta-GGA 和二维受限的砷化铟教程中详细介绍。为了对比Slater-Koster与MGGA结果的差异,我们将会拟合参数c,使得MGGA的带隙可以和Slater-Koster相匹配。在本教程中,我们将会使用这个拟合参数 c 进行 MGGA 计算。

从图中可以看出,TB09-c参数对能带计算具有重要影响,并且可以看出,影响是线性的。从脚本输出可知,最佳的c值是1.048.

说明

如果仔细看“Bandstructure_fit.py”脚本,将会看到能带计算部分由下面提供:

bandstructure = nlread("file.nc", Bandstructure)[0]
gap_direct   = bandstructure._directBandGap().inUnitsOf(eV)
gap_indirect = bandstructure._indirectBandGap().inUnitsOf(eV)
print "direct gap:   %.2f eV" % gap_direct
print "indirect gap: %.2f eV" % gap_indirect

硅单晶器件

现在,我们构造一个硅单晶器件。

说明

这52层晶胞将构成中心区域。由于硅半导体较长的屏蔽层,器件需要足够长(14nm),详细解释参见Doping in QuantumATK: the Ni silicide - Si interfaces. 从下面的结果可以看出,这个器件仍旧不够长,但是,为了能较快的用MGGA计算,我们在本教程中选择用52层器件。

Slater-Koster IV曲线

接下来,我们将会学习如何利用 Slater-Koster 模型计算p-n硅单晶器件的 IV 特性曲线。

掺杂硅分子结

我们需要设置合适的掺杂以获得一个p-n结。为此,我们将脚本发送至 Editor 窗口,找到脚本中定义结构的部分:

device_configuration = DeviceConfiguration(
central_region,
[left_electrode, right_electrode]
)

在这部分之前,添加一下内容,使之获得一个掺杂浓度为 2×1019 cm-3 的 p-n 结:

# -------------------------------------------------------------
# Add Doping
# -------------------------------------------------------------
doping_density = 2e+19
# Calculate the volume  and convert it to cm^-3
# Note: right and left electrodes have the same volume,
volume = right_electrode_lattice.unitCellVolume()
volume = float(volume/(0.01*Meter)**3)
# Calculate charge per atom
doping = doping_density * volume / len(right_electrode_elements)
# Add p- and n-type doping to the central region
external_potential = AtomicCompensationCharge([
     ('p_doping', -1*doping), ('n_doping',doping)
     ])
central_region.setExternalPotential(external_potential)
# Add doping to left and right electrodes
left_electrode.setExternalPotential(
   AtomicCompensationCharge([(Silicon, -1*doping)]))
right_electrode.setExternalPotential(
   AtomicCompensationCharge([(Silicon, doping)]))

运行计算

发送脚本至 Job Manager,运行计算。

通过脚本中的分析,以及在 Job Manager 中多线程并行计算,对于零偏压部分的计算,将会花费几分钟,而对于整个IV曲线的计算则需要几个小时。在 2014版中,利用不同方法和计算透射谱所花的时间与并行数的关系如图所示。

说明

这个计算是运行在 Intel e5472 3.0 GHz 的机器上,图中用单点描述的是 13.8 版,调用12个进程的结果。整体来看,2014版 比13.8版有 25%~30% 的速度提升。 计算详细参数:零偏压,对于 SCF 采用 7x7x100 的k点,透射计算则取 21×21。其他所有参数均按照本教程设置。 可以看出对于 post-SCF 计算和透射谱计算,Slater-Koster 方法效率远大于其他方法。

DFT-MGGA 电流曲线

当 Slater-Koster 计算运行时,我们可以设置 DFT-MGGA 计算。回到 Script Generator 窗口,修改 Calculator 部分:

移除除了 IVCurve 外的所有分析项,然后设置器件掺杂。并提交运算。

结果分析

电流电压曲线

一旦两个计算结束,在项目文件夹中,我们会在nc文件中看到两个 IVCurve 项,图标为

注意

从图中可以看出,Slater-Koster 方法和 DFT-MGGA 方法计算结果几乎是一样的。

器件态密度

下图是p-n结电子态示意图,图中画出了势能沿输运方向随坐标的变化。 图片来自:http://wanda.fiu.edu/teaching/courses/Modern_lab_manual/pn_junction.html

通过 VNLQuantumATK 中的 DeviceDensityOfStates 或者 LocalDensityOfStates,可以很容易的绘制这幅图。

注意

在这,我们可以通过分析DDOS,绘制出势能沿输运方向的势能图,从此处下载脚本ddos_edp.zip

为了能正常运行脚本,nc文件中必须包含以下几个内容:DeviceConfiguration, Device DensityOfStatesElectrostaticDifferencePotential。我们可以通过 Editor 窗口自定义脚本。

特别注意,ddos_edp.py 脚本需要读取以下内容:

  • DeviceConfiguration:用来确定器件方向的空间尺寸和分辨率,定义DDOS在空间中的投影,同时电压也是由此对象读取。
  • DeviceDensityOfStates:除了读取和绘制器件态密度投影,这部分数据同样用来提取左电极的能带边缘。这些信息将会输出用于对齐并绘制差别静电势。
  • ElectrostaticDifferencePotential:绘制沿器件的平均差别电势。

为了获取 DDOS,在终端运行:

atkpython ddos_edp.py IV_2e19_SK.nc

其中IV_2e19_SK.nc文件,包含上述所有的计算内容。同样可以为有限偏压绘制电势图,详见下一部分。结果如下:

有限偏压计算

为了计算有限偏压(V=-1V~1V),作如下设置:

# -------------------------------------------------------------
# Analysis from File
# -------------------------------------------------------------
device_configuration = nlread('ivcurve_selfconsistent_configurations.nc', object_id='ivcurve010')[0]
nlsave('ivcurve_selfconsistent_configurations.nc', device_configuration)
atkpython ddos_edp.py Analysis_ivcurve_10.nc

按照相同的步骤,可以在 ivcurve_selftconsistent_configuration.nc 文件中绘制其他偏压的 DDOS。

静电势

从图中可以看到,结果显示电势相对于器件长度来说并未“收敛”,这主要体现在在器件中心区域的两端静电势的梯度并未过渡到零。下图比较了不同长度器件(一个是本教程中的长度,一个要比本教程的长度更长)的 ElectrostaticDifferencePotential

参考