计算化学初学者的几个常见问题

计算化学初学者的一些常见问题

文/Sobereva



Q:运行某个命令/脚本后操作系统提示“xxx command not found”、“xxx不是内部或外部命令”是怎么回事?(xxx是输入的命令里的或者脚本里的要运行的程序的可执行文件名)
A:这说明xxx命令找不到。几种解决方法(以运行Multiwfn_3.8目录下的Multiwfn.exe为例):
• 把xxx替换成可执行文件的具体路径,Windows下形式诸如E:\study\Multiwfn_3.8\Multiwfn.exe,Linux下形式诸如/sob/Multiwfn_3.8/Multiwfn.exe。
• 把可执行文件所在目录加入到PATH环境变量下,然后重新进入终端使环境变量生效。PATH环境变量在Windows和Linux系统下都有,操作系统会自动在里面提供的各个目录下依次搜索你运行的可执行文件,一旦找到就会运行。Linux下运行诸如export PATH=$PATH:/sob/Multiwfn_3.8就把/sob/Multiwfn_3.8目录加入了PATH环境变量(可以输入vi ~/.bashrc命令编辑用户目录下的.bashrc文件,然后将这行命令插入到这个文件的最后。每次启动终端时这行命令会自动执行)。Windows 10下进入“高级系统设置”-“环境变量”,用户变量列表里选择Path,点“编辑”-“新建”,输入E:\study\Multiwfn_3.8,再点“确定”就把E:\study\Multiwfn_3.8加入了。
• 如果是Windows的cmd命令行环境,可以先运行cd D:\study\Multiwfn_3.8\,再运行D:,从而将当前目录(即命令行提示符显示的目录)切换到D:\study\Multiwfn_3.8,之后直接输入Multiwfn.exe即可启动。如果是Windows的PowerShell命令行环境或者Linux下,即便可执行文件就在当前目录下,也需要在其前面明确写./来说明此文件是在当前目录下,例如./Multiwfn.exe。
注1:在Windows的cmd环境下执行命令时,可执行文件的.exe后缀可以省略。
注2:Linux下可以用echo %PATH、cmd下可以用echo %Path%来检查PATH环境变量当前的定义。


Q:Gaussian任务没有报错,但是却停了怎么办?
A:有以下可能原因
1 巧合。尝试重算,或者尝试其它也能达到类似目的的关键词
2 Gaussian的bug。尝试其它版本或其它平台的Gaussian
3 当前Gaussian版本和运行环境有兼容性问题。尝试其它版本或其它平台的Gaussian。对于Linux尝试装其它版本或其它发行版Linux再试,对于Windows把各种安全防护程序都关掉再试。也尝试指定不同的核数和内存使用量再试。或者换成其它机子
4 任务被bad people杀了。重算,并找管理员告状


Q:为什么强烈不建议用GaussView的Calculate - Calculation setup界面产生输入文件?
A:这个界面纯粹是给外行人用的,非常弱,设计得也颇差。很多常用的理论方法如M06-2X、PBE0在里面都没法直接选,非常常用的def2系列基组在里面也没法用,用混合基组也很麻烦,Gaussian的大量功能靠这个界面根本用不了。纯粹靠利用此界面,至多只能使用Gaussian全部功能的1/4。而且Gaussian的关键词非常容易写,是所有量子化学程序里最简单的,用这个界面创建输入文件完全多此一举,远不如自己手写关键词快捷方便。内行人几乎没有用这个界面创建输入文件的,总是依赖于这个界面的初学者也永远不可能脱菜。内行Gaussian用户都只是靠GaussView用来创建和编辑结构,之后保存成gjf文件,自己用文本编辑器打开并手写关键词,然后提交给Gaussian计算。适合使用Calculation setup界面产生输入文件的情况也就是用QST2、QST3方法找过渡态的情况,由于这类任务的输入文件格式比较麻烦,所以才适合直接靠这个界面得到输入文件。PS:北京科音(www.keinsci.com)的量子化学培训里除了QST2、QST3外,都一律不用Calculation setup界面创建输入文件。我写的所有博文也一律不考虑读者用Calculation setup创建输入文件的情况。