计算化学公社

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

[Multiwfn资源与经验] 分享关于使用Multiwfn 批量渲染制作动画输出不完整和乱序问题的起因与解决方案

[复制链接 Copy URL]

3

帖子

0

威望

235

eV
积分
238

Level 3 能力者

最近在参考公社经典教程《制作动画分析电子结构特征》(http://sobereva.com/86 )对 IRC(内反应坐标)路径上的帧文件进行 ELF(电子定位函数)填色图批量渲染时,遇到了Multiwfn 在 Windows 批处理下总是在运行到特定张数时自动停止,且排查发现处理文件的顺序是混乱的问题。经过排查,成功找到了问题所在。在此把问题成因和 Windows下的避坑解决方法分享给大家,希望帮后面的同学少走弯路。

遇到的现象和成因:
1.当批量处理文件的总数超过了 100 张或更多时,输出的文件的顺序是混乱的。虽然不知道主要原因是什么,但是目前认为是因为在Windows 的 NTFS 文件系统下,如果不加排序参数,dir /b 输出文件并不是按文件名数字大小排序的,而是按照文件在系统底层(MFT 主文件表)的物理写入顺序吐出的。由于多核写入或缓存原因,其他帧可能会被提前吐出来,导致乱序。
2.命令流错位导致.txt里预设的静态指令与 Multiwfn 实际索要的指令步调错位。由于IRC 路径上不同帧的分子空间尺寸是动态变化的,这导致预设的指令可能不适用,导致Multiwfn 提前耗尽了输入流,在读不到标准输入的情况下产生错误并结束任务,并且自动退出终端。某些情况下指令步调可能刚好在某一个文件又开始对上造成感官上没有出错的错觉。

解决方案:
1.只需在批处理脚本(.bat文件)里加上 /on 指令。/on 指令会强制 Windows 按照 Name (名称) 的正序进行排列。例子,原本的命令行是 for /f %%i in ('dir H2tri\*.wfn /b') do Multiwfn H2tri\%%i < batchcolor.txt,现在只需要在 /b 后面加上 /on,写成 for /f %%i in ('dir H2tri\*.wfn /b /on') do Multiwfn H2tri\%%i < batchcolor.txt 就可以完美解决了。
2.为了可以追溯/检查具体原因,可以直接按下快捷键 Win + R,输入 cmd 并回车,打开命令提示符窗口。使用 cd 命令切换到你的工作目录(或者 Multiwfn 所在的文件夹)。例如,cd /d D:\Multiwfn_path。在窗口中手动输入批处理脚本文件名(.bat文件)并回车。这样即使 Multiwfn闪退了,终端窗口依然会停留在屏幕上,方便查看具体报错位置。Multiwfn都会直白的写出具体报错原因,相信只要仔细阅读一定可以找到并解决问题。除此之外也可以在运行命令最后加上 > output.log 来输出日志文件。

希望这个经验帖子能对经常制作波函数/电子结构特征动画的同学有所帮助!感谢卢老师开发出 Multiwfn 这么强大的科研神器!

本版积分规则 Credits rule

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

GMT+8, 2026-7-13 13:50 , Processed in 0.201764 second(s), 21 queries , Gzip On.

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