请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 932|回复: 7

[Multiwfn资源与经验] Windows下Multiwfn批处理生成填色图的脚本

[复制链接]

38

帖子

0

威望

330

eV
积分
368

Level 3 能力者

发表于 2018-8-3 08:05:51 | 显示全部楼层 |阅读模式
本帖最后由 exity 于 2018-8-3 09:36 编辑

今天社长刚刚教了一次怎么用bat脚本实现multiwfn快速输出填色图的方法,非常方便,而且不会出错,掌握后可以提升N个数量级的效率,分享给大家,共同进步。
以批量生成LOL填色图为例,过程如下:


注意1:以下提到的所有文件都必须放在multiwfn文件夹中。
意2:可以修改下文中的LOL.txt文件来实现其他图形批量输出的功能。


1 下载最新版的Multiwfn,http://sobereva.com/multiwfn/,目前最新稳定版是3.5,测试版为3.6(dev),建议总是下载最新版本。

2 解压缩,把计算好的"*.wfn"文件放在Multiwfn文件夹中,wfn的生成参考“详谈Multiwfn支持的输入文件类型、产生方法以及相互转换”一文。

3 在解压好的Multiwfn文件夹中找到"settings.ini"文件,用记事本,notepad++等文本编辑器打开,搜索"silent"关键词,定位到"isilent= 0"一行,把0改为1,保存退出。(这一步是为了开启Multiwfn的silent模式,在此模式中,不会有窗口弹出导致运行中断)

4 在Multiwfn文件夹内新建一个LOL.txt文件,此文件是Multiwfn读取输入命令的顺序,即和你手工输入的命令的顺序一致,此文件可以命名为任何你想要的名字,保证半角,没有奇怪的字符即可,LOL.txt内容如下:(紫色字体,不包括===)
===
4
10
1
1000,1000
1
1.2
2
3
5
0,0
3
0.5
11
5
12
1,0
8
1
0
===

5 在Multiwfn文件夹内新建批处理LOL_batch.bat文件,内容如下:(不包括上下的===号)
===
for /f %%i in ('dir *.wfn /b') do (
Multiwfn %%i < LOL.txt >
rename dislin.png %%~ni.png
)
===

DONE!

最终效果是,如果你有一系列命名为abc.wfn, bca.wfn, cba.wfn的文件放在multiwfn文件夹下,双击LOL_batch.bat后就能得到abc.png, bca.png, cba.png的LOL填色图,非常方便。

PS:
如果为了清爽,希望把"*.wfn"文件全部集中在一个文件夹里,例如 “c:\LOL”,则需要对LOL_batch.bat进行改写,内容如下

===
for /f %%i in ('dir c:\LOL\*.wfn /b') do (
Multiwfn c:\LOL\%%i < LOL.txt >
move dislin.png c:\LOL\%%~ni.png
)
===

这样就可以把图片输出到“c:\LOL”里面了,此bat文件还是要放在Multiwfn文件夹里的。

这次真的DONE!

还在研究怎么把bat也放到其他文件夹里的方法,貌似需要写入multiwfn的环境变量之类的,还不会弄。
反正下面这样写是不行的,期待大神出现

===
for /f %%i in ('dir c:\LOL\*.wfn /b') do (
c:\multiwfn所在的路径\Multiwfn c:\LOL\%%i < LOL.txt >
move dislin.png c:\LOL\%%~ni.png
)
===



李博士@liyuanhe211 提供了最后一个问题的解决方案
===
cd c:\multiwfn所在的路径
for /f %%i in ('dir c:\LOL\*.wfn /b') do (
Multiwfn c:\LOL\%%i < LOL.txt >
move dislin.png c:\LOL\%%~ni.png
)
===
这样的bat文件就能和wfn一起放在另外的文件夹里了(貌似这个bat文件放在任何地方都行了。)!Problem solved!



DONE!












评分

参与人数 2eV +15 收起 理由
wangyj + 5 谢谢分享
sobereva + 10

查看全部评分

2339

帖子

23

威望

7841

eV
积分
10640

Level 6 (一方通行)

发表于 2018-8-3 08:45:46 | 显示全部楼层
最后一个在脚本最上面写“cd c:\multiwfn所在的路径”就可以了

38

帖子

0

威望

330

eV
积分
368

Level 3 能力者

 楼主| 发表于 2018-8-3 08:54:40 | 显示全部楼层
liyuanhe211 发表于 2018-8-3 08:45
最后一个在脚本最上面写“cd c:\multiwfn所在的路径”就可以了

厉害,problem solved!

1万

帖子

25

威望

1万

eV
积分
36401

管理员

公社社长

发表于 2018-8-3 09:08:10 | 显示全部楼层
刚在主页更新了Multiwfn 3.6(dev)版手册,把之前介绍silent方式和批处理运行的章节5.2、5.3做了扩充,并且添加了在Linux下批处理运行对应的脚本,在linux下运行的人可以看看。

掌握批处理方式运行是极其重要的。之前也有很多Multiwfn的博文利用了批处理方式运行Multiwfn,例如以下文章,有兴趣者可以看看
使用Multiwfn做自然跃迁轨道(NTO)分析
http://sobereva.com/377
制作动画分析电子结构特征
http://sobereva.com/86
通过键级曲线和ELF/LOL/RDG等值面动画研究化学反应过程
http://sobereva.com/200

PS:凡是用过批处理执行Multiwfn的人,就肯定不会说:“要是做成全图形界面多好”这种话。

对DOS下批处理文件编写感兴趣者可以看看
从高斯windows下的批量执行谈dos批处理文件
http://sobereva.com/6

建议总是下载最新版本(目前是3.6(dev)),对3.5做了极大的改进,而且也修复了不少bug(见主页update history的说明)
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)
计算化学公社论坛:http://bbs.keinsci.com(高水平、高人气、综合性计算化学交流论坛)
思想家公社QQ群1号:18616395,2号:466017436。用于讨论理论、计算化学,两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。研究方向和理论、计算化学无关者勿加,以免浪费宝贵的空位

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

38

帖子

0

威望

330

eV
积分
368

Level 3 能力者

 楼主| 发表于 2018-8-3 09:19:14 | 显示全部楼层
sobereva 发表于 2018-8-3 09:08
刚在主页更新了Multiwfn 3.6(dev)版手册,把之前介绍silent方式和批处理运行的章节5.2、5.3做了扩充,并且 ...

已做修改!
1 下载最新版的multiwfn,http://sobereva.com/multiwfn/,目前最新稳定版是3.5,测试版为3.6(dev),建议总是下载最新版本

批处理实在是方便,但我脑补了一下,貌似函数的和、差、积等操作似乎不太容易用批处理来实现,社长有没有现成的脚本例子?:D
例如fukui function里的 f+,f0,f-之间的操作。

20

帖子

0

威望

462

eV
积分
482

Level 3 能力者

发表于 2018-8-3 20:56:46 | 显示全部楼层
Linux下和、差、积可通过echobc命令实现批处理。
DOS下等待各路大神指点。

1万

帖子

25

威望

1万

eV
积分
36401

管理员

公社社长

发表于 2018-8-4 02:43:26 | 显示全部楼层
exity 发表于 2018-8-3 09:19
已做修改!
1 下载最新版的multiwfn,http://sobereva.com/multiwfn/,目前最新稳定版是3.5,测试版为3. ...


比如计算双描述符,等价于计算f+和f-的差值,稍微推导一下就知道应该怎么利用Multiwfn的自定义操作(custom operation)进行相互运算来得到,看Multiwfn手册4.5.4节的例子

另外,对于没法一次通过Multiwfn里自定义操作实现的函数间的运算,可以算完一个函数格点数据后就导出一次cub文件,利用Multiwfn主功能13里的格点文件相互运算功能来处理,手册4.13.2节有例子。

Multiwfn的设计极度灵活,对实空间函数的分析没有做不到的。
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)
计算化学公社论坛:http://bbs.keinsci.com(高水平、高人气、综合性计算化学交流论坛)
思想家公社QQ群1号:18616395,2号:466017436。用于讨论理论、计算化学,两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。研究方向和理论、计算化学无关者勿加,以免浪费宝贵的空位

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

3

帖子

0

威望

333

eV
积分
336

Level 3 能力者

发表于 2018-8-20 10:37:08 | 显示全部楼层
本帖最后由 hokking 于 2018-8-20 13:28 编辑

已解决,把“>”改成“&”可用

--------------------------------------------------

我用您给的例子试着做了一下,发现可以生成一批dislin.png文件,但重命名操作或者文件移动操作无法进行,同时出现“forrtl: severe (24): end-of-file during read, unit -4, file CONIN$”错误(按照multiwfn手册中所讲似乎可以忽略?),不知如何解决?
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2018-12-19 20:48 , Processed in 0.118856 second(s), 25 queries .

快速回复 返回顶部 返回列表