Method Article
熔体和流体是自然系统中无处不在的质量传递载体。我们开发了一个开源软件包来分析此类系统的分子动力学模拟。我们计算结构(键合,聚类,化学形态),传递(扩散,粘度)和热力学性质(振动光谱)。
我们开发了一个基于Python的开源包来分析从流体的分子动力学模拟中产生的结果。该封装最适合自然系统上的应用,如硅酸盐和氧化物熔体、水基流体和各种超临界流体。该软件包是Python脚本的集合,其中包括两个处理文件格式和晶体学的主要库。所有脚本都在命令行运行。我们提出了一种简化的格式来存储模拟的原子轨迹和相关热力学信息,这些信息保存在UMD文件中,代表通用分子动力学。UMD封装允许计算一系列结构,传输和热力学特性。从成对分布函数开始,它定义键长,构建原子间连接矩阵,并最终确定化学物种形成。确定化学物质的寿命允许运行完整的统计分析。然后,专用脚本计算原子和化学物质的均方位移。对原子速度实施的自相关分析得出扩散系数和振动谱。对应力进行相同的分析得出粘度。该软件包可通过GitHub网站及其ERC IMPACT项目自己的专用页面作为开放访问软件包获得。
流体和熔体是自然环境中的活性化学和物理传递载体。原子扩散速率的升高有利于化学交换和反应,低粘度加上不同的浮力有利于较大的质量传递,而晶体 - 熔体密度关系有利于行星体内部的分层。由于没有周期性晶格,达到熔融状态所需的典型高温以及淬火的难度使得一系列明显特性(如密度、扩散和粘度)的实验测定极具挑战性。这些困难使得替代计算方法强大而有用的工具可用于研究这类材料。
随着计算能力的出现和超级计算机的可用性,目前采用两种主要的数值原子模拟技术来研究非结晶原子系统的动力学状态,蒙特卡罗1 和分子动力学(MD)1,2。在蒙特卡罗模拟中,配置空间是随机采样的;蒙特卡罗方法显示并行化中的线性缩放,如果所有采样观测值彼此独立。结果的质量取决于随机数生成器的质量和抽样的代表性。蒙特卡罗方法显示并行化中的线性缩放,如果采样彼此独立。在分子动力学(MD)中,构型空间是通过瞬态原子轨迹采样的。从给定的配置开始,原子轨迹是通过积分牛顿运动方程来计算的。原子间力可以使用模型原子间电位(在经典MD中)或使用第一性原理方法(从头开始或第一性原理,MD)来计算。结果的质量取决于轨迹的长度及其不被局部最小值吸引的能力。
分子动力学模拟包含大量信息,所有这些都与系统的动力学行为有关。热力学平均属性,如内能、温度和压力,是相当标准的计算。它们可以从模拟的输出文件中提取并取平均值,而与原子的运动及其相互关系直接相关的量需要在提取原子位置和速度后计算。
因此,人们已经付出了很多努力来可视化结果,并且今天可以在不同的平台上使用各种软件包,无论是否开源[Ovito3,VMD4,Vesta5,Travis6等]。所有这些可视化工具都可以有效地处理原子间距离,因此,它们允许有效地计算成对分布函数和扩散系数。执行大规模分子动力学模拟的各种小组拥有专有软件来分析模拟产生的各种其他属性,有时以共享软件或其他形式的有限访问社区,有时仅限于范围和使用某些特定软件包。在其中一些包中开发和实现用于提取有关原子间键合,几何图案和热力学信息的复杂算法3,4,5,6,7等。
在这里,我们提出了 UMD包 - 一个用Python编写的开源包,用于分析分子动力学模拟的输出。UMD 封装允许计算各种结构、动力学和热力学特性(图 1)。该软件包可通过GitHub网站(https://github.com/rcaracas/UMD_package)和ERC IMPACT项目的专用页面(http://moonimpact.eu/umd-package/)作为开放获取软件包获得。
为了使其具有通用性并且更易于处理,我们的方法是首先从实际分子动力学运行的输出文件中提取与热力学状态和原子轨迹相关的所有信息。此信息存储在专用文件中,其格式独立于运行仿真的原始 MD 包。我们将这些文件命名为"umd"文件,代表通用分子动力学。通过这种方式,我们的UMD软件包可以被任何ab initio组使用任何软件,所有这些都可以以最小的适应工作进行。使用当前软件包的唯一要求是将特定MD软件的输出中的相应解析器写入umd文件格式(如果尚不存在)。目前,我们为VASP8 和QBox9 软件包提供这样的解析器。
图 1:UMD 库的流程图。
物理属性为蓝色,主要 Python 脚本及其选项为红色。 请点击此处查看此图的放大版本。
umd文件是ASCII文件;典型的扩展是"umd.dat",但不是强制性的。所有分析组件都可以读取 umd 格式的 ASCII 文件,而不管实际的扩展名如何。但是,一些旨在对多个模拟执行快速大规模统计信息的自动脚本专门查找扩展名为 umd.dat 的文件。每个物理属性都用一行表示。每行都以关键字开头。通过这种方式,格式具有高度的适应性,并允许将新属性添加到umd文件中,同时在整个版本中始终保持其可读性。下面讨论中使用的热膨胀石在4.6 GPa和3000 K下模拟的umd文件的前30行 如图2所示。
图 2:umd 文件的开头,描述了在 4.6 GPa 和 3000 K 下模拟液态热浮石的过程。
标头后跟每个快照的说明。每个属性都写在一行上,包含物理属性的名称、值和单位,全部用空格分隔。 请点击此处查看此图的放大版本。
所有 umd 文件都包含描述模拟单元内容的标题:原子数、电子数和原子类型,以及每个原子的详细信息,例如其类型、化学符号、价电子数及其质量。空行标记标头的末尾,并将其与 umd 文件的主要部分分开。
然后详细介绍模拟的每个步骤。首先,给出瞬时热力学参数,每个参数在不同的线上,指定(i)参数的名称,如能量,应力,等效静水压力,密度,体积,晶格参数等,(ii)其值和(iii)其单位。接下来是描述原子的表格。标题行给出了不同的度量,如笛卡尔位置,速度,电荷等,以及它们的单位。然后每个原子在一行上详细介绍。通过对应于三个 x,y,z 轴的三组,条目是:减少的位置,折叠到模拟单元中的笛卡尔位置,笛卡尔位置(正确考虑了原子在模拟过程中可以穿越多个单元单元的事实),原子速度和原子力。最后两个条目是标量:电荷和磁矩。
两个主要的库确保了整个软件包的正常运行。 umd_process.py 库处理 umd 文件,如读取和打印。 crystallography.py 库处理与实际原子结构相关的所有信息。 crystallography.py 库的基本理念是将格视为向量空间。单元单元参数及其方向表示基向量。"空间"具有一系列标量属性(特定体积,密度,温度和特定原子数),热力学属性(内能,压力,热容等)和一系列张量属性(应力和弹性)。原子填充了这个空间。"格"类定义了这个集合,以及各种简短的计算,如比体积,密度,从直接格获得倒数格等。"原子"类定义原子。它们的特点是一系列标量性质(名称,符号,质量,电子数等)和一系列矢量性质(空间中的位置,相对于格类中描述的向量基,或相对于通用笛卡尔坐标,速度,力等)。除了这两个类之外, crystallography.py 库还包含一系列函数,用于执行各种测试和计算,例如原子距离或单元格乘法。元素周期表也作为字典包含在内。
umd 包的各个组件写入多个输出文件。作为一般规则,它们都是ASCII文件,它们的所有条目都由选项卡分隔,并且它们尽可能不言自明。例如,它们总是清楚地指示物理属性及其单位。 umd.dat 文件完全符合此规则。
1. 分子动力学运行分析
注意:该软件包可通过 GitHub 网站(https://github.com/rcaracas/UMD_package)和 ERC IMPACT 项目的专用页面(http://moonimpact.eu/umd-package/)作为开放获取软件包获得。
旗 | 意义 | 使用它的脚本 | 默认值 |
-h | 简短帮助 | 都 | |
-f | UMD 文件名 | 都 | |
-i | 要丢弃的热化步骤 | 都 | 0 |
-i | 包含原子间键的输入文件 | 物种形成 | 债券.输入 |
-秒 | 频率采样 | MSD, 物种形成 | 1(考虑每一步) |
-一 | 原子或阴离子列表 | 物种形成 | |
-c | 阳离子列表 | 物种形成 | |
-l | 键长 | 物种形成 | 2 |
-t | 温度 | 振动、流变学 | |
-v | 轨迹采样窗口宽度的离散化,用于均方位移分析 | MSD | 20 |
-z | 轨迹采样窗口开始的离散化,用于均方位移分析 | MSD | 20 |
表 1:UMD 包中使用的最常见标志及其最常见的意义。
2. 执行结构分析
图 3:对分布函数的确定。
(a) 对于一个物种(例如红色)的每个原子,协调物种的所有原子(例如灰色和/或红色)都算作距离的函数。(b) 每个快照的距离分布图,在此阶段只是δ函数的集合,然后对所有原子和所有快照进行平均,并按理想气体分布加权,以生成(c)连续的对分布函数。 g(r) 的第一个最小值是第一个配位球体的半径,稍后在物种形成分析中使用。 请点击此处查看此图的放大版本。
3. 执行形态分析
图 4:原子团簇的标识。
配位多面体使用原子间距离定义。距离小于指定半径的所有原子都被认为是键合的。此处的阈值对应于图 1 中定义的第一个协调球体(浅红色圆圈)。聚合和化学物质是从键合原子的网络中获得的。注意中心的Red1Grey2团簇,它与其他原子分离,形成无限的聚合物。请点击此处查看此图的放大版本。
4. 计算扩散系数
5. 时间相关函数
6. 仿真产生的热力学参数。
Pyrolite 是一种模型式多组分硅酸盐熔体(0.5Na2O 2CaO 1.5Al2O3 4FeO 30MgO 24SiO2),最能接近散装硅酸盐地球的成分 - 地球化学平均值或我们的整个星球,除了铁基核心19。早期的地球被一系列大规模的融化事件所主导20,最后一次可能在原月盘凝结之后吞没了整个星球21。热浮岩代表了这种行星级岩浆海洋组成的最佳近似值。因此,我们通过 VASP 实施中的从头开始分子动力学模拟,广泛研究了高温岩熔体在 3,000\u2012,000 K 温度范围和 0\u2012150 GPa 压力范围内的物理性质。这些热力学条件完全是地球上最极端的岩浆海洋条件的特征。我们的研究是成功使用UMD封装进行熔体深入分析的一个很好的例子22。我们计算了分布和平均键长,我们追踪了阳离子氧配位的变化,并将我们的结果与先前对各种成分的无定形硅酸盐的实验和计算研究进行了比较。我们的深入分析有助于将标准配位数分解为其基本成分,概述熔体中外来配位多面体的存在,并提取所有配位多面体的寿命。它还概述了模拟中采样的重要性,包括轨迹的长度以及建模系统中存在的原子数量。至于后处理,UMD分析独立于这些因素,但是,在解释UMD包提供的结果时应考虑这些因素。在这里,我们展示了一些如何使用UMD包提取熔体的几个特征的例子,并应用于熔融热浮石。
从gofrs_umd.py脚本获得的Si-O对分布函数表明,第一个配位球体的半径(g(r)函数的第一个最小值)在T = 3000 K和P = 4.6 GPa时约为2.5埃。g(r) 的最大值为 1.635 Å,这是弯曲长度的最佳近似值。长尾巴是由于温度。使用这个极限作为Si-O键距离,形态分析表明,SiO4单元可以持续长达几皮秒,主导着熔体(图5)。熔体中有一个重要部分显示部分聚合,如Si2O7等二聚体和Si3Ox单元等三聚体的存在所反映的那样。它们相应的生存期是皮秒级的。高阶聚合物的使用寿命都大大缩短。
图5:Si-O化学物质的寿命。
在4.6 GPa和3000 K的多组分熔体中鉴定物种形成。标签上标记了 SiO3、SiO4 和 SiO5 单体以及各种 SixOy 聚合物。请点击此处查看此图的放大版本。
垂直和水平步长的不同值(由上面的 –z 和 –v 标志定义)产生 MSD 的各种采样(图 6)。即使z和v的值很大,也足以定义斜率,从而定义不同原子的扩散系数。当获得 z 和 v 的大值时,后处理的时间增益非常显著。MSD为模拟质量提供了非常强大的验证标准。如果MSD的扩散部分不够长,则表明模拟太短,并且无法达到统计意义上的流体状态。MSD扩散部分的最低要求在很大程度上取决于系统。可以要求所有原子在熔体结构中至少改变一次其位点,以便将其视为流体10。在行星科学中应用的一个很好的例子是复杂的硅酸盐熔体在接近甚至低于其液相线11的高压下熔体。Si原子是主要的网络形成阳离子,在二十多个皮秒之后交换位点。如果仿真时间短于此阈值,则会对可能的配置空间进行大量采样。然而,由于配位阴离子,即O原子,比中心Si原子移动得更快,它们可以补偿Si的一部分慢迁移率。因此,整个系统确实可以覆盖比仅从Si位移中假设的更好的配置空间采样。
图 6:均方位移 (MSD)。
MSD用于多组分硅酸盐熔体的几种原子类型。使用各种水平和垂直步长(z 和 v)进行采样可产生一致的结果。实心圆:-z 50 –v 50。开环: -z 250 –v 500. 请点击此处查看此图的放大版本。
最后,原子VAC函数产生熔体的振动谱。 图7 显示了与上述相同的压力和温度条件下的光谱。我们代表了Mg,Si和O原子的贡献,以及总值。在零频率下,光谱有一个有限的值,对应于熔体的扩散特性。从振动光谱中提取热力学性质需要从零中去除这种类似气体的扩散特性,但也要适当考虑其在较高频率下的衰减。
图7:热熔体的振动光谱。
原子速度-速度自相关函数的傅里叶变换的实部产生振动谱。 这里计算了多组分硅酸盐熔体的光谱。流体在零频率下具有非零气体样扩散特性。 请点击此处查看此图的放大版本。
UMD 包旨在更好地与 ab initio 模拟配合使用,其中快照数量通常限制为数十到数十万个快照,每个单元单元只有几百个原子。如果运行后处理的计算机具有足够的活动内存资源,则还可以处理较大的模拟。该代码通过其可以计算的各种属性及其开源许可证来区分自己。
umd.dat 文件适用于在整个模拟过程中保持粒子数不变的融合。UMD 包可以读取来自模拟盒形状和体积变化的计算产生的文件。这些涵盖了最常见的计算,如NVT和NPT,其中粒子的数量,N,温度T,体积,V和/或压力P保持恒定。
对于开始的时间,对分布函数以及所有需要估计原子间距离的脚本(如物种形成脚本)仅适用于正交单元单元,这意味着对于立方,四方和正交单元,其中轴之间的角度为90°。
2.0版的主要开发路线是消除距离的正交性限制,并为物种形成脚本添加更多特征:分析单个化学键,分析原子间角,并实现第二个配位球体。在外部协作的帮助下,我们正在努力将代码移植到GPU上,以便在更大的系统中更快地进行分析。
作者没有什么可透露的。
这项工作得到了欧洲研究理事会(ERC)在欧盟地平线2020研究和创新计划(资助协议编号681818 IMPACT to RC)下的支持,由深碳天文台极端物理和化学理事会以及挪威研究理事会通过其卓越中心资助计划(项目编号223272)提供支持。我们承认通过stl2816系列eDARI计算授权访问GENCI超级计算机,通过PRACE RA4947项目访问Irene AMD超级计算机,以及通过UNINETT Sigma2 NN9697K访问Fram超级计算机。金融服务得到了Marie Skłodowska-Curie项目的支持(赠款协议ABISSE No.750901)。
Name | Company | Catalog Number | Comments |
getopt library | open-source | ||
glob library | open-source | ||
matplotlib library | open-source | ||
numpy library | open-source | ||
os library | open-source | ||
Python software | The Python Software Foundation | Version 2 and 3 | open-source |
random library | open-source | ||
re library | open-source | ||
scipy library | open-source | ||
subprocess library | open-source | ||
sys library | open-source |
请求许可使用此 JoVE 文章的文本或图形
请求许可This article has been published
Video Coming Soon
版权所属 © 2025 MyJoVE 公司版权所有,本公司不涉及任何医疗业务和医疗服务。