版本:P-2019.03
在本教程中,您将学习如何使用 DynamicalMatrix study object 获得动力学矩阵,计算声子能带结构和态密度。特别地,您将以块体硅为例,学习如何设置计算动力学矩阵的力场引擎。
动力学矩阵是晶格动力学的一个中心量:对于系统中的每个原子,它给出了远离平衡的其他原子位移的力响应,即力关于位移的一阶导数。从动力学矩阵的特征值计算声子频率(量化的晶格振动)。在 QuantumATK 中,使用有限差分格式计算动力学矩阵,其中每个对称的唯一原子沿着所有笛卡尔方向移位,也称为冻结声子计算。
对于具有小单胞的晶体,通常需要使用单胞的周期性重复超胞精确地说明动力学矩阵中的长程相互作用,因此获得可靠的声子能带结构和 DOS。重要的是,DynamicalMatrix study object 可以自动处理:默认情况下,设置沿每个晶格矢量方向的重复次数,使每个原子与其初始的单胞至少有 4 个共价键半径。这通常包括距离远至 4 个键的原子,适用于大多数系统。您可以在 DynamicalMatrix 手册条目的注释中查看更多详细信息。
ATK-ForceField 计算器引擎包括大量经典势,非常适合研究材料的振动特性,例如声子能带结构和硅的声子态密度。
在 Builder,从 built-in database 导入 Silicon (alpha) 结构。然后将其发送到
Script Generator,并添加以下脚本模块:
在 ForceFieldCalculator 的设置中,为硅选择一个合适的势,如 Tersoff 势 [GdGPB91] 或 Stillinger–Weber 势 [SW85]。每个势都有对应的参考文献,您应该检查确定这些势是否适合您的系统和您感兴趣的性质。
在 OptimizeGeometry 的设置中,取消选项 Fix Lattice Vectors 弛豫晶格常数,并将 Force tolerance 和 Stress error tolerance 分别降低至 0.001 eV/Å 和 0.0001 eV/Å3。
在 DynamicalMatrix 的设置中,保持默认设置,将自动创建一个适当大小的超胞,并启用声学求和规则。
在 PhononBandstructure 设置中,相较于参考文献 [GdGPB91],将点增加至 100,设置 Brillouin zone route 为 G, K, X, G, L, X, W, L。
更改输出文件名称为 Silicon.hdf5
,发送脚本到 Job Manager 并运行。在普通的台式电脑上,计算只需几秒钟。
采用 PhononBandstructure Analyzer 和 DOS Analyzer 插件,查看您的 LabFloor 并将声子能带结构和声子态密度可视化。下图为使用 Tersoff_Si_2005 势计算得到的硅声子能带结构。
您还可以在日志文件中查看自动选择的超胞大小,如下所示:
+----------------------------------------------------------+ | Bulk: Cartesian (Angstrom) / fractional | +----------------------------------------------------------+ 2 Bulk Si 0.000000e+00 0.000000e+00 0.000000e+00 0.00000 0.00000 0.00000 Si 1.357650e+00 1.357650e+00 1.357650e+00 0.25000 0.25000 0.25000 +------------------------------------------------------------------------------+ | Automatically detected repetitions = [7 7 7] | +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ | Dynamical Matrix Study | +------------------------------------------------------------------------------+ | 2 task(s) will be executed. | | | | * Bundled force calculation | | Displacements: 0-10 | | * Generate dynamical matrix from displaced forces | +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ | Executing task 1 / 2: | | Bundled force calculation | | Displacements: 0-10 | | Log to: stdout | +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ | Executing task 2 / 2: | | Generate dynamical matrix from displaced forces | | Log to: stdout | +------------------------------------------------------------------------------+