Packmol专题

Packmol水盒、混合溶剂与几何约束

五个真实装箱模型,完整输入、坐标检查以及GROMACS坐标转换。

更新于 2026-10-27约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

本文使用鸢算科技集群实际运行的小算例。先下载输入、完整脚本与参考数据并解压,以下命令从解压目录开始。reference 保存原始参考结果,自己的运行放在 work,避免覆盖。

1 一次运行五种小模型#

Packmol 21.2.3使用GFortran 13.3编译,为串行程序,不使用MPI或GPU。辅助脚本用ASE 3.29.0构造分子并检查坐标。

module purge
module load ase/3.29.0 packmol/21.2.3
mkdir -p work/packmol
cp scripts/packmol_examples.py work/packmol/
cd work/packmol
python packmol_examples.py

五个模型分别是30个水的方盒、20水+10甲醇混合物、40水球体、30水圆柱,以及中心固定一个水、外壳40水的体系。随机种子27127、最小分子间原子距离目标2.0 Å。

2 单独运行一个Packmol输入#

脚本生成各目录中的分子坐标和packmol.inp后,可以复制到新目录独立运行:

mkdir water-box-rerun
cp water-box/H2O.xyz water-box/packmol.inp water-box-rerun/
cd water-box-rerun
packmol < packmol.inp > packmol.log
tail packmol.log

方盒输入全文:

tolerance 2.0
filetype xyz
output packed.xyz
seed 27127
nloop 300
precision 0.000001

structure H2O.xyz
 number 30
 inside box 0. 0. 0. 15. 15. 15.
end structure

分子文件H2O.xyz:

3

O       0.000000000000000      0.000000000000000      0.119262000000000
H       0.000000000000000      0.763239000000000     -0.477047000000000
H       0.000000000000000     -0.763239000000000     -0.477047000000000

实际生成的30水分子方盒

3 更换几何约束与分子种类#

这些约束替换各structure ... end structure块中的几何行。每个原子都受约束,不只是分子质心。

inside sphere 0. 0. 0. 8.

inside cylinder 0. 0. 0. 0. 0. 1. 6. 15.

inside sphere 0. 0. 0. 9.
outside sphere 0. 0. 0. 4.

球半径8 Å;圆柱起点(0,0,0)、方向(0,0,1)、半径6 Å、长度15 Å。壳层同时使用inside和outside。固定中心分子使用 fixed 0. 0. 0. 0. 0. 0.,表示平移与旋转均为零。

实际生成的水和甲醇混合体系

圆柱内30水分子的实际坐标

4 对结果做几何检查#

模型 分子数 原子数 分子间最短原子距离/Å
water-box 30 90 2.160504
water-methanol 30 120 2.084356
water-sphere 40 120 2.146509
water-cylinder 30 90 2.200002
fixed-water-shell 41 123 2.188413

脚本逐项核对空间边界、不同分子的最短原子距离和分子内部几何;日志Success不能替代这些检查。当前例子没有施加周期装箱约束,后续设周期边界时必须再次检查跨边界重叠。

5 接到分子动力学软件#

水盒另输出packed.gro,写入15 Å盒长;GRO内部长度单位是nm,ASE会转换。读回后逐原子误差小于0.006 Å,来自GRO小数精度。GRO只有坐标,不会自动产生正确的GROMACS拓扑。 必须补充所用水模型、分子计数、约束和力场参数;转到LAMMPS同样需要分子拓扑、类型和势参数。先做能量最小化与平衡,不把这些低密度装箱示例视为平衡液体。

查看和复现配图#

下载包 figures 中是高清图片,可点击正文图片放大。reference 中保存数据与结果表;重新绘图可执行:

module purge
module load ase/3.29.0
mkdir -p work/replot
cp -r reference work/replot/
cp plot_reference.py work/replot/
cd work/replot
python plot_reference.py

不同教程共用此资料包;同一个脚本不需要重复下载。重新运行算例时使用新的工作目录。

方法与接口参考:Packmol官方用户指南。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗