运行msi2lmp程序可能会出现很多错误,例如unable to find ….data(查看相关笔记)、出现多余原子的错误(查看相关笔记)等等
仔细阅读README文件是了解这个程序及分析产生错误原因的基础。因此所这个笔记对LAMMPS软件内所包含的msi2lmp工具中所带的README文件的翻译。
这个翻译可以解决使用过程中出现的某些错误。下面是翻译:
msi2lmp.exe
这个程序存在多个已知的限制,在下面的“限制”(LIMITITIONS)部分进行了说明。而且这个程序已经不再更新和维护,仅仅偶尔进行一些bug修复。
如果有问题请在lammps-usrs mailing list中进行提问,不要向个人进行提问。
———————————————————————————————————————————
概述
这是程序的第三版,它能够根据MSI.car(原子坐标),.mdf(分子拓扑结构)和.frc力场文件产生一个LAMMPS data文件。.car和.mdf文件是分子体系,.frc文件是力场文件。.frc文件和.car/.mdf文件之间仅通过原子类型atom types相联系。
第一版是由Steve Lustig在Dupont编写,第一版要求必须利用Discover软件产生内部坐标和力场参数。
第二版是由Michael Peachey编写,他当时是John Carpenter管理的Cray Chemistry Applications Group的实习生。第二版程序从mdf文件产生内部坐标,从frc文件寻找力场参数,因此不再需要Discover软件。
第三版是由John Carpenter编写,优化了程序对大分子体系的表现(the original code for deriving atom numbers was quadratic in time),而且使程序成为完全动态的。第二版对于内部坐标采用了固定维数组。
Stephanie Teich-McGoldrick在2011年秋天完善了第三版,以支持非矩形晶胞。
下一次对第三版的完善是由Axel Kohlmeyer在2013年夏秋开始的,以改进程序对Windows编译器的可移植性、清理命令行解析并且提高了与当时LAMMPS版本的兼容性。这次完善删除了对过时的利用Fortran 90编写的LAMMPS版本的兼容性。
安装和使用
这个程序利用由MSI/Biosyms’s INSIGHT软件得到的.car和.mdf文件,产生一个LAMMPS data文件。
- Building mis2lmp
利用src文件夹下的Makefile。它目前是为gcc设置的。你如果想用别的编译器,必须对它进行修改。
- 测试程序
在test文件夹中存在很多由materials studio或者其它兼容软件产生的测试输入文件(one.car和one.mdf)。还有一个LAMMPS输入文件,可以run一个优化过程并且输出一个结果的data文件。利用runtests.sh脚本,所有输入文件都通过msi2lmp进行转化,然后运行LAMMPS优化过程,最后产生一个data文件,可以跟相应文件夹中的文件进行对比。这个脚本假设你是在unix/linux系统中,并且已经通过make serial编译了一个串行LAMMPS可执行文件,名为lmp_serial。这些测试按照它们所用的力场进行了分组。
- 运行程序
这个程序在命令提示符下输入相关信息来运行,用法如下:
使用方法:
msi2lmp.exe <ROOTNAME> {-print #} {-class #} {-frc FRC_FILE} {-ignore} {-nocenter} {-shift # # #}
— msi2lmp.exe是程序可执行文件的名字
— <ROOTNAME>是.car和.mdf文件的基名。
— -2001
输出文件适用于2001版的LAMMPS软件(F90版)
默认是输出适用于C++版本的LAMMPS软件。
— -print(或者-p)
#表示输出级别 0 – 只输出错误信息
1 – 最小输出(默认)
2 – 冗长输出(通常用于开发和检查新数据文件的一致性)
3 – 更详细输出(额外的debug信息)
— -ignore(或者-i)忽略关于丢失力场参数的错误,而是把这些错误按照警告处理。
— -nocenter(或者-n)不按照结构的几何中心重新定义中心,而是按照按照原点重新定义中心。
— -oldstyle (或者-o)输出的data文件没有类型提示。(与老版的LAMMPS版本兼容)
— -shift(或者-s)通过一个矢量平移整个体系(盒子和坐标),默认矢量为:0.0 0.0 0.0
— -class (或者-c)
#是使用的力场的代数(I 或者1 = 第一代力场,如CVFF)
(O或者0 = OPLS-AA)
(II 或者2 = 第二代力场,如CFFx,pcff)
默认为-class I
— -frc (或者-f)指定力场文件的名字(如cff91)
如果力场文件名包括了路径(或者Windows系统中的驱动器号),那么就会按照名字内的路径进行使用。否则,程序会在$MSI2LMP_LIBRARY(或者Windows系统下 %MSI2LMP_LIBRARY%)路径下寻找力场文件。如果$MSI2LMP_LIBRARY没有设置,那么会在../frc_files文件夹下寻找力场文件(测试用)。如果力场文件名字不是以.frc结尾的,那么.frc将被添加到名字的后面。
例如,-frc cvff(假设cvff.frc在$MSI2LMP_LIBRARY或者 ../frc_files内)
-frc cff/cff91 (假设 cff91.frc在cff文件夹内)
-frc /usr/local/forcefields/cff95(假设 cff95.frc 在 /usr/local/forcefields内)
默认,软件使用$MSI2LMP_LIBRARY/cvff.frc或者../frc_files/cvff.frc,到底用哪个取决于MSI2LMP_LIBRARY 变量是否已经设置。
— 所生成的data文件被命名为<ROOTNAME>.data
运行信息和错误信息被显示在屏幕上。
限制(LIMITATIONS)
msi2lmp存在下列已知的限制:
– 不支持选择morse bonds,而是harmonic bonds
– 不支持自动等价( auto-equivalences)填补力场参数。
– 不支持键增量(bond increments)
———————————————————————————————————————————
修复记录
(这部分没有翻译,请自行查看。)
—————————–
msi2lmp v3.9.8 6/10/2016