这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:硅的声子能带 [2016/09/19 10:04] – [分析结果] nie.han | atk:硅的声子能带 [2018/03/20 21:55] (当前版本) – liu.jun | ||
---|---|---|---|
行 2: | 行 2: | ||
===== 介绍 ===== | ===== 介绍 ===== | ||
- | 在本教程中您将学习如何进行一个简单的声子能带计算。尤其是学会如何设置计算,了解哪些参数是重要的。您也将学会如何通过并行方法优化这种类型的计算 | + | 在本教程中您将学习如何进行声子能带计算。尤其是学会如何设置计算,了解哪些参数是重要的。您也将学会如何通过并行方法优化这种类型的计算 |
- | * 您将首先利用**ATK-DFT**结合LDA交换关联势进行计算。您会在计算声子时大体浏览一下所有使用的相关的参数。 | + | * 您将首先利用 **ATK-DFT** 结合 LDA 交换关联势进行计算。您会在计算声子时大体浏览一下所有使用的相关的参数。 |
- | * 在最后,您将使用能在**ATK-Classical**引擎中获得的经典势(进行声子计算)并与DFT的计算结果进行比较。 | + | * 在最后,您将使用能在 **ATK-Classical** 引擎中获得的经典势(进行声子计算)并与 DFT 的计算结果进行比较。 |
+ | <WRAP center info 100%> | ||
+ | === 提示 === | ||
+ | **本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。** | ||
+ | </ | ||
===== 晶格优化 ===== | ===== 晶格优化 ===== | ||
第一步也是非常重要的一步就是对您的体系进行应力优化。这可以去除声子谱中的虚频,虚频通常源于未充分弛豫的结构。 | 第一步也是非常重要的一步就是对您的体系进行应力优化。这可以去除声子谱中的虚频,虚频通常源于未充分弛豫的结构。 | ||
- | 1.进入 **Builder**{{: | + | 1.进入 **Builder**{{: |
- | 2.将结构发送到**Script Generator**{{: | + | 2.将结构发送到 **Script Generator**{{: |
- | * 选择ATK-DFT和LDA(默认选项) | + | * 选择 ATK-DFT 和 LDA(默认选项) |
- | * 使用13×13×13 K-point取样 | + | * 使用 13×13×13 K-point 取样 |
- | * 在// | + | * 在 //Iteration control// 参数中,选取阻尼系数为 0.5.该值减少了这个特定体系自洽态收敛所需要的迭代次数。 |
- | * 使用// | + | * 使用 // |
* 添加 Optimization ‣ OptimizeGeometry 模块,并按照下图所示修改参数来实现力和应力的最小化。 | * 添加 Optimization ‣ OptimizeGeometry 模块,并按照下图所示修改参数来实现力和应力的最小化。 | ||
- | * 将输出文件名改为 Silicon_opt.nc,将脚本发送到 **Job Manager**{{: | + | * 将输出文件名改为 Silicon_opt.nc,将脚本发送到 **Job Manager**{{: |
{{ : | {{ : | ||
- | 该计算只需要花费几十秒钟。然后,您将在 **LabFloor** 中的项id gID001中找到优化的// | + | 该计算只需要花费几十秒钟。然后,您将在 **LabFloor** 中的项 id gID001 中找到优化的 // |
{{ : | {{ : | ||
===== 设置声子能带结构计算 ===== | ===== 设置声子能带结构计算 ===== | ||
- | 将优化好的// | + | 将优化好的 // |
- | 1、**双击New Calculator并将k-point取样改为1x1x1** | + | 1、** 双击 New Calculator 并将 k-point 取样改为 1x1x1** |
- | * 该k-point取样将被用来计算动力学矩阵,动力学矩阵的计算需要结合重复的结构(参见下面)。您也可以参考 [[http:// | + | * 该 k-point 取样将被用来计算动力学矩阵,动力学矩阵的计算需要结合重复的结构(参见下面)。您也可以参考 [[http:// |
2、**添加声子能带分析项** | 2、**添加声子能带分析项** | ||
- | * 选择每段400点以及G, | + | * 选择每段 400 点以及 G, X, K, G,L 布里渊区路径。 |
- | * 将输出文件改名为SiliconPhBS.nc | + | * 将输出文件改名为 SiliconPhBS.nc |
- | * 为了看到动力学矩阵参数(下一步),将script detail设置成“show defaults”并将脚本发送到**Editor**{{: | + | * 为了看到动力学矩阵参数(下一步),将 script detail 设置成 “show defaults” 并将脚本发送到 **Editor**{{: |
{{ : | {{ : | ||
3、**声子由体系的动力学矩阵计算。**动力学矩阵是能量的二阶导数,相当于力的一阶导数。力的一阶导数是利用有限差分法计算的,体系每次沿着一个自由度进行位移,该方法也叫做冻结声子计算法。 | 3、**声子由体系的动力学矩阵计算。**动力学矩阵是能量的二阶导数,相当于力的一阶导数。力的一阶导数是利用有限差分法计算的,体系每次沿着一个自由度进行位移,该方法也叫做冻结声子计算法。 | ||
- | * 普通列表项目动力学矩阵的计算细节由// | + | * 动力学矩阵的计算细节由 // |
- | * 普通列表项目如果您用**Editor**{{: | + | * 如果您用 **Editor**{{: |
- | * 普通列表项目在您的脚本中找到// | + | * 在您的脚本中找到 // |
- | < | + | |
+ | < | ||
dynamical_matrix_parameters = DynamicalMatrixParameters( | dynamical_matrix_parameters = DynamicalMatrixParameters( | ||
atomic_displacement=0.01*Angstrom, | atomic_displacement=0.01*Angstrom, | ||
行 49: | 行 53: | ||
4、进行一些修改 | 4、进行一些修改 | ||
- | * // | + | * // |
- | * 普通列表项目// | + | * // |
- | * 普通列表项目默认值是// | + | * 默认值是 // |
- | * 普通列表项目在本教程中,您将使用DFT计算重复数为3×3×3, | + | * 在本教程中,您将使用 DFT 计算重复数为 3×3×3, |
- | 对于5×5×5的重复,您的// | + | 对于 5×5×5 的重复,您的 // |
+ | <code python> | ||
+ | dynamical_matrix_parameters = DynamicalMatrixParameters( | ||
+ | atomic_displacement=0.01*Angstrom, | ||
+ | repeats=(5, | ||
+ | acoustic_sum_rule=True, | ||
+ | symmetrize=True, | ||
+ | ) | ||
+ | </ | ||
===== 运行声子能带计算 ===== | ===== 运行声子能带计算 ===== | ||
- | 保存脚本后,现在就可以运行您的DFT声子能带计算。 | + | 保存脚本后,现在就可以运行您的 DFT 声子能带计算。 |
然而,有一些细节是在您运行计算之前要考虑的: | 然而,有一些细节是在您运行计算之前要考虑的: | ||
- | 在**ATK**中,动力学矩阵的位移计算是并行化的。位移的数目是原子数目的三倍(沿着x,y,z每一个方向算一次位移)。对于每次位移,都需要沿着+和-两个方向,进而有两次计算。这意味着可以通过使用和位移数目一样的多的MPI进程以获得最优计算性能。 | + | 在 **QuantumATK** 中,动力学矩阵的位移计算是并行化的。位移的数目是原子数目的三倍(沿着x,y,z每一个方向算一次位移)。对于每次位移,都需要沿着+和-两个方向,进而有两次计算。这意味着可以通过使用和位移数目一样的多的MPI进程以获得最优计算性能。 |
- | 对于这个体系,有6个不同的位移需要分别计算。 | + | 对于这个体系,有 6 个不同的位移需要分别计算。 |
**体系尺寸** | **体系尺寸** | ||
- | 在该教程中,被运行的三个体系的重复次数为3×3×3,5×5×5,7×7×7,分别有54, | + | 在该教程中,被运行的三个体系的重复次数为 3×3×3,5×5×5,7×7×7,分别有 54, |
**消耗时间** | **消耗时间** | ||
- | 下表显示了使用上述参数计算声子能带所需要的总时间。并行计算是在Xeon e5472 3.0GHz 机器中使用6个MPI进程进行的。 | + | 下表显示了使用上述参数计算声子能带所需要的总时间。并行计算是在 Xeon e5472 3.0GHz 机器中使用 6 个 MPI 进程进行的。 |
- | {{ : | + | |
+ | ^Repetition ^ 3x3x3 ^ 5x5x5 ^ 7x7x7 ^ | ||
+ | | Total time | 6m21.44s | 41m16.41s | 3h06m53.15s | | ||
===== 分析结果 ===== | ===== 分析结果 ===== | ||
- | 当工作完成后您将在**LabFloor**中找到// | + | 当作业完成后您将在 **LabFloor** 中找到 // |
- | {{ : | + | {{ : |
- | 下图展现了被定义成3×3×3, | + | 下图展现了被定义成 3×3×3, 5×5×5, 7×7×7 的三个体系的结果 |
- | {{ : | + | {{ : |
- | 您会立刻注意到重复次数3×3×3太小了甚至不能定性地给出可靠的结果,而中间尺寸的体系已经是一个相当好的近似。然而,您也注意到5×5×5和7×7×7两个体系在 Γ-point 附近的声子模式依然存在一个微小的差别。 | + | 您会立刻注意到重复次数 3×3×3 太小了甚至不能定性地给出可靠的结果,而中间尺寸的体系已经是一个相当好的近似。然而,您也注意到 5×5×5 和7×7×7 两个体系在 Γ-point 附近的声子模式依然存在一个微小的差别。 |
- | 动力学矩阵现在和// | + | 动力学矩阵现在和 // |
- | {{ : | + | {{ : |
- | 下表中展示了声子能带和DOS,您可以把这些结果和 Ref. [1] 进行比较。 | + | 下表中展示了声子能带和 DOS,您可以把这些结果和 Ref. [1] 进行比较。 |
{{ : | {{ : | ||
{{ : | {{ : | ||
行 86: | 行 99: | ||
===== ATK-Classical ===== | ===== ATK-Classical ===== | ||
+ | 在 **2014版** 和更新的版本中,大量的经典势被囊括在 **ATK-Classical** 引擎中。这些势都很适合研究材料的振动性质,就像本教程中的硅的声子能带计算。 | ||
+ | |||
+ | 将硅块体结构发送到 **Scripter**{{: | ||
+ | 在普通的笔记本中计算将只花费几十秒的时间。 | ||
+ | {{ : | ||
+ | 在 //New Calculator// | ||
+ | 每个提供的势都有一个文字参考,您应该检查确定该势是否适用于您的体系或者您所感兴趣的性质。 | ||
+ | {{ : | ||
+ | 像 **ATK-DFT** 例子那样设置 // | ||
+ | 使用 Tersoff_si_2005potential【2】所计算的硅的声子能带结构在下图中被展示。 | ||
+ | {{ : | ||
+ | |||
+ | ===== 参考文献 ===== | ||
+ | * [1] Giannozzi et al., “Ab initio calculation of phonon dispersions in semiconductors”, | ||
+ | * [2] Stillinger and T. A. Weber, “Computer simulation of local order in condensed phases of silicon”, Phys. Rev. B, 31, 5262 (1985). | ||
+ | * 原文:http:// | ||
+ | * 本文翻译:王子群 | ||