Packmol专题

Packmol定向、周期边界与分层界面

18组实际装箱输入,逐原子检查几何范围、刚性分子与最短距离。

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

下载18组完整输入、输出、检查和绘图脚本。解压后进入packmol-constraints子目录。

先运行,再看坐标#

本组使用Packmol 21.2.3,GFortran 13.3串行构建;ASE 3.29.0生成水/甲醇模板并独立检查输出。在分配的一个CPU核上可运行:

bash run.sh

只运行其中一个例子时,进入该目录后执行:

module purge
module load packmol/21.2.3
packmol < packmol.inp > packmol.log
head -n 8 packed.xyz

Packmol只摆放已有刚性分子,不生成力场、拓扑或平衡态。完成装箱后还需要为MD准备参数、能量最小化和适当平衡,参见接GROMACS的完整水盒流程。

下面的输入均已实际运行。tolerance 2.0约束不同分子之间的原子距离,不会把同一水分子内部O–H键拉成2 Å。几何约束通常作用于所有被选择原子,不仅是分子质心。语法分类可查Packmol官方指南,本页数值和图来自配套算例。

圆柱内装箱#

目录:inside-cylinder。原子数60,实测不同分子最短距离2.203370 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 20
inside cylinder 0 0 -7 0 0 1 6 14
end structure

排除有限圆柱区域#

目录:outside-cylinder。原子数60,实测不同分子最短距离2.149022 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 20
inside box -10 -10 -10 10 10 10
outside cylinder 0 0 -7 0 0 1 4 14
end structure

外部约束本身不提供有限边界,因此本例同时给定外层盒子。不要只写排除区域后期待得到有限大小的装箱。

有限圆柱之外包括径向外侧,也包括两个端盖之外。本例独立检查两种情况;不要把它误当成无限长圆柱的径向排除。

高斯曲面上方#

目录:over-xygauss。原子数60,实测不同分子最短距离2.230227 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 20
inside box -10 -10 -10 10 10 10
over xygauss 0 0 4 5 0 3
end structure

实际坐标按z与3 exp(−x²/32−y²/50)的大小关系检查,上方用≥、下方用≤。脚本直接检查当前安装版本的输出,而不只根据关键词猜测朝向。

高斯曲面下方#

目录:below-xygauss。原子数60,实测不同分子最短距离2.180491 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 20
inside box -10 -10 -10 10 10 10
below xygauss 0 0 4 5 0 3
end structure

实际坐标按z与3 exp(−x²/32−y²/50)的大小关系检查,上方用≥、下方用≤。脚本直接检查当前安装版本的输出,而不只根据关键词猜测朝向。

只约束指定原子#

目录:atom-selection。原子数60,实测不同分子最短距离2.197062 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 20
inside box -10 -10 -10 10 10 10
atoms 1
above plane 0 0 1 2
end atoms
end structure

水模板第1个原子为O,只有O受z≥2 Å的额外限制;H不应被错误计入这项局部约束。

保持分子的输入取向#

目录:orientation。原子数60,实测不同分子最短距离2.226524 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 20
inside box -10 -10 -10 10 10 10
constrain_rotation x 0 0
constrain_rotation y 0 0
constrain_rotation z 0 0
end structure

三个旋转自由度都限制为零,输出分子内部方向与模板一致。这里constrain_rotation的参数采用度;不要与fixed中的旋转弧度混淆。

周期边界下的水盒#

目录:periodic-water。原子数60,实测不同分子最短距离2.201668 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
pbc 20 20 20
structure water.xyz
number 20

end structure

最短距离使用20 Å盒子的最小镜像计算。仅用普通笛卡尔距离会漏掉跨盒边界的近接触。XYZ不保存完整MD拓扑和盒子语义,后续转换时需要显式保留盒长。

水与甲醇分层初始结构#

目录:water-methanol-interface。原子数120,实测不同分子最短距离2.019042 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
pbc -10 -10 -10 10 10 10
structure water.xyz
number 20
below plane 0 0 1 -1
end structure
structure methanol.xyz
number 10
above plane 0 0 1 1
end structure

水放在z≤−1 Å,甲醇放在z≥1 Å。二者通常可互溶,这里只是人为分层初态,不能据此宣称存在稳定相界面。周期边界的另一侧也要检查最短距离。

固定几何中心与外部溶剂壳#

目录:fixed-centered-water。原子数63,实测不同分子最短距离2.200000 Å。

tolerance 2.0
filetype xyz
output packed.xyz
seed 27129
nloop 300
precision 0.000001
structure water.xyz
number 1
center
fixed 2 3 4 0 0 0
end structure
structure water.xyz
number 20
inside sphere 2 3 4 9
outside sphere 2 3 4 4
end structure

center采用原子坐标的算术平均中心,不按原子质量加权。本例固定水的几何中心为(2,3,4) Å,另外20个水位于半径4–9 Å的壳中;固定分子保持输入方向。

实际结构投影#

九组实际装箱坐标的x–z投影

图是x–z投影,隐藏的y坐标仍参与所有距离和约束检查;不能仅凭投影中两点接近就认定原子重叠。单例高清图、完整XYZ和原始日志均在下载包内。

检查自己的结果#

脚本在每个例子后检查分子数量、分子内部距离、分子间最短距离和相应几何不等式。重复运行会覆盖该例输出,请把自己修改的输入保存在另一个目录。Success!有参考价值,但仍应检查坐标和实际几何;增加分子数后可能因空间不足而无法满足要求。

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

查看配图

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

100%查看原图 ↗