用户工具

站点工具


atk:硅的声子能带

硅的声子能带结构

介绍

在本教程中您将学习如何进行声子能带计算。尤其是学会如何设置计算,了解哪些参数是重要的。您也将学会如何通过并行方法优化这种类型的计算

  • 您将首先利用 ATK-DFT 结合 LDA 交换关联势进行计算。您会在计算声子时大体浏览一下所有使用的相关的参数。
  • 在最后,您将使用能在 ATK-Classical 引擎中获得的经典势(进行声子计算)并与 DFT 的计算结果进行比较。

提示

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

晶格优化

第一步也是非常重要的一步就是对您的体系进行应力优化。这可以去除声子谱中的虚频,虚频通常源于未充分弛豫的结构。 1.进入 Builder 并从 Database 导入 silicon(alpha) 结构 2.将结构发送到 Script Generator 中并添加一个 New Calculator.

  • 选择 ATK-DFT 和 LDA(默认选项)
  • 使用 13×13×13 K-point 取样
  • Iteration control 参数中,选取阻尼系数为 0.5.该值减少了这个特定体系自洽态收敛所需要的迭代次数。
  • 使用 SingleZetaPolarizedbasis 基组以加快计算进度
  • 添加 Optimization ‣ OptimizeGeometry 模块,并按照下图所示修改参数来实现力和应力的最小化。
  • 将输出文件名改为 Silicon_opt.nc,将脚本发送到 Job Manager 并运行。

该计算只需要花费几十秒钟。然后,您将在 LabFloor 中的项 id gID001 中找到优化的 BulkConfiguration。选择该项,点击 Text representation 得到优化参数,5.4787

设置声子能带结构计算

将优化好的 BulkConfiguration 拖拽到 Scritper. 1、 双击 New Calculator 并将 k-point 取样改为 1x1x1

  • 该 k-point 取样将被用来计算动力学矩阵,动力学矩阵的计算需要结合重复的结构(参见下面)。您也可以参考 K-points used for ATK-DFT and ATK-SE

2、添加声子能带分析项

  • 选择每段 400 点以及 G, X, K, G,L 布里渊区路径。
  • 将输出文件改名为 SiliconPhBS.nc
  • 为了看到动力学矩阵参数(下一步),将 script detail 设置成 “show defaults” 并将脚本发送到 Editor:

3、声子由体系的动力学矩阵计算。动力学矩阵是能量的二阶导数,相当于力的一阶导数。力的一阶导数是利用有限差分法计算的,体系每次沿着一个自由度进行位移,该方法也叫做冻结声子计算法。

  • 动力学矩阵的计算细节由 DynamicalMatrixParameters 项控制,给定的该项可以作为计算的一个选项。为了在动力学矩阵项中考虑临近单胞,体系被 repeat 参数控制进行重复。默认值是 “automatic”;QuantumATK 将试图确定相应的重复数,重复数将在输出文件中被打印。
  • 如果您用 Editor 检查脚本时您可以看到DynamicalMatrixParameters,该项会显示您前一个步骤所有参数的默认值
  • 在您的脚本中找到 dynamical_matrix_parameters 部分,默认参数如下:
dynamical_matrix_parameters = DynamicalMatrixParameters(
    atomic_displacement=0.01*Angstrom,
    repeats=(5,5,5),
    acoustic_sum_rule=True,
    symmetrize=True,
    )

4、进行一些修改

  • acoustic_sum_rule: 为了激活声学支求和规则,将该选项改为 “True”
  • repeats:使用该参数您可以在计算动力学矩阵时选择体系沿着 x,y,z 方向的重复次数。
  • 默认值是 Automatic 且这适用于大部分体系。然而,您应该留意这些重复的结构,因为如果您使用的是 DFT,那么计算会变得非常繁重。
  • 在本教程中,您将使用 DFT 计算重复数为 3×3×3,5×5×5,7×7×7 的声子能带结构。

对于 5×5×5 的重复,您的 dynamical_matrix_parameters 看起来应如下所示:

dynamical_matrix_parameters = DynamicalMatrixParameters(
    atomic_displacement=0.01*Angstrom,
    repeats=(5,5,5),
    acoustic_sum_rule=True,
    symmetrize=True,
    )

运行声子能带计算

保存脚本后,现在就可以运行您的 DFT 声子能带计算。 然而,有一些细节是在您运行计算之前要考虑的: 在 QuantumATK 中,动力学矩阵的位移计算是并行化的。位移的数目是原子数目的三倍(沿着x,y,z每一个方向算一次位移)。对于每次位移,都需要沿着+和-两个方向,进而有两次计算。这意味着可以通过使用和位移数目一样的多的MPI进程以获得最优计算性能。

对于这个体系,有 6 个不同的位移需要分别计算。

体系尺寸 在该教程中,被运行的三个体系的重复次数为 3×3×3,5×5×5,7×7×7,分别有 54,250,686 个硅原子组成。除了运行时间(参见下面)外,您也应该考虑内存总数的要求。一个 686 个硅原子的块体结构,在使用 LDA 泛函,SZP 基组运行时将需要 3GB 的内存。每个位移,也就是每个 MPI 进程,都要使用相同大小的内存。这意味着在这种情况下(6 个 MPI 进程),如果您要在单机上运行的话您需要至少 18GB 的内存!

消耗时间 下表显示了使用上述参数计算声子能带所需要的总时间。并行计算是在 Xeon e5472 3.0GHz 机器中使用 6 个 MPI 进程进行的。

Repetition 3x3x3 5x5x5 7x7x7
Total time 6m21.44s 41m16.41s 3h06m53.15s

分析结果

当作业完成后您将在 LabFloor 中找到 PhononBandStructure 项。将其选中并使用 Bandstructure Analyzer 工具显示能带。 下图展现了被定义成 3×3×3, 5×5×5, 7×7×7 的三个体系的结果 您会立刻注意到重复次数 3×3×3 太小了甚至不能定性地给出可靠的结果,而中间尺寸的体系已经是一个相当好的近似。然而,您也注意到 5×5×5 和7×7×7 两个体系在 Γ-point 附近的声子模式依然存在一个微小的差别。 动力学矩阵现在和 BulkConfiguration 储存在一起。这意味着您可以读取动力学矩阵并可以在几十秒钟之内进行另一个 PhononBandStructure 计算(例如沿着不同的布里渊路径)或者声子态密度计算。 下表中展示了声子能带和 DOS,您可以把这些结果和 Ref. [1] 进行比较。

ATK-Classical

2014版 和更新的版本中,大量的经典势被囊括在 ATK-Classical 引擎中。这些势都很适合研究材料的振动性质,就像本教程中的硅的声子能带计算。

将硅块体结构发送到 Scripter并如之前解释的那样,设置应力优化和硅的声子能带结构计算,二者在同一脚本中。 在普通的笔记本中计算将只花费几十秒的时间。 New Calculator 中,选择 ATK-Classical 引擎并使用对硅来说能够获得的最精确的势,像 Tersoff 或者 Stillinger-Weber 势。 每个提供的势都有一个文字参考,您应该检查确定该势是否适用于您的体系或者您所感兴趣的性质。 ATK-DFT 例子那样设置 OptimizeGeometry 模块和PhononBandstructure 项,运行计算。 使用 Tersoff_si_2005potential【2】所计算的硅的声子能带结构在下图中被展示。

参考文献

  • [1] Giannozzi et al., “Ab initio calculation of phonon dispersions in semiconductors”, Phys. Rev. B 43, 7231 (1991).
  • [2] Stillinger and T. A. Weber, “Computer simulation of local order in condensed phases of silicon”, Phys. Rev. B, 31, 5262 (1985).
  • 本文翻译:王子群
atk/硅的声子能带.txt · 最后更改: 2018/03/20 21:55 由 liu.jun

© 2014-2020 费米科技(京ICP备14023855号