计算化学公社

标题: Multiwfn能否使用命令行? [打印本页]

作者
Author:
zhangfuqiang    时间: 2021-7-25 19:50
标题: Multiwfn能否使用命令行?
Multiwfn能否使用类似linux下命令行? 比如生成1-100个轨道时用:Multiwnf *.fch 200 3 1-100 3 1 0 q 。多谢!




作者
Author:
ene    时间: 2021-7-25 22:52
你是想说Multiwfn支不支持regex语法吧,答案是不支持。不过你可以通过shell脚本自己实现这些功能。
作者
Author:
quanta    时间: 2021-7-25 23:03
可以,前提是你知道每一步要干什么,然后写成命令就完事了,手册第5章有一些例子,如果你会Windows或Linux里面的各种脚本语言,应该很容易弄明白。
作者
Author:
sobereva    时间: 2021-7-26 00:22
Multiwfn手册5.2、5.3节写明了

作者
Author:
zhangfuqiang    时间: 2021-7-26 09:59
本帖最后由 zhangfuqiang 于 2021-7-26 11:46 编辑

多谢!我想用C++直接通过命令行调用Multiwfn,命令写成一行,传给Multiwfn解析后执行。否则,还得写个文件或脚本,让Multiwfn来读,多了一层,有些麻烦。最近,写了个viewer,正在挂Multiwfn,写好后给大家用。能否通过改Multiwfn的源码简单实现?太复杂了就没必要了。


作者
Author:
lyj714    时间: 2021-7-26 12:57
本帖最后由 lyj714 于 2021-7-26 13:04 编辑

如果只是单纯的想在Linux下通过C/C++调用Multiwfn命令的话,你倒是可以直接使用system(cmd)或者popen去调用管道命令,比如echo -e "200\n3\n1-5\n3\n1\n0\nq\n" |Multiwfn  model.fchk这种。因为Multiwfn是Fortran写的我不确定能否简单改源码实现。。如果还需要在Windows调用的话,可能还是需要产生一个命令文本文件,然后通过输入重定向喂给Multiwfn (因为Windows下的管道不能够用\n)
作者
Author:
sobereva    时间: 2021-7-26 13:28
zhangfuqiang 发表于 2021-7-26 09:59
多谢!我想用C++直接通过命令行调用Multiwfn,命令写成一行,传给Multiwfn解析后执行。否则,还得写个文件 ...

没法简单改代码实现
必须通过管道或者重定向方式调用
作者
Author:
zhangfuqiang    时间: 2021-7-26 16:06
感谢各位的回答!两种方法我都试试。

作者
Author:
zhangfuqiang    时间: 2021-7-30 12:54
本帖最后由 zhangfuqiang 于 2021-7-30 16:40 编辑
zhangfuqiang 发表于 2021-7-26 16:06
感谢各位的回答!两种方法我都试试。

卢老师,可否可以加入这样得解析:Multiwfn butadiene.fch < ”200\n3\n1-5\n3\n1\n0\nq\n“。 或者,未来加入python/C++/C接口。Multiwfn太强大,更开放才是!刚才找到MCubeGen。
作者
Author:
sobereva    时间: 2021-8-12 05:26
zhangfuqiang 发表于 2021-7-30 12:54
卢老师,可否可以加入这样得解析:Multiwfn butadiene.fch < ”200\n3\n1-5\n3\n1\n0\nq\n“。 或者,未 ...

不支持
就用echo结合管道传输命令就已经很方便了
Multiwfn界面非常灵活,几乎所有重要的数据全都能导出,导出后再读取就完了,没有什么难的或实现不了的。没有打算纳入python或C++界面的计划。

更多信息见
详谈Multiwfn的命令行方式运行和批量运行的方法
http://sobereva.com/612http://bbs.keinsci.com/thread-24929-1-1.html






欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3