计算化学公社
标题:
计算packmol输入文件有效空间体积的小工具
[打印本页]
作者Author:
Graphite
时间:
2024-5-21 12:36
标题:
计算packmol输入文件有效空间体积的小工具
本帖最后由 Graphite 于 2024-5-22 09:32 编辑
在使用packmol时,如果我们定义了一些比较特殊的限制条件,例如inside box + outside sphere,会比较难以预估空间的体积、空间内能填入多少分子。
另外,由于分子是有体积的,我们按照立体几何计算得到的解析体积,实际上也不等同于真实能填入原子的体积。
比如以下情况,左图要将一些分子填入蓝色区域,但实际上红色圈中并不能容纳分子。右图的体积当定义比较特殊时,则比较难计算。
(, 下载次数 Times of downloads: 17)
上传 Uploaded
点击下载Click to download
这个小程序用单纯的打格点方法计算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
(, 下载次数 Times of downloads: 8)
上传 Uploaded
点击下载Click to download
示例:
./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分钟的区别
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3