计算化学公社

标题: 是否有方法可以在Fortran动力学程序中实时调用量化程序? [打印本页]

作者
Author:
wxhwbh    时间: 2020-3-12 16:59
标题: 是否有方法可以在Fortran动力学程序中实时调用量化程序?
最近工作需要,想做一个实际体系的非绝热动力学模拟。动力学的方法是组里自己开发的,需要输入分子在每一个瞬间的电子结构计算得到的电子态能量、非绝热耦合等来计算受力。由于还涉及激发态计算,想电子结构这一部分调用成熟的量化软件(如高斯等)做CAS或TDDFT计算,但找了一下好像没有找到在自己的程序里调用量化软件的教程,想问问有没有一些方法可以实现在Fortran动力学程序中实时调用量化软件,或者有没有相关的教程?谢谢。

作者
Author:
zjxitcc    时间: 2020-3-12 17:13
不用教程。system函数打天下。
i = system('g16 a.gjf')
就行了。复杂一点的,把'g16 a.gjf'换成一个脚本/小程序,计算、读取力等信息全部塞进去。
作者
Author:
wxhwbh    时间: 2020-3-12 19:39
zjxitcc 发表于 2020-3-12 17:13
不用教程。system函数打天下。
i = system('g16 a.gjf')
就行了。复杂一点的,把'g16 a.gjf'换成一个脚本 ...

这倒是个方法。不过这样怎么判断高斯计算结束了呢?
作者
Author:
zjxitcc    时间: 2020-3-12 19:51
wxhwbh 发表于 2020-3-12 19:39
这倒是个方法。不过这样怎么判断高斯计算结束了呢?

高斯计算没结束前,Fortran代码会一直停留在这一行,若正常结束,返回值i为0,若异常结束,返回值i不为0.无论正常/异常,结束后才会到Fortran代码下一行。
作者
Author:
wxhwbh    时间: 2020-3-12 19:55
zjxitcc 发表于 2020-3-12 19:51
高斯计算没结束前,Fortran代码会一直停留在这一行,若正常结束,返回值i为0,若异常结束,返回值i不为0. ...

谢谢你,这个建议很有用。
不过我刚刚翻了一下高斯的手册,好像没说怎么计算非绝热耦合。。。可能得用别的程序了

作者
Author:
Mikasa    时间: 2020-3-12 20:58
可以参考/借用SHARC里的方法,通过一个Python script调用electronic structure package并处理其输出文件,将想要的信息通过文本文件传给dynamics code.
https://sharc-md.org/
作者
Author:
sobereva    时间: 2020-3-13 03:00
这就是个Fortran程序里调用Gaussian的例子,其中自动从跑完的输出中提取结果
优化长程校正泛函w参数的简便工具optDFTw
http://sobereva.com/346http://bbs.keinsci.com/thread-4100-1-1.html

molclus(http://www.keinsci.com/research/molclus.html)也是Fortran写的,也调用Gaussian来跑

Gaussian的TD里写上NonAdiabaticCoupling就可以输出TDDFT级别下的非绝热耦合矩阵元NACME。ORCA现在也能计算数值的NACME

作者
Author:
wxhwbh    时间: 2020-3-13 14:04
sobereva 发表于 2020-3-13 03:00
这就是个Fortran程序里调用Gaussian的例子,其中自动从跑完的输出中提取结果
优化长程校正泛函w参数的简便 ...

谢谢社长。不过NonAdiabaticCoupling好像只有g16支持,g09不支持。
ORCA的数值NACME与g16的NonAdiabaticCoupling相比差别会很大吗?
作者
Author:
sobereva    时间: 2020-3-14 19:42
wxhwbh 发表于 2020-3-13 14:04
谢谢社长。不过NonAdiabaticCoupling好像只有g16支持,g09不支持。
ORCA的数值NACME与g16的NonAdiabatic ...

这是g16的新功能
我没测试过,你可以试试
作者
Author:
wxhwbh    时间: 2020-3-15 11:58
本帖最后由 wxhwbh 于 2020-3-15 12:01 编辑
sobereva 发表于 2020-3-14 19:42
这是g16的新功能
我没测试过,你可以试试

谢谢社长,顺便再问一个问题。
社长了解哪些程序算能量导数和非绝热耦合比较方便吗?我试过ORCA和高斯16。ORCA的数值导数和耦合计算太慢,而且半经验如ZINDO居然不支持并行计算,用在动力学里效率太低。
高斯16的话TDDFT还没测过,估计不会很快。半经验ZINDO速度倒是很快,也可以计算NAC。不过输出文件里没有找到能量导数的信息,只有这么一句:
Exit since semi-empirical gradients are done elsewhere.
计算能量导数是不是还需要额外的设置?
还有没有别的程序支持计算激发态的这些量?半经验的算的快的可能更好。有篇文章说他是用MNDO程序的OM2/MRCI方法算的,但这个程序压根找不到。
作者
Author:
sobereva    时间: 2020-3-17 13:30
wxhwbh 发表于 2020-3-15 11:58
谢谢社长,顺便再问一个问题。
社长了解哪些程序算能量导数和非绝热耦合比较方便吗?我试过ORCA和高斯16 ...

GAMESS-US、Molpro、Q-Chem、Dalton、BDF都能算,支持的理论方法不同。我实际没试过,不好给出具体推荐。其中Molpro自己本身也有非绝热动力学功能。
作者
Author:
qmlearner    时间: 2020-4-8 10:24
wxhwbh 发表于 2020-3-15 11:58
谢谢社长,顺便再问一个问题。
社长了解哪些程序算能量导数和非绝热耦合比较方便吗?我试过ORCA和高斯16 ...

OM2/MRCI 方法是Axel Koslowski他们组内开发的方法吧,因为没有推广的原因,非合作者应该用不了。




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