2. 模块介绍¶
2.1. PREPARE模块¶
POSCAR
和 dasp.in
,其中 dasp.in
是主要的计算参数控制文件。dasp.in
中的输入参数是否合理。如果合理,则启动下一步的计算,并在 1prepare.out
中注明准备工作成功完成。1prepare.out
文件中,程序终止。用户需要根据报警信息修改相关参数,重新运行。dasp.in
的输入参数自动产生VASP计算需要的输入文件:晶体结构文件 POSCAR
、VASP计算参数控制文件 INCAR
、k点文件 KPOINTS
、赝势文件 POTCAR
、任务提交脚本文件。- POSCAR的产生
DASP根据用户输入的结构文件
POSCAR
,通过本项目组发展的“近似立方体超胞”算法,产生一个给定原子数范围之内的、最接近立方体的超胞。然后,固定晶格常数,对超胞内的所有原子位置进行优化,得到POSCAR_final
文件。
- KPOINTS的产生
对于含缺陷超胞的计算,DASP均采用单k点的方式,即
KPOINTS
文件中只包含Gamma点。
- INCAR的产生
DASP会产生两个不同的INCAR,
INCAR-relax
为结构优化计算所用的INCAR,INCAR-static
为静态计算使用的INCAR。默认产生的参数均为常用参数,若用户需要修改,可在PREPARE模块运行完后自行修改。根据dasp.in
的输入参数,DASP可采用三种不同等级的计算(详见输入参数level=1或2或3)。对于level=2和3,将开展杂化泛函的计算。对于杂化泛函中严格交换部分的比例,DASP可以根据用户在dasp.in
中设置的实验带隙值自动确定,并将匹配实验带隙值的交换比例参数写入INCAR中。
- POTCAR文件的产生
根据用户提供的赝势文件路径,DASP会自动产生计算所需要的赝势文件
POTCAR
。
- 任务提交脚本文件的产生
DASP会根据
dasp.in
中用户输入的队列系统名称、队列名、节点数、核数、vasp路径,自动产生提交任务的脚本文件。
dasp.in
中指定采用Lany-Zunger修正方案(详见输入参数correction介绍),该方案需要知道超胞对应的马德隆常数。根据产生的超胞结构,PREPARE模块会调用VASP自动计算超胞的马德隆常数,并写入 dasp.in
中。此处的马德隆常数只与超胞的晶格形状相关。1prepare.out
文件。相关的状态、结果及报错信息,可以根据此文件查询。该模块成功运行完成后,将在 1prepare.out
文件末尾备注成功完成信息,后续TSC模块启动时将检测该信息。2.2. TSC模块¶
- 化合物半导体热力学稳定性的判断
如果一个化合物半导体在热力学上稳定(不相分解为单质或其他杂相,合成的样品可以保证纯的单相状态),那么,其需要满足如下三类条件:
- (1)目标化合物的生成反应达到热力学平衡:
在平衡情况下,目标化合物的生成反应与分解反应处于动态平衡,对化合物 \(A_kB_lC_mD_n\) ,各组成元素的化学势 \(\mu\) 及该化合物的形成能 \(E^f\) 需要满足下列等式:
(1)¶\[k\mu_A + l\mu_B + m\mu_C + n\mu_D = E^f(A_kB_lC_mD_n)\]- (2)与目标化合物半导体竞争的各类杂相化合物的生成反应不能进行:
对任一杂相化合物 \(A_{k'}B_{l'}D_{n'}\) ,各元素的化学势及杂相化合物的形成能需要满足下列不等式:
(2)¶\[k'\mu_A + l'\mu_B + n'\mu_D < E^f(A_{k'}B_{l'}D_{n'})\]- (3)目标化合物各组成元素的单质相不会形成:
为避免形成单质相,各元素的化学势满足以下不等式:
(3)¶\[\mu_A< 0\ ,\ \mu_B< 0\ ,\ \mu_C< 0\ ,\ \mu_D < 0\]
热力学稳定性计算的两个步骤
根据上述讨论,计算化合物半导体的热力学稳定性和元素化学势稳定范围,需要所有杂相化合物的形成能。对于二元、三元、四元、五元甚至更多元的化合物,其可能的竞争杂相化合物很多,在计算中均需要考虑进来。如果考虑不充分,将导致一些不稳定的化合物被计算预测为稳定的。因此,充分的考虑所有可能的杂相对于精确计算热力学稳定性和元素化学势范围非常关键。 为尽可能充分的考虑所有可能的杂相,DASP根据目标半导体的组成元素,自动搜索Materials Project或本地材料基因数据库中包含的各种可能杂相,并根据其形成能结果快速确定影响目标化合物半导体的关键杂相;然后,针对目标化合物和关键杂相,开展精确的形成能计算,根据结果进一步精确计算目标化合物的稳定性和元素化学势空间的稳定范围。具体分为两个阶段:
第一步
DASP将访问Materials Project或本地数据库,检索目标化合物组成元素相关的所有可能杂相,获取数据库中的能量与结构信息。 同时,产生与Materials Project数据库一致的VASP计算参数(Materials Project数据库中采用GGA-PBE交换关联势近似计算得到的数据)和输入文件:
INCAR
、KPOINTS
、POTCAR
、POSCAR
(复制自用户提供的文件) ,调用VASP计算目标化合物的总能和形成能(由此计算得到的能量与Materials Project或本地数据库中能量是直接可比的)。计算流程与Materials Project数据库的流程一致,分为两次结构优化与一次静态计算,分别在”TSC/目标化合物同名目录”下的relaxation1
,relaxation2
,static
。然后,汇总目标化合物和竞争的杂相化合物的形成能信息,求解上述三类判断条件对应的等式和不等式组,预测目标化合物是否稳定,并确定限制元素化学势稳定范围的关键杂相。 这一阶段计算仅需调用VASP计算目标化合物半导体原胞的结构和总能,并且是采用GGA-PBE交换关联势近似,计算量很小;而大量可能的杂相的数据,均直接来自Materials Project或本地数据库,无需计算。因此,可以快速、充分的考虑各种杂相,从而确定关键杂相。
第二步
针对目标化合物和第一阶段确定的关键杂相,采用PREPARE模块产生的统一的VASP计算参数和输入文件:
INCAR
和POTCAR
、TSC模块自动产生的KPOINTS
、POSCAR
(对于目标化合物,复制自用户提供的文件;对于关键杂相,自动从Materials Project或本地数据库下载),调用VASP重新计算目标化合物和关键杂相的能量和形成能。为加快计算,本阶段,仅对目标化合物和关键杂相做静态计算,计算目录位于”TSC/目标或杂相化合物同名目录下”static_recalc
。 然后,根据本阶段计算的目标化合物和关键杂相的形成能,重新求解上述三类判断条件对应的等式和不等式组,计算各元素的化学势稳定范围并写入dasp.in
文件,作为后续DEC和DDC模块计算的元素化学势输入。
2tsc.out
文件中,可以根据此文件查询该模块的运行状况。该模块成功运行完成后,将在 2tsc.out
文件末尾备注成功完成信息,后续DEC模块启动时将检测该信息。2.3. DEC模块¶
dasp.in
中用户设置的参数和PREPARE模块输出的超胞结构,自动产生一系列缺陷和杂质的结构构型。然后,基于PREPARE模块产生的VASP输入文件和TSC模块输出的元素化学势数值,DEC模块会调用第一性原理计算软件VASP开展缺陷和杂质的结构和电子结构的计算,根据其结果计算各缺陷和杂质的形成能和转变能级,输出图像。dasp.in
中的输入参数是否合理。如果合理,则启动下一步计算,并在 3dec.out
中实时输出运行状态信息。3dec.out
文件中,程序终止。用户需要根据报警信息修改相关参数,重新运行。- 中性缺陷的产生
中性缺陷包括空位、反位以及间隙缺陷三类,DEC模块利用PREPARE模块产生的超胞文件
POSCAR_final
,根据晶体结构的对称性来产生所有不等价位置的空位和反位缺陷,并在距原子较远位置通过随机撒点的方式获得间隙缺陷。待缺陷构型产生完毕,DEC模块将把PREPARE模块产生的INCAR、KPOINTS、POTCAR、任务脚本文件等VASP输入文件,放入各个缺陷的目录中。对于外来杂质,只产生反位(替位)、间隙两种构型。
- 带电缺陷的产生
DEC模块将根据中性缺陷的计算结果(中性缺陷本征值的占据状态),产生相应的带电缺陷的计算目录。对于中性缺陷计算失败或未收敛的缺陷,则不会产生带电缺陷。
- 自动提交计算任务
DEC模块会自动调用VASP开展所有电中性和带电缺陷的结构优化和静态计算,并自动检测任务是否成功以及收敛。可在dec目录下,使用命令
dec-state
随时查看所有待计算的任务状态,包括完成已收敛、完成未收敛、计算出错、正在计算、正在等待,未提交等状态。待DEC模块运行完毕后,对于未收敛和计算出错的任务,用户可以进入相应的目录修改INCAR参数,并将该目录写入dec目录下的redo.in
文件,并重新执行DEC模块。
- 形成能计算
形成能计算公式:
(4)¶\[ΔE_{f} = E_{tot(defect)} - E_{tot(host)} - \Sigma_{i}n_{i}(\mu_{i} + E_{i}) + q(E_{F} + E_{VBM}) + E_{corr}\]其中, \(ΔE_{f}\) 表示形成能, \(E_{tot(defect)}\) 表示含缺陷超胞的能量, \(E_{tot(host)}\) 表示不含缺陷超胞的能量; \(n_{i}\) 表示缺陷形成过程中从超胞移除的第 \(i\) 种元素的原子数( \(n_{i}\) <0)或移入的原子数( \(n_{i}\) >0), \(\mu_{i}\) 表示第 \(i\) 种元素的化学势,其以该元素单质相的每个原子的能量 \(E_{i}\) 作为参考; \(q\) 表示缺陷超胞的带电量(施主缺陷离化后转变为正电状态, \(q>0\) ,电子被移出超胞;受主缺陷离化后转变为负电状态, \(q<0\) ,电子被移入超胞), \(E_{F}\) 表示以价带顶能级 \(E_{VBM}\) 作为参考的费米能级; \(E_{corr}\) 表示超胞计算模型中由于超胞大小有限和镜像电荷相互作用等引入的形成能修正值。
DEC模块会读取第一性原理计算的输出,根据该公式计算出各个缺陷各带电状态的形成能,并根据用户设置的修正方法自动加入修正值。对于计算失败或未收敛的缺陷,则不会计算形成能。
- 输出图像
DEC模块会根据形成能的计算结果输出各缺陷形成能随费米能级变化的图像,包括dat格式的数据:
p1.dat, p2.dat, ...
及png格式的图片:p1.png, p2.png, ...
(数字表示TSC模块给出的化学势空间的取点数量),以及转变能级的数据tl.dat
及图片:tl.png
。请根据文件中对应的说明进行画图。
- 畸变结构计算
DEC模块会根据原始缺陷结构的计算结果,自动产生畸变结构。值得注意的是:必须要等原始缺陷结构的计算完成后,指定要产生畸变结构的缺陷,再次运行DEC模块进行计算。对于未完成初始结构计算的缺陷,则不会产生畸变结构。
3dec.out
文件。相关的状态、结果及报错信息,可以根据此文件查询。该模块成功运行完成后,将在 3dec.out
文件末尾备注成功完成信息,后续DDC模块启动时将检测该信息。2.4. DDC模块¶
其中 \(N_{sites}\) 表示该缺陷在单位体积可能形成的位点数; \(g_q\) 表示该缺陷处于价态q时的缺陷态简并因子; \(ΔE_f\) 表示缺陷的形成能。 | 离化后的带电缺陷会影响载流子的浓度。所有带正电(q>0)的离化施主缺陷产生的总正电荷量为 \(\sum_{\alpha,q>0} [q*n(\alpha,q)]\) ;所有带负电(q<0)的受主缺陷产生的总负电荷量为 \(\sum_{\alpha,q<0} [(-q)*n(\alpha,q)]\) 。电子和空穴载流子的浓度将由热激发和这些缺陷(杂质)的离化共同决定。在平衡态下,费米能级可以利用以下电中性条件确定:
其中 \(n_0\) 和 \(p_0\) 是自由的电子和空穴载流子浓度,由下式决定:
其中 \(g(E)\) 表示半导体能带的态密度, \(f(E)\) 是Fermi-Dirac分布函数。
- 形成能数据的汇总
DDC模块将根据DEC模块计算的所有缺陷类型,自动搜寻各缺陷目录下输出的形成能和转变能级等数据,汇总并输出在文件
DefectParams.txt
中。
- 费米能级自洽计算
自洽求解电中性条件方程,分别计算半导体在生长温度和工作温度下的费米能级,输出在
4ddc.out
和Fermi.dat
中。
- 缺陷和载流子浓度计算
根据费米能级,即可计算相应的载流子浓度和各个价态的缺陷浓度,并输出数据
Carrier.dat
、Defect_charge.dat
以及png格式的图片文件density.png
。
4ddc.out
文件。相关的状态、结果及报错信息,可以根据此文件查询。2.5. CDC模块¶
(1)辐射俘获系数
(2)光致发光谱的形状
(3)非辐射俘获系数
- 1
WTRW Shockley and WT Read Jr. Statistics of the recombinations of holes and electrons. Physical review, 87(5):835, 1952. doi:10.1103/PhysRev.87.835.