.xyz文件_LAMMPS data文件创建工具--moltemplate

一 介绍

长久以来,lammps的数据文件构建就是一个大问题(对我来说)。一方面,LAMMPS的数据格式比较特殊,很多软件不能直接导出; 另一方面小分子到大分子的变换,大分子在系统中的排布和大分子中的拓扑结构都需要牵扯很多的精力。经过长时间的试错,我算是终于找到一个比较合理且简约的技术栈,可以直接生成lammps所需的in文件和data文件。

v2-3afd90cfc7de3c062596ec3190d5bc7f_b.jpg

如图所示,整个技术栈分为:

  1. 基本绘图:绘制基本的单元,如高分子结构单元,单个水分子或者甲烷分子等;
  2. 数据文件:导出成常见格式的数据文件,如PDB,XYZ;
  3. [空间排布]:packmol可以自动地根据所设置的限制向系统中填放单元。比如想向C60笼中填放原子,只需要一行命令将允许范围限制在球内即可;
  4. 生成工具:moltemplate可以操作已有的数据文件,在系统中复制,变换和随机,同时根据已有的拓扑结构补充生成键角二面角等信息,最后生成lammps所需的in文件和data文件。

由此,得到的所有文件都可以直接使用lammps运行。此套技术栈的好处是,可以接受各种格式的数据文件并且可以轻松地操纵它们,而且都是开源的,安装方便快捷占地小。开发moltemplate的人同样也是lammps的主程,在手册中他成这款软件是lammps的前端(front-end)

唯一的缺点是,moltemplate(包括packmol)手册有如16年以前的lammps手册,比较 ……随意洒脱。

二 文件结构

moltemplate本身具有导入(import)和继承(inherit)功能,因此我们可以尽量地把文件区分按照功能区分开。当然文件名都是可以自定义的,这里只是介绍一个思路,告诉各位应该怎样上手。

第一部分是forcefield.lt 这个文件中储存着lammps的系统和力场参数。

# -- ForceField -- #

ForceField{

    write_once("In Init"){
        
        units           lj
        boundary        p p p 
        
        atom_style      full
        pair_s
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值