前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用MOKIT从ORCA向其他量化程序传轨道

利用MOKIT从ORCA向其他量化程序传轨道

作者头像
用户7592569
发布2023-09-03 14:20:02
4460
发布2023-09-03 14:20:02
举报
文章被收录于专栏:量子化学量子化学

本文介绍如何使用MOKIT从ORCA向其他量化程序传轨道,有以下可能的用途:

(1)在ORCA中进行了RIJK或RIJCOSX加速的大体系HF/DFT计算,想传轨道给其他程序进行后续计算,或想产生fch文件方便可视化。

(2)在ORCA中进行了CCSD等post-HF计算,并产生了(自旋)自然轨道,想产生fch文件方便可视化。

(3)在ORCA中进行了CASSCF计算,想传CASSCF轨道给其他程序进行后续计算(例如MC-PDFT)。

(4)有些复杂体系可能ORCA可以收敛出特殊的SCF解,而目标程序难以得到,可以传轨道给目标程序。

为简洁起见,本文以水分子的RHF/def2-TZVP计算为例,输入文件h2o.inp内容如下

代码语言:javascript
复制
%pal nprocs 2 end
%maxcore 2000
! RHF def2-TZVP VeryTightSCF RIJCOSX def2/J defgrid3
* xyz 0 1
O    0.74608908   -0.25872442    0.0
H    1.70608908   -0.25872442    0.0
H    0.42563449    0.64621141    0.0
*

VeryTightSCF是笔者的个人喜好,但做实际计算至少应采用TightSCFdefgrid3表示使用尽可能高的COSX格点。该例使用了RIJCOSX加速,但这对轨道系数影响非常小,更何况用了比较精细的格点和严格的收敛限,预期得到的轨道与一个传统的RHF/def2-TZVP计算的轨道极其接近。用ORCA算完后运行orca_2mkl h2o -mkl转化生成h2o.mkl文件,下面我们以该文件为例展示如何传轨道,读者若使用本文功能,请务必顺带阅读文末注意事项

1. ORCA传轨道给AMESP

代码语言:javascript
复制
mkl2amo h2o.mkl

会产生h2o.amo和h2o.aip两个文件,分别含基组和轨道数据,坐标及关键词。为了让AMESP读入轨道,需要运行

代码语言:javascript
复制
a2m h2o.amo

即将h2o.amo文本文件转化为二进制文件h2o.mo,其中a2m是AMESP自带的小程序。

2. ORCA传轨道给BDF

代码语言:javascript
复制
mkl2bdf h2o.mkl

会产生H2O.BAS,h2o.inp和h2o.scforb三个文件,分别含基组数据,坐标及关键词,轨道数据。

3. ORCA传轨道给CFOUR

代码语言:javascript
复制
mkl2cfour h2o.mkl

会产生ZMAT, GENBAS和OLDMOS三个文件,注意CFOUR所用文件名是固定的。mkl2cfour目前有个缺点:在书写ORCA输入文件时需要使用CFOUR输出文件里体系的直角坐标,产生的mkl文件才能给mkl2cfour使用。这是因为CFOUR会旋转分子朝向,只有使用CFOUR输出文件里体系的直角坐标,其已经被旋转至程序标准朝向,才往往不会再被旋转了。如果遇到CFOUR的SCF不收敛,显然此时有输出文件,这点倒不成问题。

4. ORCA传轨道给Dalton

代码语言:javascript
复制
mkl2dal h2o.mkl

会产生h2o.dal和h2o.mol两个文件。

5. ORCA传轨道给GAMESS

代码语言:javascript
复制
mkl2inp h2o.mkl

会产生h2o.inp文件,内含坐标,基组数据和一些简单的关键词。

6. ORCA传轨道给Molpro

代码语言:javascript
复制
mkl2com h2o.mkl

会产生h2o.a和h2o.com文件,前者含Alpha轨道,后者含坐标,基组和关键词。如果是UHF计算,还会产生h2o.b文件(含Beta轨道)。

7. ORCA传轨道给OpenMolcas

代码语言:javascript
复制
mkl2inporb h2o.mkl

会产生h2o.INPORB和h2o.input文件。

8. ORCA传轨道给PSI4

代码语言:javascript
复制
mkl2psi h2o.mkl

会产生h2o.A和h2o.inp文件。前者含Alpha轨道,后者含坐标,基组和关键词。如果是UHF类型计算,还会有h2o.B文件(内含Beta轨道)。

9. ORCA传轨道给PySCF

代码语言:javascript
复制
mkl2py h2o.mkl

会产生h2o.fch和h2o.py文件。在运行.py文件时会从.fch文件里读取轨道。

10. ORCA传轨道给Q-Chem

代码语言:javascript
复制
mkl2qchem h2o.mkl

产生h2o.in文件和一个h2o文件夹。如果机器上有定义环境变量$QCSCRATCH,则h2o文件夹会自动被移至Q-Chem临时文件目录下,屏幕上提示你可以运行

代码语言:javascript
复制
qchem h2o.in h2o.out h2o

提交Q-Chem任务,最后一个参数表示读取h2o/目录下的轨道文件。若未定义$QCSCRATCH,h2o文件夹则放在当前目录下,读者需要时自行移动。

11. ORCA传轨道给Gaussian

该功能较重要,有几种不同使用方式,此处重点介绍。

11.1 使用mkl2gjf小程序

代码语言:javascript
复制
mkl2gjf h2o.mkl

会产生h2o.gjf文件,内含坐标、基组信息和轨道信息。注意Gaussian是支持从gjf文件中读取轨道的(关键词guess=cards)。

11.2 使用mkl2fch小程序

11.2.1 适用于常见HF/DFT/CASSCF轨道
代码语言:javascript
复制
mkl2fch h2o.mkl

若检测到当前目录下无h2o.fch文件,则会从零创建h2o.fch;若已存在h2o.fch文件,则仅将轨道信息写入h2o.fch。

11.2.2 适用于UNO、MP2、CCSD、CASSCF等自然轨道

此处以RI-MP2为例,输入文件计算级别部分为

代码语言:javascript
复制
! RHF def2-TZVP VeryTightSCF RIJCOSX def2/J defgrid3 RI-MP2 def2-TZVP/C
%mp2
 density unrelaxed
 natorbs true
end

关键词unrelaxed表示计算RI-MP2非弛豫密度对应的自然轨道,若改成relaxed即计算弛豫密度对应的自然轨道,笔者更推荐使用前者进行波函数分析。正常计算完后有一个文件叫h2o.mp2nat,它其实是gbw格式,运行如下几步

代码语言:javascript
复制
mv h2o.mp2nat h2o_mp2no.gbw
orca_2mkl h2o_mp2no -mkl
mkl2fch h2o_mp2no.mkl h2o_mp2no.fch -no

即生成含MP2自然轨道和轨道占据数的h2o_mp2no.fch文件。参数-no意为将自然轨道占据数写入生成的fch文件。用GaussView打开该文件可视化轨道时,箭头旁的数值不是轨道能量,而是轨道占据数;用Multiwfn打开该文件可视化轨道时,Ene处数值为轨道占据数,Occ处数值无意义。

11.2.3 适用于UMP2、UCCSD(自旋)自然轨道

这类计算输入文件较复杂,往往涉及到对称破缺单重态和检验波函数稳定性等问题,计算实例见笔者在计算化学公社论坛上的回帖

代码语言:javascript
复制
http://bbs.keinsci.com/thread-29762-1-1.html

这里我们假设已经获得了.mdci.nat文件,接着执行

代码语言:javascript
复制
mv O_singlet_o.mdci.nat O_singlet_CCSD.gbw         # 实际上是个gbw文件
orca_2mkl O_singlet_CCSD -mkl                      # 产生mkl
mkl2fch O_singlet_CCSD.mkl O_singlet_CCSD.fch -nso # 产生fch文件

参数-nso意为将alpha、beta自旋自然轨道占据数写入生成的fch文件。打开该文件可视化轨道时轨道占据数含义同11.2.2。自旋自然轨道有alpha、beta两套,有的读者可能认为不便分析,但自然轨道只有1套。为获得UCCSD自然轨道,可启动Python,运行

代码语言:javascript
复制
from mokit.lib.lo import gen_no_from_nso
gen_no_from_nso(fchname='O_singlet_CCSD.fch')

产生UCCSD自然轨道文件O_singlet_CCSD_NO.fch,只含一套轨道。 《在Multiwfn中基于fch产生自然轨道的方法与激发态波函数、自旋自然轨道分析实例》http://sobereva.com/403

注意事项

  1. 目前ORCA中开启点群对称性做计算只能旋转分子朝向、识别点群和不可约表示,并不能利用对称性加速计算,所以很少使用。是否开启点群对称性做计算不影响本文功能。但传轨道后在目标程序中应关闭对称性(生成的输入文件里写了这些关键词),笔者没有让各个小程序支持点群对称性的意向。
  2. 以上各个小程序都会产生目标程序输入文件,内含坐标和基组数据,不需要用户再去手动书写基组名称。强烈推荐用户使用该文件进行计算,既能免去手写基组的麻烦,也能保证传轨道时对应性更好。
  3. ORCA仅支持球谐型基函数,不支持笛卡尔型基函数,因此传轨道后产生的文件采用的也是球谐型基函数进行计算。
  4. 若ORCA的SCF有上千a.u.的剧烈振荡,很可能是出现了基函数线性依赖导致的,此时即使侥幸收敛了能量也未必靠谱,需要在输入文件里加上
代码语言:javascript
复制
%scf 
 sthresh 1e-6
end

此阈值是Gaussian和GAMESS处理基函数线性依赖的默认值,比较靠谱。

  1. 对于ORCA产生的.mp2nat,.mdci.nat和.nbo这些实际上是gbw格式的文件,转化成mkl文件前除了修改文件名外,还有一种办法
代码语言:javascript
复制
orca_2mkl h2o.mp2nat h2o_mp2no.mkl -mkl -anyorbs

就是两个文件名参数都带上扩展名,然后在最后加-anyorbs参数,可省去改名麻烦。

  1. mkl文件有个缺点是不含赝势信息,笔者曾在ORCA官方论坛上发帖建议未来ORCA在mkl文件中增加赝势信息,但ORCA开发者表示目前没兴趣。若读者在计算中使用全电子基组,自然无此问题;若用了赝势,按上文操作产生其他量化程序的文件不会含赝势信息,即使轨道系数正确,SCF也会剧烈振荡。这里笔者推荐一种解决办法:

Step 1. 先用Gaussian算个几秒的任务 这里以二甲基锌(ZnMe2)为例,假设我们对Zn用SDD,gjf内容如下

代码语言:javascript
复制
%chk=ZnMe2.chk
#p RHF genecp nosymm int=nobasistransform guess(only,save)

title

0 1
[ZnMe2坐标,略]

H C 0
cc-pVDZ
****
Zn 0
SDD
****

Zn 0
SDD


关键词only表示构建SCF初猜后即退出程序,即使大体系耗时也只有秒级别。若读者想让Gaussian正常算完,获得收敛的RHF轨道,可以删去guess(only,save)。正常结束后获得ZnMe2.chk文件。

Step 2. 获得含赝势的fch文件和ORCA相关文件 执行

代码语言:javascript
复制
fch2mkl ZnMe2.chk

随即产生ZnMe2.fch,ZnMe2_o.inp和ZnMe2_o.mkl文件,现在我们就有了一个含赝势信息的fch文件。ZnMe2_o.mkl含有来自Gaussian的轨道,除非有特殊计算目的,否则一般推荐使用该mkl文件,即运行

代码语言:javascript
复制
orca_2mkl ZnMe2_o -gbw

将mkl转化为gbw文件。我们用ZnMe2_o.inp文件在ORCA中做目标计算,最后把轨道传回已存在的fch文件

代码语言:javascript
复制
orca_2mkl ZnMe2_o -mkl   # 假设ZnMe2_o.gbw已被更新,重新产生mkl
cp ZnMe2.fch ZnMe2_o.fch # 备份一下,以防覆盖
mkl2fch ZnMe2_o.mkl      # 将轨道传回ZnMe2_o.fch

后续可以使用fch2inpfch2inporbfch2combas_fch2py等小程序传给其他量化程序做计算,且均含赝势信息。mkl2fch检测到有fch文件存在时会实直接使用该文件,而非从零生成,因此避免了赝势缺失问题。注意不能跳过Step 1随便塞一个fch文件给mkl2fch小程序企图欺骗之,那样即使不报错也可能存在基组数据或轨道不对应的错误。

致谢

感谢wzkchem5,wsr和zhigang的修改建议。 MOKIT中文简介

代码语言:javascript
复制
https://gitlab.com/jxzou/mokit/-/blob/master/README_zh.md

MOKIT在线手册

代码语言:javascript
复制
https://jeanwsr.gitlab.io/mokit-doc-mdbook/

引用MOKIT的发表文章一览

代码语言:javascript
复制
https://jeanwsr.gitlab.io/mokit-doc-mdbook/citing.html
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-21,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 量子化学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. ORCA传轨道给AMESP
  • 2. ORCA传轨道给BDF
  • 3. ORCA传轨道给CFOUR
  • 4. ORCA传轨道给Dalton
  • 5. ORCA传轨道给GAMESS
  • 6. ORCA传轨道给Molpro
  • 7. ORCA传轨道给OpenMolcas
  • 8. ORCA传轨道给PSI4
  • 9. ORCA传轨道给PySCF
  • 10. ORCA传轨道给Q-Chem
  • 11. ORCA传轨道给Gaussian
    • 11.1 使用mkl2gjf小程序
      • 11.2 使用mkl2fch小程序
        • 11.2.1 适用于常见HF/DFT/CASSCF轨道
        • 11.2.2 适用于UNO、MP2、CCSD、CASSCF等自然轨道
        • 11.2.3 适用于UMP2、UCCSD(自旋)自然轨道
    • 注意事项
    • 致谢
    相关产品与服务
    云开发 CloudBase
    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com