计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1732|回复 Reply: 0
打印 Print 上一主题 Last thread 下一主题 Next thread

[程序/脚本开发] 计算packmol输入文件有效空间体积的小工具

[复制链接 Copy URL]

433

帖子

8

威望

4317

eV
积分
4910

Level 6 (一方通行)

石墨

本帖最后由 Graphite 于 2024-5-22 09:32 编辑

在使用packmol时,如果我们定义了一些比较特殊的限制条件,例如inside box + outside sphere,会比较难以预估空间的体积、空间内能填入多少分子。

另外,由于分子是有体积的,我们按照立体几何计算得到的解析体积,实际上也不等同于真实能填入原子的体积。

比如以下情况,左图要将一些分子填入蓝色区域,但实际上红色圈中并不能容纳分子。右图的体积当定义比较特殊时,则比较难计算。



这个小程序用单纯的打格点方法计算packmol定义的空间体积,。如红圈范围内的体积不会被考虑在内。工具是用C++ 20写的,只有linux版。10年以上老爷机小概率用不了。
对于体积小的情况,试探半径约等于大部分原子半径(1.0-1.5 A),体积很大的情况,则最多生成400万格点(体积很大的情况其实格点大了误差也不大)。
支持以下条件:
Inside Box
Outside Box
Inside Cube
Outside Cube
Inside Sphere
Outside Sphere
Above Plane
Below Plane
Inside Cylinder
Outside Cylinder
Inside Ellipsoid
Outside Ellipsoid

用法:./packmol_calc -f packmol_file
pcalc (120.62 KB, 下载次数 Times of downloads: 8)

示例:
./pcalc -f after-model.inp

Note: Be careful when multiple types of molecules puts into same space.
Note: 1.0 g/mL = 0.602 atomic_mass/A^3
Structure 1 Effective Volume: 2.27994e+06
Structure 2 Effective Volume: 2.27994e+06
Structure 3 Effective Volume: 2.27994e+06
Structure 4 Effective Volume: 2.27994e+06
Structure 5 Effective Volume: 2.64151e+06

另:
这破玩意用C++写竟然需要900行代码,写了两天...虽然纯粹的格点计算+指令集优化+-O3优化,动辄瞬间上亿格点很爽,但是用Python最多两个小时写完
真就是开发两小时计算1秒钟,和开发五分钟计算1分钟的区别

















评分 Rate

参与人数
Participants 3
威望 +1 eV +6 收起 理由
Reason
ChrisZheng + 5 GJ!
sobereva + 1
MercuryLamp + 1 GJ!

查看全部评分 View all ratings

自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-19 02:58 , Processed in 0.235226 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list