这是本文档旧的修订版!
对于周期性固体,薛定谔方程 $H \psi_{n{\bf k}} = E_{n{\bf k}} S \psi_{n{\bf k}}$ ($S$ 为重叠矩阵)中的 $\psi_{n{\bf k}}$ 可以写为 $\psi_{n{\bf k}}({\bf r}) = e^{-i {\bf k}\cdot {\bf r}} U_{n{\bf k}}({\bf r})$,这里的 $U_{n{\bf k}}({\bf r})$ 是与晶体自身周期性相同的周期函数。在一般的能带结构计算中,波矢量 ${\bf k}$ 为实数,通过求解上面的薛定谔方程得到不同 ${\bf k}$ (通常位于第一布里渊区的对称线上) 的固定值,定义一个特征向量,由此确定本征能量 $E_{n{\bf k}}$ (即能带结构)。
计算复数能带的另一个方法可参考 [CS82]。代替地,能量 $E$ 是固定的,用来解薛定谔方程的 ${\bf k}$ 是需要求解的值。这些解法可以得到实数和复数的 ${\bf k}$,实数 ${\bf k}$ 的解通常是 Bloch 态,而虚部的解是在一个方向上呈指数递减,另一个方向上递增。这样的解不能存在于块体材料中,因此在能带结构计算中通常被忽略。然而,它们可以存在于表面或界面处,并且可以提供关于电子态如何在材料中衰变的信息,例如通过一个薄的隧道屏障。
您将主要使用图形用户界面 QuantumATK 来设置和分析结果。如果您是 QuantumATK 的新手,建议您阅读 Basic QuantumATK Tutorial。
本教程中的计算将使用 QuantumATK 的半经验模型。所有参数的完整说明和有关其物理相关性在很多情况下的详细讨论,可参阅 ATK Reference Manual。特别是,参考手册条目中与复数能带计算相关的:ComplexBandstructure。
启动 QuantumATK,创建一个名为“ComplexBandstructure”的新项目。然后点击 Open,点击工具栏的按钮 开启 Builder。
在 Builder 里,点击 Add From Database,搜索“Silicon(alpha)”结构。双击结果所在行或者点击右下角的 按钮将结构添加到 Stash。
在面板中展开 Builders,打开 Surface(Cleave)工具,按照以下步骤设置 Si(100) 表面:
为缩短计算时间,避免区域折叠,我们通过以上设置和最小的层数表示表面。
切割平面即本例中的(100)面总是跨越两个第一原胞矢量和 ${\bf B}$。在“electrode”模式下,平面的法线与第三原胞矢量 ${\bf C}$ 重合,但在“bulk-like”模式下则不同。在 QuantumATK 中,复数能带始终沿第三倒易矢量 ${\bf g}_C$ 计算得到,其显然平行于 ${\bf A} \times {\bf B}$。因此使用当前结构您将获得沿(100)面的复数能带结构。
点击 Builder 右下角的 按钮将结构发送到 Script Generator ,执行以下步骤。
si_100_cbs.nc
。接下来,打开嵌入的 New Calculator 模块(双击),设置一个紧束缚计算。
下一步,打开 ComplexBandstructure 分析模块,然后编辑:
在复数能带计算中, ${\bf k}$ 在切割平面的投影保持不变,且投影值从 $(k_A,k_B)$ 参数获得,该参数用两个第一倒易晶格矢量 ${\bf g}_A$ 和 ${\bf g}_B$ 表示。因此,所得解将位于与切割平面法线平行的第三倒易晶格矢量 ${\bf g}_C$。对应于每一个 $(k_A,k_B)$ 值可以获得一组新解 $k_C+i\kappa_C$。
请注意,$k_C$ 是复数能带机构的实部,而 $kappa_C$ 为虚部。
您现在已经完成了 Python 脚本,保存为 si_100_cbs.py
并发送到 Job Manager 执行。像这种小的体系仅需要几分钟。如有需要,您也可以在此处下载脚本:↓si_100_cbs.py。
这种类型的计算并行得非常好,因此对于较大的结构,强烈建议并行执行脚本。