VASP的POSCAR格式转换lammps格式脚本

近期处理POSCAR转换lammps的data文件的时候,需要ovito协助处理,但是命令行的大量处理好像还是成问题的(特别是我几百个POSCAR需要转换的时候,一个个手拖就不现实了)

之前写过一些自动转换格式的脚本,但是只是针对于某一个特定的结构进行的,多一个原子少一个原子,原子换一下就用不了的。而我每次处理的POSCAR文件的原子种类和个数都在发生变化。于是一怒之下就写了这个通用的脚本,可以直接将含有前111号原子的POSCAR文件自动转换成lammps可读取的data文件格式。*支持分数坐标和绝对坐标的读取。下载链接:GitHub - whitecrn/poscar2data: This scrip can help you transform POSCAR file to lammps data file

 本脚本使用gfortran编写,使用的是gnu编译器。脚本所需要的依赖如下图所示。

 文件的源代码我没有放上来,直接上传的是编译好的文件。因为源代码里面有很多我自己写的库文件,最终合成打包起来比较麻烦,有需要的话可以联系我问我拿。源代码各文件如下图。。。。。。

POSCAR需要比较固定的开头格式,中间不能有空行(如果格式不是固定的,ovito也读取不了。。。。)。格式图下图所示。

第一行是体系的名称,第二行是缩放因子,第三行到第五行是晶格参数,第六行是原子种类信息,第七行是原子对应的原子数,第八行是区分绝对坐标和分数坐标,第九行以后开始写的是原子位置信息。目前只能做到基于此类的转换,如果含有电荷信息可能无法使用。原子的种类限制在前111号元素,原子的个数和种类个数都不会受到限制。

使用脚本很简单,下载以后(Linux系统上需要装有gnu编译器)。将脚本放在与需要处理的POSCAR文件同一目录之下,使用命令:chmod +x poscar2data,为脚本增加可执行权限。

然后如果需要转换的POSCAR格式文件名称就是POSCAR,那使用命令:**./poscar2data**,将会自动转换POSCAR文件,输出成一个新的data文件:lammps.data,即可完成。

 如果你的需要转换的文件不叫POSCAR,需要输出的文件想换一个名称,可以使用命令:**./poscar2data (输入文件名称) (输出文件名称)** ,例如: ./poscar2data POSCAR1 FeCoNi.data,那么脚本就会读入POSCAR1文件,输出lampps格式的FeCoNi.data文件。

!!!注意,如果你要输入可选参数的时候,第一个必须为输入文件的名称,第二个必须为输出文件的名称,如果只输入一个文件名称,则默认这个名称为输入文件的名称。

转载请注明出处:GitHub whitecrn

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 白色的蜡笔
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信