这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
atk:dft-1:2和dft-pps密度泛函方法计算电子态 [2020/06/01 20:37] – 创建 xie.congwei | atk:dft-1:2和dft-pps密度泛函方法计算电子态 [2021/12/06 15:57] (当前版本) – [DFT-12 和 DFT-PPS 密度泛函方法计算电子态] fermi | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== DFT-12 和 DFT-PPS 密度泛函方法计算电子态 ====== | + | ====== DFT-1/2 和 DFT-PPS 密度泛函方法计算电子态 ====== |
+ | **版本:**2017.0 | ||
+ | |||
+ | QuantumATK 的2017年版本为计算半导体和绝缘体的电子结构引入了两个新颖的密度泛函修正方法:DFT-1/ | ||
+ | |||
+ | **DFT-1/2** 通常也被称为 LDA-1/2 或 GGA-1/ | ||
+ | |||
+ | **PPS** 是赝势投影偏移的缩写。本着 Zunger 和他的同事在 <color # | ||
+ | |||
+ | {{ : | ||
===== DFT-1/2 法 ===== | ===== DFT-1/2 法 ===== | ||
+ | DFT-1/ | ||
+ | |||
+ | |||
+ | |||
+ | <WRAP center info 100%> | ||
+ | === 重要 === | ||
+ | 该方法并非完全没有经验参数,例如使用的截断半径。依据参考文献 <color # | ||
+ | |||
+ | 还要注意的是,并非系统中的所有元素都必须进行 DFT-1/2 校正。通常建议仅将其添加到阴离子物质中,而使阳离子物质保持正常。 | ||
+ | </ | ||
+ | |||
+ | QuantumATK 中提供了默认的 DFT-1/2 参数;并已针对各种材料进行了优化,且在大多数情况下,相对于标准的 LDA 或 GGA 改进了带隙。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
==== 采用 PBE-1/2 的 InP 能带结构 ==== | ==== 采用 PBE-1/2 的 InP 能带结构 ==== | ||
+ | |||
+ | |||
+ | 创建一个新的 QuantumATK 项目(最好放在一个新文件夹中),打开 {{: | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | 将 InP 晶体添加到 Builder 的 **Stash**,然后把构型发送到 {{: | ||
+ | |||
+ | * {{: | ||
+ | * {{: | ||
+ | |||
+ | 打开计算器界面调整计算器参数。 | ||
+ | |||
+ | k 点网格选择 9x9x9,点击 //Basis set/ | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | 关闭计算器的界面,保存脚本为 InP.py。如果您利用 {{: | ||
+ | |||
+ | <code python> | ||
+ | # | ||
+ | # Exchange-Correlation | ||
+ | # | ||
+ | exchange_correlation = GGAHalf.PBE | ||
+ | </ | ||
+ | |||
+ | 即采用 PBE 函数的 GGA-1/ | ||
+ | |||
+ | 使用 {{: | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | 或从终端运行: | ||
+ | |||
+ | <code python> | ||
+ | $ atkpython InP.py > InP.log | ||
+ | </ | ||
+ | |||
+ | 本次计算将会非常快。结束后利用 **Bandstructure Analyze** 绘制出产生的能带结构。您将发现 InP 是一个直接带隙半导体,带隙值为 1.46 eV,与文献 <color # | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | <WRAP center tip 100%> | ||
+ | === 提示 === | ||
+ | 为看得更清楚,您也许想要放大费米能级周围的能带。这里有两种方法实现: | ||
+ | |||
+ | - 利用 Zoom 工具(从左数的第三个图标) | ||
+ | - 或点击 y 轴的标记并选中,然后右击并选择 //Edit item// 打开 //Axis Properties// | ||
+ | </ | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
行 11: | 行 99: | ||
==== III-V 型半导体的带隙 ==== | ==== III-V 型半导体的带隙 ==== | ||
+ | 下图显示了 DFT-1/2 法(LDA-1/ | ||
+ | 很明显,DFT-1/ | ||
+ | |||
+ | 采用 LDA-1/2 和 GGA-1/2 计算 Ge 的红条表示错误地预测了// | ||
+ | |||
+ | |||
+ | {{ : | ||
==== 手动设置 DFT-1/2 参数 ==== | ==== 手动设置 DFT-1/2 参数 ==== | ||
+ | |||
+ | 当然,我们可以不使用默认参数,而是手动地设置 DFT-1/2 的参数。这可以通过创建 '' | ||
+ | |||
+ | 让我们以 GaAs 为例。以下脚本手动地将 As 的 DFT-1/ | ||
+ | |||
+ | <code python> | ||
+ | # | ||
+ | # Basis Set | ||
+ | # | ||
+ | # LDA-1/2 parameters for As | ||
+ | dft_half_parameters = DFTHalfParameters( | ||
+ | element=Arsenic, | ||
+ | fractional_charge=[0.3, | ||
+ | cutoff_radius=4.0*Bohr, | ||
+ | ) | ||
+ | # No LDA-1/2 parameters are needed for Ga (Disabled) | ||
+ | basis_set = [ | ||
+ | LDABasis.Arsenic_DoubleZetaPolarized( | ||
+ | dft_half_parameters=dft_half_parameters), | ||
+ | LDABasis.Gallium_DoubleZetaPolarized( | ||
+ | dft_half_parameters=Disabled), | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | 更多信息,请参见 QuantumATK 手册的 [[https:// | ||
+ | |||
+ | <WRAP center alert 100%> | ||
+ | === 警告 === | ||
+ | 在确定默认参数已格外注意的情况下,选择适当的 DFT-1/2 参数仍可能是一件非常棘手的事情。如果您选择使用非默认的 DFT-1/2 参数,则这些参数的质量将完全由用户自己承担! | ||
+ | |||
+ | QuantumWise 不支持确定自定义 DFT-1/2 参数。我们一般建议用户坚持使用默认值。 | ||
+ | </ | ||
+ | |||
+ | |||
===== DFT-PPS 法 ===== | ===== DFT-PPS 法 ===== | ||
+ | |||
+ | 如上文所述,DFT-PPS 法是将偏移应用于 SG15 赝势的非局域投影。赝势的非局域部分 $\hat{V}_\text{nl}$ 根据以下修改: | ||
+ | |||
+ | $$\hat{V}_\text{nl} \rightarrow \hat{V}_\text{nl} \mathrel{+} | ||
+ | \sum_l |p_{l} \rangle | ||
+ | |||
+ | 求和覆盖了所有的投影 $p_{l}$,$\alpha_{l}$ 是一个取决于轨道角动量量子数 $l$ 的经验参数。注意,这种方法不会增加 DFT 计算的计算成本! | ||
+ | |||
+ | 所需的投影偏移参数已针对硅和锗进行了优化,仅可与 PBE 密度函数和 SG15 赝势一起使用。这些作为单独的基组实现: | ||
+ | |||
+ | <code python> | ||
+ | BasisGGASG15.Silicon_LowProjectorShift | ||
+ | BasisGGASG15.Silicon_MediumProjectorShift | ||
+ | BasisGGASG15.Silicon_HighProjectorShift | ||
+ | BasisGGASG15.Silicon_UltraProjectorShift | ||
+ | |||
+ | BasisGGASG15.Germanium_MediumProjectorShift | ||
+ | BasisGGASG15.Germanium_HighProjectorShift | ||
+ | BasisGGASG15.Germanium_UltraProjectorShift | ||
+ | </ | ||
+ | |||
+ | 对于每一种元素,同样的优化投影偏移设置都应用在所有的 SG15 基组。脚本 [[https:// | ||
+ | |||
+ | <code python> | ||
+ | basis_sets = [ | ||
+ | BasisGGASG15.Silicon_MediumProjectorShift, | ||
+ | BasisGGASG15.Germanium_HighProjectorShift , # Ge PPS-PBE SG15-High | ||
+ | ] | ||
+ | for basis_set, | ||
+ | print(element) | ||
+ | projector_shift = basis_set.projectorShift() | ||
+ | print(" | ||
+ | print(" | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | 运行后会产生如下所示的输出。Si 的 '' | ||
+ | |||
+ | <code python> | ||
+ | Si | ||
+ | s-shift: +21.330 eV | ||
+ | p-shift: -1.430 eV | ||
+ | d-shift: +0.000 eV | ||
+ | Ge | ||
+ | s-shift: +13.790 eV | ||
+ | p-shift: +0.220 eV | ||
+ | d-shift: -2.030 eV | ||
+ | </ | ||
==== Si、SiGe、Ge 的带隙和晶格常数 ==== | ==== Si、SiGe、Ge 的带隙和晶格常数 ==== | ||
+ | |||
+ | |||
+ | |||
+ | 如下所示,在 {{: | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | DFT-PPS 法非常方便的一点是,它可以像普通 GGA 计算一样进行几何优化(力和应力最小化)–实际上,通常选择 DFT-PPS 参数提供高度精确半导体晶格常数的同时还能得到准确的带隙。 | ||
+ | |||
+ | 接下来,您将研究块体 Si 和 Ge 和一个简单的 50/50 SiGe 合金。这三个块体构型在脚本 [[https:// | ||
+ | |||
+ | 最后一个脚本如下所示。请注意该特定脚本中从第 2 到 12 行,从外部脚本导入了块体构型,并在这些构型和基组上建立了 Python 循环: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | <code python> | ||
+ | 1 # -*- coding: utf-8 -*- | ||
+ | 2 from bulks import si, ge, sige | ||
+ | 3 | ||
+ | 4 | ||
+ | 5 | ||
+ | 6 | ||
+ | 7 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 | ||
+ | 11 for bulk_configuration, | ||
+ | 12 | ||
+ | 13 | ||
+ | 14 # ------------------------------------------------------------- | ||
+ | 15 # Calculator | ||
+ | 16 # ------------------------------------------------------------- | ||
+ | 17 | ||
+ | 18 na=9, | ||
+ | 19 nb=9, | ||
+ | 20 nc=9, | ||
+ | 21 ) | ||
+ | 22 | ||
+ | 23 | ||
+ | 24 | ||
+ | 25 ) | ||
+ | 26 | ||
+ | 27 | ||
+ | 28 | ||
+ | 29 | ||
+ | 30 ) | ||
+ | 31 | ||
+ | 32 | ||
+ | 33 | ||
+ | 34 | ||
+ | 35 | ||
+ | 36 | ||
+ | 37 # ------------------------------------------------------------- | ||
+ | 38 # Optimize Geometry | ||
+ | 39 # ------------------------------------------------------------- | ||
+ | 40 | ||
+ | 41 | ||
+ | 42 | ||
+ | 43 | ||
+ | 44 | ||
+ | 45 | ||
+ | 46 | ||
+ | 47 | ||
+ | 48 | ||
+ | 49 | ||
+ | 50 | ||
+ | 51 | ||
+ | 52 | ||
+ | 53 ) | ||
+ | 54 | ||
+ | 55 | ||
+ | 56 | ||
+ | 57 # ------------------------------------------------------------- | ||
+ | 58 # Bandstructure | ||
+ | 59 # ------------------------------------------------------------- | ||
+ | 60 | ||
+ | 61 | ||
+ | 62 | ||
+ | 63 | ||
+ | 64 ) | ||
+ | 65 | ||
+ | </ | ||
+ | |||
+ | |||
+ | 下载这 3 个脚本([[https:// | ||
+ | |||
+ | <code python> | ||
+ | $ atkpython pps.py > pps.log | ||
+ | $ atkpython pbe.py > pbe.log | ||
+ | </ | ||
+ | |||
+ | 每个作业执行大概需要 5 分钟。 | ||
+ | |||
+ | 然后使用脚本 [[https:// | ||
+ | |||
+ | Si 和 Ge 的 DFT-PPS 带隙与实验比较一致(黑色圆点;来自参考文献 <color # | ||
+ | |||
+ | 与未经校正的 PBE 相比,纯 Si 和 Ge 的 DFT-PPS 晶格常数也更接近实验(灰色方块)。 | ||
+ | |||
+ | {{ : | ||
+ | |||
==== 手动设置 DFT-PPS 参数 ==== | ==== 手动设置 DFT-PPS 参数 ==== | ||
+ | |||
+ | 当然,也可以手动设置 DFT-PPS 投影偏移参数,而不使用默认值。对于没有默认 DFT-PPS 参数(仅 Si 和 Ge 当前具有默认值)的元素,这将在 DFT-PPS 计算中特别有用。 | ||
+ | |||
+ | '' | ||
+ | |||
+ | <code python> | ||
+ | # | ||
+ | # Basis Set | ||
+ | # | ||
+ | # Basis set for Silicon | ||
+ | SiliconBasis_projector_shift = PseudoPotentialProjectorShift( | ||
+ | s_orbital_shift=21.33*eV, | ||
+ | p_orbital_shift=-1.43*eV, | ||
+ | d_orbital_shift=0.0*eV, | ||
+ | f_orbital_shift=0.0*eV, | ||
+ | g_orbital_shift=0.0*eV | ||
+ | ) | ||
+ | SiliconBasis = BasisGGASG15.Silicon_Medium(projector_shift=SiliconBasis_projector_shift) | ||
+ | |||
+ | # Basis set for Germanium | ||
+ | GermaniumBasis_projector_shift = PseudoPotentialProjectorShift( | ||
+ | s_orbital_shift=13.79*eV, | ||
+ | p_orbital_shift=0.22*eV, | ||
+ | d_orbital_shift=-2.03*eV, | ||
+ | f_orbital_shift=0.0*eV, | ||
+ | g_orbital_shift=0.0*eV | ||
+ | ) | ||
+ | GermaniumBasis = BasisGGASG15.Germanium_High(projector_shift=GermaniumBasis_projector_shift) | ||
+ | |||
+ | # Total basis set | ||
+ | basis_set = [ | ||
+ | SiliconBasis, | ||
+ | GermaniumBasis, | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | |||
+ | <WRAP center alert 100%> | ||
+ | === 警告 === | ||
+ | 选择适当的 DFT-PPS 参数可能是一件非常微妙的事情,并且通常需要数值优化程序。[[https:// | ||
+ | |||
+ | QuantumWise 不支持优化 DFT-PPS 参数。如果有默认参数的,我们通常建议用户使用默认值。 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
- | ===== 参数 ===== | ||
+ | ===== 参考 ===== | ||
+ | * 英文原文:https:// | ||
+ | * [FMT08] Luiz G. Ferreira, Marcelo Marques, and Lara K. Teles. Approximation to density functional theory for the calculation of band gaps of semiconductors. //Phys. Rev. B//, 78:125116, Sep 2008. [[http:// | ||
+ | * [FMT11] (1, 2) Luiz G. Ferreira, Marcelo Marques, and Lara K. Teles. Slater half-occupation technique revisited: the LDA-1/2 and GGA-1/2 approaches for atomic ionization energies and band gaps in semiconductors. //AIP Adv//., 1(3): | ||
+ | * [LRS96] (1, 2, 3) M. Levinshtein, | ||
+ | * [WZ95] L.-W. Wang and A. Zunger. Local-density-derived semiempirical pseudopotentials. //Phys. Rev. B//, 51: |