这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:添加_组合_修改经典势函数 [2019/04/29 09:27] – [设置系统] xie.congwei | atk:添加_组合_修改经典势函数 [2019/04/29 10:26] (当前版本) – [设置系统] xie.congwei | ||
---|---|---|---|
行 33: | 行 33: | ||
将脚本发送到 **Editor**。 | 将脚本发送到 **Editor**。 | ||
==== 设置势函数 ==== | ==== 设置势函数 ==== | ||
+ | |||
+ | 在 **Editor** 中,找到定义势的模块(即 **BulkConfiguration** 之后和 **OptimizeGeometry** 模块之前的所有部分)并删除它。 | ||
+ | |||
+ | 为定义一个新的 TremoloX 势,您首先需要初始化一个新的 [[https:// | ||
+ | |||
+ | <code python> | ||
+ | potentialSet = TremoloXPotentialSet(' | ||
+ | </ | ||
+ | |||
+ | 圆括号中的字符串定义了势的名称,但对其功能没有任何影响。 | ||
+ | |||
+ | 目前为止,势集还是空的,因此您需要添加所有必需的组件。您应该首先添加 [[https:// | ||
+ | |||
+ | <code python> | ||
+ | potentialSet.addParticleType(ParticleType(symbol=' | ||
+ | potentialSet.addParticleType(ParticleType(symbol=' | ||
+ | </ | ||
+ | |||
+ | 粒子电荷取自文献< | ||
+ | |||
+ | 1.Tosi-Fumi(通常也称为 Buckginham)型势(即指数、排斥项贡献和有吸引力的范德瓦尔斯部分的组合)。 | ||
+ | 2.静电库仑相互作用力模拟原子的粒子电离。 | ||
+ | |||
+ | 第一部分可以使用 [[https:// | ||
+ | |||
+ | $$V(r) = A e^{B(\sigma -r)} - \frac{C}{r^6} - \frac{D}{r^8} \, .$$ | ||
+ | |||
+ | 如果将上述公式与参考文献中给出的等式进行比较< | ||
+ | |||
+ | <code python> | ||
+ | potentialSet.addPotential(TosiFumiPotential(particleType1=' | ||
+ | particleType2=' | ||
+ | A=0.811696*kiloJoulePerMol, | ||
+ | B=5.154639*Angstrom**-1, | ||
+ | sigma=2.8171*Angstrom, | ||
+ | C=1215.0*kiloJoulePerMol*Angstrom**6, | ||
+ | D=0.0*eV*Angstrom**8, | ||
+ | r_i=6.0*Angstrom, | ||
+ | r_cut=7.5*Angstrom)) | ||
+ | potentialSet.addPotential(TosiFumiPotential(particleType1=' | ||
+ | particleType2=' | ||
+ | A=0.979056*kiloJoulePerMol, | ||
+ | B=4.27350*Angstrom**-1, | ||
+ | sigma=3.2678*Angstrom, | ||
+ | C=2916.0*kiloJoulePerMol*Angstrom**6, | ||
+ | D=0.0*eV*Angstrom**8, | ||
+ | r_i=6.0*Angstrom, | ||
+ | r_cut=7.5*Angstrom)) | ||
+ | potentialSet.addPotential(TosiFumiPotential(particleType1=' | ||
+ | particleType2=' | ||
+ | A=0.644336*kiloJoulePerMol, | ||
+ | B=6.49351*Angstrom**-1, | ||
+ | sigma=2.3664*Angstrom, | ||
+ | C=506.25*kiloJoulePerMol*Angstrom**6, | ||
+ | D=0.0*eV*Angstrom**8, | ||
+ | r_i=6.0*Angstrom, | ||
+ | r_cut=7.5*Angstrom)) | ||
+ | </ | ||
+ | |||
+ | 每个势函数的前两个参数决定了势的哪两种粒子类型相互作用。附加参数 $r_{i}$ 和 $r_{cut}$ 确定范围和截断行为。在本例中,对于小于 6 Å 的距离,势函数遵循原始形式,而对于较大距离,如高达 7.5 Å 时会调用平滑函数。在较大距离处,假设这些相互作用为零。 | ||
+ | |||
+ | 通过添加合适的 Coulomb solver 来考虑静电相互作用。所有的 Coulomb solver 都使用您为粒子类型定义的粒子电荷。**ATK-ForceField** 中的默认算法是 [[https:// | ||
+ | |||
+ | <code python> | ||
+ | potentialSet.setCoulombSolver(CoulombSPME(r_cut=9.0*Angstrom)) | ||
+ | </ | ||
+ | |||
+ | 最后,您必须初始化实际的 // | ||
+ | |||
+ | <code python> | ||
+ | calculator = TremoloXCalculator(parameters=potentialSet) | ||
+ | bulk_configuration.setCalculator(calculator) | ||
+ | </ | ||
+ | |||
+ | 脚本的其余部分可以保留原样。您可以在文件 [[https:// | ||
+ | |||
+ | 现在,您可以将脚本发送到 **JobManager** 并启动计算。结果应与文献< | ||
===== 无定形氧化物的势函数 ===== | ===== 无定形氧化物的势函数 ===== | ||
+ | |||
+ | 在本例中,引入的另一种势被设计用于模拟非晶材料,如钛、硅、铪或氧化钽,以及它们的混合氧化物< | ||
+ | |||
+ | |||
+ | |||
+ | <WRAP center important 100%> | ||
+ | === 注意 === | ||
+ | 从 **ATK-2015** 版本开始,这种势已经可以作为预定义势 // | ||
+ | </ | ||
+ | |||
+ | |||
+ | 为测试势,您可以使用前一个示例中的金红石构型。该势与 MA 势相似,如上所示,但它另外还包含了一个 [[https:// | ||
+ | |||
+ | $$V(r) = E_{ij} \left [ \left(1 - e^{-k_{ij}(r-r_0)} \right)^2 - 1 \right ]$$ | ||
+ | |||
+ | 实际上,文献< | ||
+ | |||
+ | 为了获得势,您需要一个取自 [[https:// | ||
+ | |||
+ | 在 Ti-O 相互作用的例子中展示了势的设置。通过从文献< | ||
+ | |||
+ | 从初始化一个新的 [[https:// | ||
+ | |||
+ | <code python> | ||
+ | potential_set = TremoloXPotentialSet(' | ||
+ | potential_set.addParticleType(ParticleType(symbol=' | ||
+ | potential_set.addParticleType(ParticleType(symbol=' | ||
+ | </ | ||
+ | |||
+ | 然后定义一个排除 Buckingham 项: | ||
+ | |||
+ | <code python> | ||
+ | potential_set.addPotential(BuckinghamPotential(particleType1=' | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 添加色散项。您将仅需要 Lennard-Jones 势中具有吸引力的部分,即 //A// 参数必须设置为零: | ||
+ | |||
+ | <code python> | ||
+ | potential_set.addPotential(LennardJonesMNPotential(particleType1=' | ||
+ | | ||
+ | | ||
+ | | ||
+ | m=12, | ||
+ | n=6, | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 添加 Morse 势: | ||
+ | |||
+ | <code python> | ||
+ | potential_set.addPotential(MorsePotential(particleType1=' | ||
+ | particleType2=' | ||
+ | E_0=0.3478*eV, | ||
+ | k=1.9*Angstrom**-1, | ||
+ | r_0=1.96*Angstrom, | ||
+ | r_i=6.5*Angstrom, | ||
+ | r_cut=7.0*Angstrom)) | ||
+ | </ | ||
+ | |||
+ | 最后,设置一个 Coulomb solver,如 [[https:// | ||
+ | |||
+ | <code python> | ||
+ | potential_set.setCoulombSolver(CoulombSPME(r_cut=9.0*Angstrom)) | ||
+ | calculator = TremoloXCalculator(parameters=potential_set) | ||
+ | </ | ||
+ | |||
+ | 在文献< | ||
+ | |||
===== Tersoff 和 Lennard-Jones 的组合势函数 ===== | ===== Tersoff 和 Lennard-Jones 的组合势函数 ===== | ||
+ | |||
+ | 在本节中,您将学习如何结合 Tersoff 势和 Lennard-Jones(LJ) 势模拟石墨晶胞中的单个锂原子。这种材料组合特别有趣,因为它提供了一个非常简单的锂离子电池中典型阳极的模型。Tersoff 势和 LJ 势的组合通常用于多组分材料,其中各个组分间相互作用较弱,主要是排斥力和范德华力。在本例的石墨中,组分中的强键合相互作用可以由 Tersoff 势或对于该材料的另一种合适的势描述。 | ||
+ | |||
+ | 在本例中,您将采用文献< | ||
==== 设置系统 ==== | ==== 设置系统 ==== | ||
+ | |||
+ | 为设置测试系统,打开 **Builder**,点击 Add {{: | ||
+ | |||
+ | 如下图所示选中一个包含 3 个原子(一个在第二层,两个在第三层)的三角形。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 单击工具栏(如图)中的 {{: | ||
+ | |||
+ | 使用 {{: | ||
+ | |||
+ | 首先,找到元素列表。将列表中最后一个元素的名称从 '' | ||
+ | |||
+ | 如果您现在看一下计算器的部分,将会发现 Tersoff 势的详细定义。这是 //Show defaults// 选项的缘故。通过 '' | ||
+ | |||
+ | <code python> | ||
+ | potentialSet.addParticleType(ParticleType(symbol=' | ||
+ | mass=12.0107*atomic_mass_unit, | ||
+ | charge=None, | ||
+ | # Sigma and epsilon from Ref [3]. | ||
+ | sigma=3.3611*Ang, | ||
+ | epsilon=0.004207*eV)) | ||
+ | potentialSet.addParticleType(ParticleType(symbol=' | ||
+ | mass=6.941*atomic_mass_unit, | ||
+ | charge=None, | ||
+ | # Sigma and epsilon from Ref [3]. | ||
+ | sigma=0.826*Ang, | ||
+ | epsilon=0.271115*eV)) | ||
+ | </ | ||
+ | |||
+ | 对于碳,已添加 LJ 参数 $\epsilon$ 和 $sigma$ 并将其设置为文献< | ||
+ | |||
+ | 仅通过指定粒子参数,LJ 势不会变得活跃。您还必须添加相应的势函数。为实现此目的,添加以下两行: | ||
+ | |||
+ | <code python> | ||
+ | potentialSet.addPotential(LennardJonesPotential(particleType1=' | ||
+ | particleType2=' | ||
+ | r_cut=9.0*Ang)) | ||
+ | potentialSet.addPotential(LennardJonesPotential(particleType1=' | ||
+ | particleType2=' | ||
+ | r_cut=9.0*Ang)) | ||
+ | </ | ||
+ | |||
+ | 这将在碳和锂之间以及锂和锂之间添加 LJ 势。注意,碳原子之间没有 LJ 势,因为这些相互作用由 Tersoff 势充分定义(LJ 只是一个微小的校正)。 | ||
+ | |||
+ | 在 **ATK-ForceField** 里的 Lennard-Jones 势的定义为 | ||
+ | |||
+ | $$V_{ij}(r) = 4\epsilon_{ij} \left [ \left(\frac{\sigma_{ij}}{r} \right)^{12} - \left(\frac{\sigma_{ij}}{r} \right)^{6} \right]$$ | ||
+ | |||
+ | 利用以下组合规则获得不同元素间的 $\sigma_{ij}$ 和 $\epsilon_{ij}$ (参见 [[https:// | ||
+ | |||
+ | 您应该始终检查为所选 LJ 参数推荐的组合规则是否与此定义一致。如果没有,您应该使用更为通用的 LennardJonesMNPotential。 | ||
+ | |||
+ | 在 [[https:// | ||
+ | |||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
===== MoS2 中的层内和层间内聚力 ===== | ===== MoS2 中的层内和层间内聚力 ===== | ||
+ | |||
+ | <WRAP center important 100%> | ||
+ | === 注意 === | ||
+ | 如果您正在使用 **ATK2014**,请确保已升级到 **ATK2014.3** (或更高版本)以运行本教程的这一部分,因为早期的版本可能会产生一些问题。 | ||
+ | </ | ||
+ | |||
+ | 在最后一个示例中,您将学习如何使用标记仅在所选原子上定义势。我们考虑一种辉钼矿(MoS< | ||
+ | |||
+ | 为设置系统,请打开 // | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 将构型发送到 **ScriptGenerator**。 | ||
+ | |||
+ | 在 **ScriptGenerator** 中添加一个 NewCalculator 和 Optimize {{: | ||
+ | |||
+ | 将最终脚本发送给到 **Editor**。 | ||
+ | |||
+ | 在 python 脚本中,找到定义 Stillinger-Weber 势的行。复制该行,并按以下方式调整这两行: | ||
+ | |||
+ | <code python> | ||
+ | sw_layer1 = StillingerWeber_MoS_2013(tags=' | ||
+ | sw_layer2 = StillingerWeber_MoS_2013(tags=' | ||
+ | </ | ||
+ | |||
+ | 这将仅对属于相应标记组的原子间定义每个势。此外,您必须定义只在不同组的硫原子间起作用的 Lennard-Jones 势。这可以通过添加以下代码行来完成: | ||
+ | |||
+ | <code python> | ||
+ | # Define a new potential for the interlayer interaction. | ||
+ | lj_interlayer_potential = TremoloXPotentialSet(name=" | ||
+ | # Add particle type definitions for both types. | ||
+ | lj_interlayer_potential.addParticleType(ParticleType.fromElement(Molybdenum)) | ||
+ | lj_interlayer_potential.addParticleType(ParticleType.fromElement(Sulfur, | ||
+ | # Add Lennard-Jones potentials between the sulfur atoms of different layers. | ||
+ | lj_interlayer_potential.addPotential(LennardJonesPotential(' | ||
+ | lj_interlayer_potential.setTags([' | ||
+ | </ | ||
+ | |||
+ | Lennard-Jones 参数取自参考文献< | ||
+ | |||
+ | 最后,所有三个势的集合必须在 TremoloX 计算器中组合。为完成此操作,请添加以下行: | ||
+ | |||
+ | <code python> | ||
+ | # Combine all 3 potential sets in a single calculator. | ||
+ | calculator = TremoloXCalculator(parameters=[sw_layer1, | ||
+ | </ | ||
+ | |||
+ | 完成定义势之后,将计算器添加到块体构型上并执行几何体优化,脚本照常继续。您可以在文件 [[https:// | ||
+ | |||
+ | 如果您运行脚本,将会获得优化的晶格常数,其与参考文献 < | ||
+ | |||
===== 参考 ===== | ===== 参考 ===== | ||
+ | |||
+ | * [1] (1, 2, 3, 4, 5) M Matsui and M. Akaogi: Molecular dynamics simulations of the structural and physical properties of the four polymorphs of TiO2. [[https:// | ||
+ | * [2] (1, 2) C.J. Fennell and J.D. Gezelter: Is the Ewald summation still necessary? Pairwise alternatives to the accepted standard for long-range electrostatics. [[https:// | ||
+ | * [3] (1, 2, 3, 4, 5) J.P. Trinastic, R. Hamdan, Y. Wu, L. Zhang, H.-P. Cheng: Unified interatomic potential and enery barrier distributions for amorphous oxides. [[https:// | ||
+ | * [4] (1, 2, 3) O. N. Kalugin, V. V. Chaban, O. V. Prezhdo: Microscopic Structure and Dynamics of Molecular Liquids and Electrolyte Solutions Confined by Carbon NanoTubes: Molecular Dynamics Simulations. [[https:// | ||
+ | * [5] (1, 2) J.-W. Jiang, H.S. Park, T. Rabczuk: Molecular dynamics simulations of single-layer molybdenum disulphide (MoS2): Stillinger-Weber parameterization, | ||
+ | * 英文原文:[[https:// |