目录

在VNL中导入LAMMPS轨迹文件

简介

使用VNL您可以导入、可视化和分析由其他多种模拟代码(如VASP,Quantum ESPRESSO等等)产生的输出文件。也可以导入由LAMMPS产生的经典分子动力学轨迹文件,并且通过Movie Tool3D ViewerMD Analyzer等工具进一步分析您的模拟结果。

LAMMPS是一个经典分子动力学代码,输出的分子动力学轨迹格式可以非常灵活[Pli95],大部分的输出文件为文本文件。将LAMMPS轨迹导入VNL有两种选择:

  1. 导入为Trajectory对象,仅可以用3D Viewer可视化和拖拽入Builder
  2. 导入为MDTrajectory,可以进一步使用Movie Tool或者MDAnalyzer进行分析。

为了完整的使用VNL的MD分析功能,在进行LAMMPS模拟的时候,您需要遵守一些小的规则(在本教程中会说明)。

您想学到如何将LAMMPS模拟轨迹文件导入Virtual Nanolab和如何使用可视化和分析工具,以及如何建立基于输入构象的进一步模拟的输入文件。

准备LAMMPS脚本

LAMMPS模拟是由输入脚本控制的,所有的模拟参数列在输入脚本中。输出轨迹文件是通过 dump 命令来详列的。VNL目前能够阅读写成 atom或者 custom模式的轨迹文件。对于VNL来讲,轨迹文件的扩展名不需要是某一明确的类型,只要和其他没有冲突就好。 (1) 导入为基本的Trajectory格式 只需选定atom格式,额外的指定就不需要了。命令也会变得非常简单,例如:

dump        d_trajectory all atom 100 trajectory.dat

它会每100步将所有原子的坐标写入trajectory.dat 文件。atom模式不写入速度,这样得到的轨迹文件不能导入为MDTrajectory,仅可以导入为Trajecto ry对象。 (2)要导入为MDTrajectory对象格式,除了原子坐标之外,如果要作为MDTrajectory,轨迹文件还需要写入原子速度,这可以通过这条命令实现:

dump      d_trajectory all custom 100 trajectory.dat id type x y z vx vy vz

MDTrajectory对象还需要提取出势能数据。这些可以从模拟过程中创建的log文件中的热力学输出中读取。为此,LAMMPS中的热力学输出一定要和轨迹文件输出频率同步。您可以通过关键词 thermo 来指定这个输出的频率。而且您必须确保势能在热力学输出文件中列出,这可以通过使用 thermo_style 关键词来选择。典型例子如下(与上面的轨迹dump命令一致):

thermo       100
thermo_style custom step temp pe etotal press

这里pe指出势能将被写入log文件。 如果满足了以上所有要求,VNL可以将轨迹文件作为MDTrajectory来读取。

说明:

在LAMMPS custom格式允许你去明确地设定记录哪些量。与VNL一致的是,至少type, index和坐标(x,y,z,或者 xs,ys,zs)需要在轨迹文件中列出。

运行LAMMPS

LAMMPS提供格式明确的输出文件和初始结构,VNL首先直接读取包含了所有计算设置的log文件。基于log文件中的信息,才会进一步读取输出文件和其他的输入文件。所以您需要确保LAMMPS正确输出log文件,这可以在运行LAMMPS的命令行中加入-log选项来指定log文件输出:

lmp_serial -in in.settings -log log_simulation_1.lammps

注意:

您一定要使用以.lammps结尾的文件名,因为只有这种扩展名才能被VNL识别为LAMMPS的log文件。如果您是从一个独立的文件(典型的由data.*开始的)读入的输入结构,也需要保证这个文件在您的当前目录中,因为VNL要从这个文件中读取原子量。

导入VNL

如果您按照先前的段落操作,在LAMMPS模拟之后,轨迹对象应该直接出现在VNL的LabFloor中。轨迹对象将会按照log文件命名(不含扩展名)。log_simulation_1.lammps文件导入后的对象将会被命名为log_simulation_1。如果您点击它的图标,将会在右手边的侧栏中看到哪些分析插件工具可以用于您的轨迹对象。对于一个MDTrajectory您可以使用ViewerMovie ToolMDAnalyzer。对于常规的Trajectory,您只能使用Viewer。

在接下来的例子里,一个硅晶体在0压力下,在200ps时间内温度由300K线性上升到3000K,从而融化。硅原子之间的相互作用使用Stillinger-Weber势函数描述。最终得到的LAMMPS轨迹文件将会展现在LabFloor中,并使用Movie Tool进行可视化。

注释:

LAMMPS模拟有时被用于无量纲单元中的体系,这可以通过关键词units lj和一般的原子类型来实现。这些轨迹文件也可以导入VNL。但是因为没有与速度和能量相关的物理单位,轨迹文件将会被按照基本的Trajectory形式导入。下面的例子展示了在一个由一般的Lennard-Jones原子构成的二维系统中裂缝的初始和增大。 点击查看动图

处理LAMMPS轨迹文件

如果您将LAMMPS的轨迹文件导入VNL LabFloor,您当然能够单独提取某个结构,并做进一步分析或者使用VNL和QuantumATK计算。下面的例子向您展示了如何计算已经用LAMMPS模拟过的多晶体铜的结构。如果您想学习在QuantumATK中产生和模拟多晶体结构,可以参考手册 模拟多晶体铜的蠕变实验

Movie Tool打开LAMMPS轨迹文件。切换至想要的结构,比如最后的一个结构,并且使用Movie Tool窗口中右下角的 按钮将这个结构发送给 Script Generator 。

在Script Generator中,添加 AnalysisLocalStructure 块。通过双击打开块,选着合适的文件名,例如Polycrystal_local_structure.nc,不要勾选 Print的框(这个结构非常大,如果选择将会生成很大的文本输出),并且点击OK来关闭 LocalStructure设置。

使用Job Manager来运行计算。

在计算完成之后,当前的结构文件将会出现在LabFloor中。

局域结构分析(LocalStructure)

在Viewer中打开它并在Viewer的面板栏中找到Local Structure插件。点开它您将获得当前晶体结构的表单。在这个例子中,我们可以高亮显示多晶体的晶界结构:

进一步进行其他计算

除了当前结构分析,您还能够进行其他模拟,例如使用ATK-DFT引擎对提取的某个结构进行密度泛函计算:这只需要在Script Generator中加入 New Calculator 块 ,这为您的经典的LAMMPS模拟提供量子力学计算接口。

参考文献