计算化学公社
标题:
PES——基于MATLAB的势能面可视化程序
[打印本页]
作者Author:
Freeman
时间:
2020-7-4 22:04
标题:
PES——基于MATLAB的势能面可视化程序
本帖最后由 Freeman 于 2020-7-8 13:08 编辑
×××××××××××××××××××××××××××××××
2020.7.8 更新 2.0
新功能:
支持使用虚原子辅助定位的扫描,只需在log文件里将虚原子变量的字母改成随便某个定值即可。虚原子不会显示在分子模型中。
Linux版本下载地址:
链接:
https://pan.baidu.com/s/1RE6OtkZwYySBWTu4H3X9QA
密码: jrai
×××××××××××××××××××××××××××××××
2020.7.6 更新
新功能:
1. 原先只能用surface图表示两个扫描变量(二维扫描),现在可以用scatter(散点)图表示一或二或三个扫描变量;
2. 可以在一个分子模型上显示多个势能面;
(, 下载次数 Times of downloads: 21)
上传 Uploaded
点击下载Click to download
图为一个原子在yz、zx和xy平面上扫描的势能面散点图。
3. 可以用不涉及插值的scatter来表示键长以及其他难以用surface表示的情况,但是图不太好看。
(, 下载次数 Times of downloads: 24)
上传 Uploaded
点击下载Click to download
图为扫描二氧化碳分子中一个氧原子的键长和键角的势能散点图。
现存bug:
1. 使用内坐标时,如果键长是扫描变量且与坐标轴垂直或平行就不能用surface表示;
2. 使用surface做图,不能表示被扫描的原子坐标的一组(x,y)对应两个或多个z的情况。
这两个bug的根源在于MATLAB不能进行多值二元函数插值(有大佬自己开发了多值一元函数的插值,然而对PES并没什么用,我也看不懂他写的代码)。今后的PES版本也许能绕过二元函数插值而实现同样的功能。
×××××××××××××××××××××××××××××××
2020.7.4 原贴
大家好。我这两天正研究一个原子进攻一个分子的方向。这就需要扫描势能面。GaussView提供势能面的可视化功能,但貌似只支持把势能面画在平面上,横轴纵轴是两个扫描变量,不是很直观。于是我用MATLAB写了个势能面可视化程序,PES,可以直观地把势能面显示在分子模型上。
示例:
例1:扫描二氧化碳分子中一个氧原子的位置对体系能量的影响
(, 下载次数 Times of downloads: 21)
上传 Uploaded
点击下载Click to download
氧原子在一个有颜色的矩形平面内运动,颜色越深代表能量越低。这里被扫描的氧原子不画出来,因为它的位置本来就是不定的。由图可见,颜色最深的地方是个弧形,那就是氧原子所在的能量最低处。
例2:扫描过氧化氢分子中一个氢原子的位置对体系能量的影响
(, 下载次数 Times of downloads: 19)
上传 Uploaded
点击下载Click to download
氢原子在一个球面上运动。
安装:
私信我或发我邮箱
2017301040168@whu.edu.cn
要安装包(主程序不大,但是还需要MATLAB程序的安装环境,大约2GB,巨大得没法上传论坛),并告知您的操作系统。
Windows版本:下载安装包;解压后不停点“下一步”,记得在桌面上创建快捷方式;点开,根据提示使用。
Linux版本:
1. 下载安装包;运行 ${安装目录}/for_redistribution/MyAppInstaller_mcr.install ;选择主程序安装目录,将默认路径的 '/usr' 改为'/home/{你的用户}';选择Runtime安装目录,将默认路径的 '/usr' 改为'/home/{你的用户}';不停点“下一步”;
2. 在终端中输入 which bash,回车,获得bash所在目录;在 /home/${你的用户} 目录下创建文本文档 PES.sh;第一行写 #!{刚才显示的bash目录},第二行写 PES_PATH='{主程序安装目录}',第三行写RUNTIME_PATH='{RUNTIME安装目录}',第四行写 ${PES_PATH} ${RUNTIME_PATH},具体如下图所示;保存,关闭;在终端中输入
chmod 750 -R PES.sh,回车;在终端中输入 ./PES.sh,即可使用。
(, 下载次数 Times of downloads: 24)
上传 Uploaded
点击下载Click to download
注意事项:
1. 该程序只支持Gaussian的输入输出文件;
2. 只能扫描某个坐标系下
同一个原子
的
两个变量
,例如二氧化碳分子的氧原子的x坐标和y坐标,或者过氧化氢分子的氢原子相对于分子其他部分的键角和二面角;
3. 不要扫描键长,因为会出现不明所以的bug(将来的版本可能会修正这个bug);
4. 输入的gjf文件最好要有键连关系,这样才能显示化学键。
引用:
我打算把这个小程序加进以后发的文章里,但这篇文章八字还没一撇。如果对您有用的话,请先引用这个网页。
各种问题、建议或意见,都请令我知晓。不胜感激。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3