用户工具

站点工具


atk:添加_组合_修改经典势函数

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:添加_组合_修改经典势函数 [2019/04/29 09:27] – [设置系统] xie.congweiatk:添加_组合_修改经典势函数 [2019/04/29 10:26] (当前版本) – [设置系统] xie.congwei
行 33: 行 33:
 将脚本发送到 **Editor**。 将脚本发送到 **Editor**。
 ==== 设置势函数 ==== ==== 设置势函数 ====
 +
 +在 **Editor** 中,找到定义势的模块(即 **BulkConfiguration** 之后和 **OptimizeGeometry** 模块之前的所有部分)并删除它。
 +
 +为定义一个新的 TremoloX 势,您首先需要初始化一个新的 [[https://www.synopsys.com/silicon/quantumatk.html|TremoloXPotentialSet]] 数据块。您可以通过添加以下内容实现:
 +
 +<code python>  
 +potentialSet = TremoloXPotentialSet('MatsuiAkaogi_TiO')
 +</code>
 +
 +圆括号中的字符串定义了势的名称,但对其功能没有任何影响。
 +
 +目前为止,势集还是空的,因此您需要添加所有必需的组件。您应该首先添加 [[https://www.synopsys.com/silicon/quantumatk.html|ParticleTypes]]。在本例中,通过在脚本中插入以下两行来添加一个钛和一个氧粒子类型:
 +
 +<code python>  
 +potentialSet.addParticleType(ParticleType(symbol='O', mass=15.9994*atomic_mass_unit, charge=-1.098))
 +potentialSet.addParticleType(ParticleType(symbol='Ti', mass=47.867*atomic_mass_unit, charge=2.196))
 +</code>
 +
 +粒子电荷取自文献<sup>[1]</sup>。MA 势由两种交互类型组成:
 +
 +1.Tosi-Fumi(通常也称为 Buckginham)型势(即指数、排斥项贡献和有吸引力的范德瓦尔斯部分的组合)。
 +2.静电库仑相互作用力模拟原子的粒子电离。
 +
 +第一部分可以使用 [[https://www.synopsys.com/silicon/quantumatk.html|TosiFumuPotential]] 添加,实现了势函数
 +
 +$$V(r) = A e^{B(\sigma -r)} - \frac{C}{r^6} - \frac{D}{r^8} \, .$$
 +
 +如果将上述公式与参考文献中给出的等式进行比较<sup>[1]</sup>,您会注意到最后一项不是必需的,这就意味着 //D// 必须设置为零。注意文献<sup>[1]</sup>中的能量单元单位为 kJ / mol。参数必须以此为单位或转换为电子伏特。//A,B,C,D// 和 $\sigma$ 参数可以按照如下设置:
 +
 +<code python>  
 +potentialSet.addPotential(TosiFumiPotential(particleType1='O',
 +                                            particleType2='Ti',
 +                                            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='O',
 +                                            particleType2='O',
 +                                            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='Ti',
 +                                            particleType2='Ti',
 +                                            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))
 +</code>
 +
 +每个势函数的前两个参数决定了势的哪两种粒子类型相互作用。附加参数 $r_{i}$ 和 $r_{cut}$ 确定范围和截断行为。在本例中,对于小于 6 Å 的距离,势函数遵循原始形式,而对于较大距离,如高达 7.5 Å 时会调用平滑函数。在较大距离处,假设这些相互作用为零。
 +
 +通过添加合适的 Coulomb solver 来考虑静电相互作用。所有的 Coulomb solver 都使用您为粒子类型定义的粒子电荷。**ATK-ForceField** 中的默认算法是 [[https://www.synopsys.com/silicon/quantumatk.html|CoulombDSF]],采用一个截断和阻尼移位力(DSF)来平滑过渡<sup>[2]</sup>。为使这种方法获得较高精度(这对于静态计算尤其重要,如弹性常数,声子或晶格常数),必须选择足够高的截断值(例如 ≥ 15 Å)。在这里,我们将有选择地使用 smooth-particle-mesh-Ewald 方法([[https://www.synopsys.com/silicon/quantumatk.html|CoulombSPME]]),它能够自动处理库仑相互作用的远程贡献。Coulombsolver 可通过以下添加:
 +
 +<code python>  
 +potentialSet.setCoulombSolver(CoulombSPME(r_cut=9.0*Angstrom))
 +</code>
 +
 +最后,您必须初始化实际的 //TremoloXCalculator//,并将创建的势集合作为参数传递。之后,您必须将计算器附加到块体构型:
 +
 +<code python>  
 +calculator = TremoloXCalculator(parameters=potentialSet)
 +bulk_configuration.setCalculator(calculator)
 +</code>
 +
 +脚本的其余部分可以保留原样。您可以在文件 [[https://docs.quantumwise.com/_downloads/TiO2_Matsui.py|↓ TiO2_Matsui.py]] 中找到示例脚本。
 +
 +现在,您可以将脚本发送到 **JobManager** 并启动计算。结果应与文献<sup>[1]</sup>一致。
 ===== 无定形氧化物的势函数 ===== ===== 无定形氧化物的势函数 =====
 +
 +在本例中,引入的另一种势被设计用于模拟非晶材料,如钛、硅、铪或氧化钽,以及它们的混合氧化物<sup>[3]</sup>
 +
 +
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +从 **ATK-2015** 版本开始,这种势已经可以作为预定义势 //Trinastic_HfOSiTaTi_2013//
 +</WRAP>
 +
 +
 +为测试势,您可以使用前一个示例中的金红石构型。该势与 MA 势相似,如上所示,但它另外还包含了一个 [[https://www.synopsys.com/silicon/quantumatk.html|MorsePotential]]。
 +
 +$$V(r) = E_{ij} \left [ \left(1 - e^{-k_{ij}(r-r_0)} \right)^2 - 1 \right ]$$
 +
 +实际上,文献<sup>[3]</sup>中提出的公式省略了方括号中最后一项的贡献。然而,由于该项仅表示能量的恒定偏移,对 MD 模拟中的力并无影响,因此我们将在此处忽略这种差异。尽管通过使用 TosiFumiPotential 原则上可以设置类似于前面示例的势函数项,但我们将采用单独地添加所有项呈现另一种可选方法。
 +
 +为了获得势,您需要一个取自 [[https://www.synopsys.com/silicon/quantumatk.html|BuckinghamPotential]] 一个离散项的指数排斥贡献,因此您将使用 [[https://www.synopsys.com/silicon/quantumatk.html|LennardJonesMNPotential]],最后用 [[https://www.synopsys.com/silicon/quantumatk.html|MorsePotential]]。
 +
 +在 Ti-O 相互作用的例子中展示了势的设置。通过从文献<sup>[3]</sup>插入相应的 element-pair-specific 势参数,其他元素遵循相同的方案。
 +
 +从初始化一个新的 [[https://www.synopsys.com/silicon/quantumatk.html|TremoloXPotentialSet]] 开始,添加具有相应粒子电荷的粒子类型:
 +
 +<code python>  
 +potential_set = TremoloXPotentialSet('Trinastic_JCP2013')
 +potential_set.addParticleType(ParticleType(symbol='O', mass=15.9994*atomic_mass_unit, charge=-1.2))
 +potential_set.addParticleType(ParticleType(symbol='Ti', mass=47.867*atomic_mass_unit, charge=2.4))
 +</code>
 +
 +然后定义一个排除 Buckingham 项:
 +
 +<code python>  
 +potential_set.addPotential(BuckinghamPotential(particleType1='O',
 +                                               particleType2='Ti',
 +                                               A=5105.12*eV,
 +                                               rho=0.2253*Angstrom,
 +                                               r_i=6.0*Angstrom,
 +                                               r_cut=7.5*Angstrom))
 +</code>
 +
 +添加色散项。您将仅需要 Lennard-Jones 势中具有吸引力的部分,即 //A// 参数必须设置为零:
 +
 +<code python>  
 +potential_set.addPotential(LennardJonesMNPotential(particleType1='O',
 +                                                   particleType2='Ti',
 +                                                   A=0.0*eV*Angstrom**12,
 +                                                   B=20.0*eV*Angstrom**6,
 +                                                   m=12,
 +                                                   n=6,
 +                                                   r_cut=10.0*Angstrom))
 +</code>
 +
 +添加 Morse 势:
 +
 +<code python>  
 +potential_set.addPotential(MorsePotential(particleType1='O',
 +                                          particleType2='Ti',
 +                                          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))
 +</code>
 +
 +最后,设置一个 Coulomb solver,如 [[https://www.synopsys.com/silicon/quantumatk.html|CoulombSPME]] 或 [[https://www.synopsys.com/silicon/quantumatk.html|CoulombDSF]] 计算静电相互作用力,并初始化一个具有以下势集的新 TremoloXCalculator:
 +
 +<code python>  
 +potential_set.setCoulombSolver(CoulombSPME(r_cut=9.0*Angstrom))
 +calculator = TremoloXCalculator(parameters=potential_set)
 +</code>
 +
 +在文献<sup>[3]</sup>中,提出了一种可供选择的强大参数化,可以通过插入相应的参数替代上文展示的那些来实现。其余元素对之间交互的实现也类似。在文献<sup>[3]</sup>的参数表中,您会发现对于某些元素组合,Morse 能量参数为零,即意味着这些元素之间不需要 Morse 势。完整的势可以在文件 [[https://docs.quantumwise.com/_downloads/script_Trinastic_potential.py.txt|↓ script_Trinastic_potential.py.txt]] 中找到。
 +
 ===== Tersoff 和 Lennard-Jones 的组合势函数 ===== ===== Tersoff 和 Lennard-Jones 的组合势函数 =====
 +
 +在本节中,您将学习如何结合 Tersoff 势和 Lennard-Jones(LJ) 势模拟石墨晶胞中的单个锂原子。这种材料组合特别有趣,因为它提供了一个非常简单的锂离子电池中典型阳极的模型。Tersoff 势和 LJ 势的组合通常用于多组分材料,其中各个组分间相互作用较弱,主要是排斥力和范德华力。在本例的石墨中,组分中的强键合相互作用可以由 Tersoff 势或对于该材料的另一种合适的势描述。
 +
 +在本例中,您将采用文献<sup>[4]</sup>中的参数。请注意,它们尚未针对此系统进行过广泛测试。因此,它们只应被视为您自己研究的起点。
 ==== 设置系统 ==== ==== 设置系统 ====
 +
 +为设置测试系统,打开 **Builder**,点击 Add {{:atk:arrow.png?direct&5|}} From database 添加一个石墨晶胞。单击 Bulk tools {{:atk:arrow.png?direct&5|}} Repeat 扩大晶胞,对单胞进行 4x4x2 的重复。
 +
 +如下图所示选中一个包含 3 个原子(一个在第二层,两个在第三层)的三角形。
 +
 +{{ :atk:builder_addli-20190429.png?direct&750 |}}
 +
 +单击工具栏(如图)中的 {{:atk:AlignmentPoint02c.png?25|}} 图标,在所选原子的中心放置一个额外的原子。这个原子稍后将被转换为锂,但现在我们将其保留为碳。
 +
 +使用 {{:atk:sendto.png?direct&20|}} 按钮将构型发送到 **ScriptGenerator**。在 **ScriptGenerator** 中,添加一个 NewCalculator 对象,然后是您选择的模拟任务,如 Optimize {{:atk:arrow.png?direct&5|}} MolecularDynamics 模块。打开 **NewCalculator** 的设置,选择 **ATK-ForceField** 计算器和 //Tersoff_C_2005// 势(此为石墨的基本势)。不勾选 ''Save'' 和 ''Print''。在 //Global IO// 的分组框中,将 ''Script Detail'' 设置为 “Show defaults”,然后将脚本发送到 **Editor**。
 +
 +首先,找到元素列表。将列表中最后一个元素的名称从 ''Carbon'' 更改为 ''Lithium''。(如果您已经在 **Builder** 中完成了这项工作,那么就不可能在 **ScriptGenerator** 中选择 Tersoff 势,因为它不支持锂。)
 +
 +如果您现在看一下计算器的部分,将会发现 Tersoff 势的详细定义。这是 //Show defaults// 选项的缘故。通过 ''addParticleType()'' 方法找到添加 “C” 元素定义的行。复制该行(调用两个 ''addParticleType()'' ),并按如下所示修改这些行:
 +
 +<code python>  
 +potentialSet.addParticleType(ParticleType(symbol='C',
 +                                          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='Li',
 +                                          mass=6.941*atomic_mass_unit,
 +                                          charge=None,
 +                                          # Sigma and epsilon from Ref [3].
 +                                          sigma=0.826*Ang,
 +                                          epsilon=0.271115*eV))
 +</code>
 +
 +对于碳,已添加 LJ 参数 $\epsilon$ 和 $sigma$ 并将其设置为文献<sup>[4]</sup>中的值。对于锂,首先必须更改符号和原子质量,然后设置相应的 LJ 参数。请注意,本例中我们考虑中性锂原子,即没有定义粒子电荷,因为这是阳极中的优选状态(与阴极中的锂离子相反)。
 +
 +仅通过指定粒子参数,LJ 势不会变得活跃。您还必须添加相应的势函数。为实现此目的,添加以下两行:
 +
 +<code python>  
 +potentialSet.addPotential(LennardJonesPotential(particleType1='C',
 +                                                particleType2='Li',
 +                                                r_cut=9.0*Ang))
 +potentialSet.addPotential(LennardJonesPotential(particleType1='Li',
 +                                                particleType2='Li',
 +                                                r_cut=9.0*Ang))
 +</code>
 +
 +这将在碳和锂之间以及锂和锂之间添加 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://www.synopsys.com/silicon/quantumatk.html|reference manual]])。
 +
 +您应该始终检查为所选 LJ 参数推荐的组合规则是否与此定义一致。如果没有,您应该使用更为通用的 LennardJonesMNPotential。
 +
 +在 [[https://docs.quantumwise.com/_downloads/Script_graphite_lithium.py|↓ Script_graphite_lithium.py]] 中可以找到最终脚本的示例。您可以添加与 **ATK-ForceField** 兼容的任何优化、分子动力学或分析模块。下图显示了锂-石墨系统的 MD 模拟的快照。
 +
 +
 +
 +{{ :atk:graphite_lithium-20190429.jpg?direct&600 |}}
 +
 ===== MoS2 中的层内和层间内聚力 ===== ===== MoS2 中的层内和层间内聚力 =====
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +如果您正在使用 **ATK2014**,请确保已升级到 **ATK2014.3** (或更高版本)以运行本教程的这一部分,因为早期的版本可能会产生一些问题。
 +</WRAP>
 +
 +在最后一个示例中,您将学习如何使用标记仅在所选原子上定义势。我们考虑一种辉钼矿(MoS<sub>2</sub>)晶体,如参考文献<sup>[4]</sup>中所述,它的内部相互作用由 //Stillinger-Weber// 势描述,而相对较弱的层间相互作用再次由 //Lennard-Jones// 势模拟,。
 +
 +为设置系统,请打开 //Builder//,搜索并添加数据库中的辉钼矿结构。通过在其周围绘制一个矩形来选择一个图层,并添加名为 “layer1” 的标记(通过 Selection Tools {{:atk:arrow.png?direct&5|}} Tags)。对第二层重复以上步骤,命名为 “layer2”。
 +
 +{{ :atk:builder_tag_mos2-20190429.png?direct&850 |}}
 +
 +将构型发送到 **ScriptGenerator**。
 +
 +在 **ScriptGenerator** 中添加一个 NewCalculator 和 Optimize {{:atk:arrow.png?direct&5|}} OptimizeGeometry 模块。打开 **NewCalculator** 设置,选择含有 //StillingerWeber_MoS_2013// 势的 **ATK-ForceField** 计算器。取消勾选 ''Save'',然后关闭 NewCalculator 控件。打开 **OptimizeGeometry** 控件,如第一个示例中所述调整几何和应力优化的设置。
 +
 +将最终脚本发送给到 **Editor**。
 +
 +在 python 脚本中,找到定义 Stillinger-Weber 势的行。复制该行,并按以下方式调整这两行:
 +
 +<code python>  
 +sw_layer1 = StillingerWeber_MoS_2013(tags='layer1')
 +sw_layer2 = StillingerWeber_MoS_2013(tags='layer2')
 +</code>
 +
 +这将仅对属于相应标记组的原子间定义每个势。此外,您必须定义只在不同组的硫原子间起作用的 Lennard-Jones 势。这可以通过添加以下代码行来完成:
 +
 +<code python>  
 +# Define a new potential for the interlayer interaction.
 +lj_interlayer_potential = TremoloXPotentialSet(name="InterLayerPotential")
 +# Add particle type definitions for both types.
 +lj_interlayer_potential.addParticleType(ParticleType.fromElement(Molybdenum))
 +lj_interlayer_potential.addParticleType(ParticleType.fromElement(Sulfur, sigma=3.13*Angstrom, epsilon=0.00693*eV))
 +# Add Lennard-Jones potentials between the sulfur atoms of different layers.
 +lj_interlayer_potential.addPotential(LennardJonesPotential('S', 'S', r_cut=10.0 * Angstrom))
 +lj_interlayer_potential.setTags(['layer1', 'layer2'])
 +</code>
 +
 +Lennard-Jones 参数取自参考文献<sup>[5]</sup>。最后一行确保了 Lennard-Jones 势只在交替层间起作用。
 +
 +最后,所有三个势的集合必须在 TremoloX 计算器中组合。为完成此操作,请添加以下行:
 +
 +<code python>  
 +# Combine all 3 potential sets in a single calculator.
 +calculator = TremoloXCalculator(parameters=[sw_layer1, sw_layer2, lj_interlayer_potential])
 +</code>
 +
 +完成定义势之后,将计算器添加到块体构型上并执行几何体优化,脚本照常继续。您可以在文件 [[https://docs.quantumwise.com/_downloads/Molybdenite_SW_plus_LJ.py|↓ Molybite_SW_plus_LJ.py]] 中找到最终脚本以作比较。
 +
 +如果您运行脚本,将会获得优化的晶格常数,其与参考文献 <sup>[5]</sup> 中报道的数据非常相似。
 +
 ===== 参考 ===== ===== 参考 =====
  
 +
 +  * [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://www.tandfonline.com/doi/abs/10.1080/08927029108022432|Mol. Sim. 6, 239 (1991)]]
 +  * [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://aip.scitation.org/doi/10.1063/1.2206581|J. Chem. Phys. 124, 234104 (2006)]]
 +  * [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://aip.scitation.org/doi/10.1063/1.4825197|J. Chem. Phys. 139, 154506 (2013)]]
 +  * [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://www.intechopen.com/books/carbon-nanotubes-synthesis-characterization-applications/microscopic-structure-and-dynamics-of-molecular-liquids-and-electrolyte-solutions-confined-by-carbon|Carbon Nanotubes - Synthesis, Characterization, Applications (2011), Siva Yellampalli (Ed.)]].
 +  * [5] (1, 2) J.-W. Jiang, H.S. Park, T. Rabczuk: Molecular dynamics simulations of single-layer molybdenum disulphide (MoS2): Stillinger-Weber parameterization, mechanical properties and thermal conductivity [[https://aip.scitation.org/doi/10.1063/1.4818414|J. Appl. Phys. 114, 064307 (2013)]]
 +  * 英文原文:[[https://docs.quantumwise.com/tutorials/combining_potentials/combining_potentials.html|https://docs.quantumwise.com/tutorials/combining_potentials/combining_potentials.html]]
atk/添加_组合_修改经典势函数.1556501260.txt.gz · 最后更改: 2019/04/29 09:27 由 xie.congwei

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