|
|
指的是Windows版和Linux版。起因是曾经发现在Windows系统下,Linux下常用的计算命令- g16 < input.gjf > output.out
复制代码
用不了,
会在输出下列信息后直接退出,返回值0。
Entering Gaussian System, Link 0=g16
Initial command:
C:\G16W\l1.exe ".\Gau-7396.inp" "no-output-file" /scrdir=".\"
调用的时候只能用
这个格式。
这导致了即使在GNU下载一个tee命令,加入PATH,也无法在Windows下用
- g16.exe < input.gjf | tee.exe output.out
复制代码 这样的方法把输出从屏幕复制一份到文件,方便监控。
当然这也不是个问题,毕竟Windows下也有g16w.exe这个GUI窗口可以监控。
但是当我尝试写External程序的时候,出现了同样的问题。
这个尝试是用一个g16进程去做几何优化,但是实际计算单点能和受力由另一个g16进程计算提供。这种用法的可能性卢老师在
《DFT-D色散校正的使用》(http://sobereva.com/210)中提过。
但实际上,如果不怕麻烦倒也是有办法让G09与DFT-D3程序直接相结合来进行优化的。在G09当中有个external关键词,可以在Route section中添加诸如external='./dftdopt.sh',这样在优化过程中Gaussian就会试图通过调用外部脚本./dftdopt.sh来得到它传回来的当前坐标下的能量、受力(甚至Hessian矩阵)。而外部脚本自身也可以调用g09。因此,如果我们自行编写这个脚本,让这个脚本读取优化过程中传递出来的当前步的坐标,并调用另一个g09计算出此坐标下的能量和受力(用force关键词),然后再让脚本调用DFT-D3程序算出色散校正的梯度并加到刚才的受力上,就得到了包含DFT-D3色散校正的当前坐标下的受力,再将受力传回给G09的优化进程。这样就等于G09在优化时就带着DFT-D3校正的效果了。但是据我所知没有这样的现成的脚本,自己写的话需要一定水平(难者不会,会者不难)
比如最初的输入文件叫test.gjf,内容如下:
%chk=test.chk
%CPU=0
# Opt=NoMicro External=".\geneGauForce.exe"
Title
0 1
C 0.00000000 1.39499067 0.00000000
C -1.20809735 0.69749533 0.00000000
C -1.20809735 -0.69749533 0.00000000
C 0.00000000 -1.39499067 0.00000000
C 1.20809735 -0.69749533 0.00000000
C 1.20809735 0.69749533 0.00000000
H 0.00000000 2.49460097 -0.00000000
H -2.16038781 1.24730049 -0.00000000
H -2.16038781 -1.24730049 -0.00000000
H 0.00000000 -2.49460097 -0.00000000
H 2.16038781 -1.24730049 -0.00000000
H 2.16038781 1.24730049 -0.00000000 按照卢老师在《将Gaussian与Grimme的xtb程序联用搜索过渡态、产生IRC、做振动分析》(http://sobereva.com/421)中的提示,用%CPU=0设定了串行计算这个任务,同时Opt加了NoMicro参数避免自动调用内置分子力学算法优化。然后External的geneGauForce.exe是自己写的程序,可以读取External传递给这个程序的第2个参数对应的文件(相关内容看的卢老师上面那篇博文)里面的电荷、自旋多重度、原子序号和坐标等信息,然后用这些新的信息生成一个Gaussian的input文件,用Force关键词计算。
实际运行的时候成功生成了新的Gaussian的input文件,比如叫calcgrad.gjf,内容如下:
# Force B3LYP/def2SVP
Calculates force
0 1
C 0.00000000 2.63615031 0.00000000
C 2.28297314 1.31807516 0.00000000
C 2.28297314 -1.31807516 0.00000000
C 0.00000000 -2.63615031 0.00000000
C -2.28297314 -1.31807516 0.00000000
C -2.28297314 1.31807516 0.00000000
H 0.00000000 4.71411262 0.00000000
H 4.08254129 2.35705631 0.00000000
H 4.08254129 -2.35705631 0.00000000
H 0.00000000 -4.71411262 0.00000000
H -4.08254129 -2.35705631 0.00000000
H -4.08254129 2.35705631 0.00000000 但是计算的时候和之前一样,calcgrad.out输出只有
Entering Gaussian System, Link 0=g16
Input=calcgrad.gjf
Output=calcgrad.out
Initial command:
C:\G16W\l1.exe ".\Gau-9304.inp" "calcgrad.out" /scrdir=".\" 然后就直接退出了。
请问这两个错误是不是相同的原因,有没有办法可以解决(除了换Linux)。谢谢!
|
|