计算化学公社

标题: gro文件扩胞的小脚本 [打印本页]

作者
Author:
slxc920113    时间: 2025-10-14 13:13
标题: gro文件扩胞的小脚本
本帖最后由 slxc920113 于 2025-10-14 14:12 编辑

最近做一些纤维结构的分子动力学模拟,用packmol创建的结构不太满意,而且耗时太长。于是用了二种策略,第一种是直接计算聚合物链段的转动惯量,然后让主轴对齐盒子的Z轴,指定中心位置直接用程序生成,但是这样的结构又不够随机。于是又想了一个办法,先用gmx insert-molecules 先随机创建一个狭长的盒子插入线性的聚合物链,盒子的x和y方向尽量小,try次数足够多,就可以随机创建一个比较满意的单链模型,然后再在x和y方向进行扩胞。于是就写了这么一个简单的小脚本。

(, 下载次数 Times of downloads: 0) (, 下载次数 Times of downloads: 0)

使用方法:
  1. # 基本用法:2x2x2扩胞
  2. python supercell.py input.gro -nx 2 -ny 2 -nz 2

  3. # 指定输出文件名
  4. python supercell.py input.gro -nx 3 -ny 1 -nz 2 -o output.gro

  5. # 只在z方向扩胞
  6. python supercell.py input.gro -nz 4
复制代码
  1. GROMACS GRO文件错位扩胞工具

  2. positional arguments:
  3.   input_file            输入的GRO文件

  4. optional arguments:
  5.   -h, --help            show this help message and exit
  6.   -nx NX                x方向扩胞倍数 (默认: 1)
  7.   -ny NY                y方向扩胞倍数 (默认: 1)
  8.   -nz NZ                z方向扩胞倍数 (默认: 1)
  9.   --x-stagger-y X_STAGGER_Y
  10.                         沿x方向扩胞时,每层在y方向的偏移量 (nm)
  11.   --x-stagger-z X_STAGGER_Z
  12.                         沿x方向扩胞时,每层在z方向的偏移量 (nm)
  13.   --y-stagger-x Y_STAGGER_X
  14.                         沿y方向扩胞时,每层在x方向的偏移量 (nm)
  15.   --y-stagger-z Y_STAGGER_Z
  16.                         沿y方向扩胞时,每层在z方向的偏移量 (nm)
  17.   --z-stagger-x Z_STAGGER_X
  18.                         沿z方向扩胞时,每层在x方向的偏移量 (nm)
  19.   --z-stagger-y Z_STAGGER_Y
  20.                         沿z方向扩胞时,每层在y方向的偏移量 (nm)
  21.   -o OUTPUT, --output OUTPUT
  22.                         输出文件名 (默认: 自动生成)
复制代码


(, 下载次数 Times of downloads: 8)


作者
Author:
student0618    时间: 2025-10-14 13:30
本帖最后由 student0618 于 2025-10-14 13:39 编辑

gmx genconf 也有类似的功能
https://manual.gromacs.org/current/onlinehelp/gmx-genconf.html

e.g. editconf 定盒子大小及对齐polymer 轴及x/y/z轴,genconf扩胞。

作者
Author:
slxc920113    时间: 2025-10-14 14:12
student0618 发表于 2025-10-14 13:30
gmx genconf 也有类似的功能
https://manual.gromacs.org/current/onlinehelp/gmx-genconf.html

我知道,但是我需要扩胞的同时沿着两外两个矢量进行平移,形成密堆积的结构,所以最后还是自己写脚本完成了。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3