Packmol定向、周期边界与分层界面
18组实际装箱输入,逐原子检查几何范围、刚性分子与最短距离。
阅读本篇目录
下载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投影,隐藏的y坐标仍参与所有距离和约束检查;不能仅凭投影中两点接近就认定原子重叠。单例高清图、完整XYZ和原始日志均在下载包内。
检查自己的结果#
脚本在每个例子后检查分子数量、分子内部距离、分子间最短距离和相应几何不等式。重复运行会覆盖该例输出,请把自己修改的输入保存在另一个目录。Success!有参考价值,但仍应检查坐标和实际几何;增加分子数后可能因空间不足而无法满足要求。