计算化学公社

 找回密码 Forget password
 注册 Register
Views: 40151|回复 Reply: 97
打印 Print 上一主题 Last thread 下一主题 Next thread

[辅助/分析程序] 使用MOKIT做多参考计算

  [复制链接 Copy URL]

4103

帖子

4

威望

8862

eV
积分
13045

Level 6 (一方通行)

MOKIT开发者

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 zjxitcc 于 2021-3-24 10:32 编辑

----- 注意:该贴已过时,最新介绍请看https://gitlab.com/jxzou/mokit -----

2020-08-08 更新:增加了 轨道转化程序 的Windows可执行文件,解压即可用;修复了传递CASSCF force关键词的bug;支持带点电荷的多参考计算。见https://gitlab.com/jxzou/mokit
2020-06-28 更新:增加做多参考计算的接口程序AutoMR;增加manual。

AutoMR利用了各个传轨道的小程序,外加一些自写的接口,可以调用Gaussian, GAMESS, PySCF, OpenMolcas和ORCA等软件做多参考计算,做到像算HF和DFT一样算多参考体系(黑箱化)。目前支持的方法有GVB, CASCI, CASSCF, NEVPT2, CASPT2五种,可以在一个程序里做完CASSCF,去另一个程序里做NEVPT2,都由AutoMR自动调用。用户可以不指定活性空间大小,由程序自动确定,亦可人为指定。AutoMR的输入文件是模仿高斯的,学习门槛接近于零。举几个例子

例1. N2的CASSCF(6,6)计算,1.15A,文件极简
  1. %mem=16GB
  2. %nprocshared=16
  3. #p CASSCF(6,6)/cc-pVQZ

  4. mokit{}

  5. 0 1
  6. N   0.0   0.0   0.0
  7. N   0.0   0.0   1.15
复制代码


例2. N2的CASSCF(6,6)-NEVPT2计算,4.0 A,用户提供算好的UHF任务.fchk文件(注意这不是简单的UHF,必须使用片段组合波函数构建初猜)
  1. %mem=4GB
  2. %nprocshared=4
  3. #p NEVPT2/cc-pVQZ

  4. mokit{readuhf='N2_cc-pVQZ_6D10F_4.0_uhf.fchk',ist=1}
复制代码


以上例子可以在解压后examples/automr/目录下找到。

运行的话,执行automr xxx.gjf >& xxx.out即可。默认会输出到屏幕上,建议使用重定向导入xxx.out文件里。输出内容示例

  1. ...
  2. Enter subroutine do_gvb...
  3. nbf =  140    nif =  140
  4. doubly_occ=    2    npair=    5    nopen=    0    nvir=  128
  5. GVB(5)

  6. E(GVB) =      -108.70259326 a.u.
  7. Leave subroutine do_gvb at Mon Jun 29 09:22:23 2020


  8. Enter subroutine do_cas...
  9. CASSCF(6,6)
  10. doubly_occ=    4    nvir=  130
  11. No. of active alpha/beta e = 3/3

  12. E(CASCI)  =      -108.79883240 a.u.
  13. E(CASSCF) =      -108.80040252 a.u.
  14. Leave subroutine do_cas at Mon Jun 29 09:22:29 2020


  15. Enter subroutine do_mrpt2...
  16. CASSCF-NEVPT2 based on optimized CASSCF orbitals.
  17. Frozen_core = F

  18. E_corr(SC-NEVPT2) =        -0.28789999 a.u.
  19. E(SC-NEVPT2)      =      -109.08830252 a.u.
  20. Leave subroutine do_mrpt2 at Mon Jun 29 09:22:32 2020

  21. Normal termination of AutoMR at Mon Jun 29 09:22:32 2020
复制代码

更多详情请阅读pdf手册。程序肯定还有不少不足之处甚至bug,希望感兴趣的小伙伴使用后提建议~


=================以下为第一次发布时的介绍(略有修改)========================

MOKIT是笔者近两三年科研过程中写的一些实用性程序的一个汇总,全称Molecular Orbital KIT,起名模仿自VASPKIT。该程序开源免费,现托管于GITLAB上,欢迎大家使用(https://gitlab.com/jxzou/mokit)。在使用过程中碰到问题也可在此贴下留言(坑爹延期中,不一定回)。

该程序目前的主要功能是可以方便地在不同程序间传轨道,分为若干个独立的小程序,举几个例子
fch2inp     : 从Gaussian .fchk文件产生GAMESS .inp文件(内含分子轨道)
fch2inporb: 从Gaussian .fchk文件产生Molcas/OpenMolcas .input文件和.INPORB文件(内含分子轨道)
fch2mkl    : 从Gaussian .fchk文件产生ORCA .inp文件和 .mkl文件(内含分子轨道)
fch2py     : 在PySCF输入文件中读取Gaussian .fchk内的轨道
py2fch     : 将PySCF算好的轨道写入指定的.fchk文件
dat2fch    : 将GAMESS .dat文件中的轨道传给指定的.fchk文件

像fch2inp, fch2inporb和fch2mkl这三个小程序产生的输入文件里,写好了坐标和基组(支持赝势)和一些简单的关键词。尤其是赝势部分,自己一个个软件去看说明书费时费力还容易出错,用这些小程序可以节约不少时间。目前所有的转换程序可以总结为下图



这些小程序考虑了传轨道时高角动量函数的顺序问题(5D, 6D, 最高到H角动量),重叠积分对角元数值是否为1等等系列问题,可以说是目前比较好的传轨道程序。对于HF, CASCI, CASSCF等常见波函数方法,轨道从一个程序到另一个程序,能量损失一般小于10^-6 a.u.,这相当于立即收敛(注:各个程序的DFT不尽相同,不严格遵循此标准)。有了这些功能,用户可以充分利用各个程序最强的功能,例如

高斯算UHF(自旋极化、片段组合等高难度UHF) -> UNO (高斯,PySCF或OpenMolcas均可) -> CASSCF (PySCF或OpenMolcas) -> NEVPT2(PySCF) 或 CASPT2(OpenMolcas)

而不用到了另一个程序里去纠结输入文件怎么写、收敛的解对不对等问题(ORCA和OpenMolcas的UHF与高斯相比还是略。。。)。高角动量基函数的处理对于过渡金属体系还是比较有必要的,若没考虑有时候会影响传轨道后不收敛或收敛至不同的解上。

-----Quick Start------
用户要求:熟悉常规量化计算(新手应先学习如何使用高斯)

编译器/库 要求:ifort或gfortran,MKL数学库,f2py(推荐安装Anaconda Python3)

安装:下载后解压,进入src目录,执行 make all 即可。

环境变量:示例如下,请按照自己实际解压路径修改
export MOKIT_ROOT=/home/$USER/software/mokit
export PATH=$MOKIT_ROOT/bin:$PATH
export PYTHONPATH=$MOKIT_ROOT/lib:$PYTHONPATH

更新常用软件路径:打开program.info文件,根据自己机子的实际情况修改软件路径,以供AutoMR调用。

独立编译某个小程序:以fch2inp为例,进入src目录执行
make fch2inp
即可。一些组件并不需要MKL数学库和f2py。

使用:直接运行fch2inp屏幕会输出
ERROR in subroutine fch2inp: wrong command line arguments!
Example 1 (R(O)HF, CAS): fch2inp a.fch
Example 2 (UHF)             : fch2inp a.fch -uhf
Example 3 (GVB)             : fch2inp a.fch -gvb [npair]
Example 4 (ROGVB)        : fch2inp a.fch -gvb [npair] -open [nopen]

提示该如何写命令行参数,一目了然。更多详细内容请移步gitlab查看README.md及examples/目录。

注意事项:要在高斯中写nosymm int=nobasistransform关键词。至于球谐函数/Cartesian函数问题请参见README.md。

目前还是初步版本,很多代码功能未能详细介绍,希望在下一个大版本里可以给大家提供一个轻松做多参考计算的实用工具。


评分 Rate

参与人数
Participants 16
eV +78 收起 理由
Reason
超限制抱怨 + 5 好物!
NHX + 4 牛!
卡开发发 + 5 好物!
qiqi7 + 5 好物!
QuantumicGuy + 5 好物!
ggdh + 5 谢谢
ZZU_SCU + 5
元气蛋 + 5 好物!
Freeman + 5
喵星大佬 + 5 好物!
clwater + 5 好物!
冰释之川 + 5 好物!
thanhtam + 4
hebrewsnabla + 5 好物!
niobium + 5 好物!
snljty + 5 谢谢分享

查看全部评分 View all ratings

自动做多参考态计算的程序MOKIT

125

帖子

0

威望

464

eV
积分
589

Level 4 (黑子)

98#
发表于 Post on 2025-6-3 09:10:24 | 只看该作者 Only view this author
hebrewsnabla 发表于 2025-6-2 17:44
是mokit的bug(使用ifx时),我们修一下。

好的,谢谢老师

910

帖子

1

威望

7873

eV
积分
8803

Level 6 (一方通行)

97#
发表于 Post on 2025-6-2 17:44:32 | 只看该作者 Only view this author
Xx_DerEnTh 发表于 2025-5-31 14:47
老师您好!我升级python版本后编译成功了,但是安装完成后我运行其中的00-h2o_cc-pVDZ_1.5.gjf例子的时候 ...

是mokit的bug(使用ifx时),我们修一下。

125

帖子

0

威望

464

eV
积分
589

Level 4 (黑子)

96#
发表于 Post on 2025-5-31 14:47:58 | 只看该作者 Only view this author
zjxitcc 发表于 2025-5-30 23:31
你可以创一个新的虚拟环境,在新环境中使用更高python版本,例如
前两行命令是创建新的虚拟环境(注意, ...

老师您好!我升级python版本后编译成功了,但是安装完成后我运行其中的00-h2o_cc-pVDZ_1.5.gjf例子的时候出现了报错,只生成了一个out文件,请教一下老师这个是哪里有问题,麻烦老师了。

00-h2o_cc-pVDZ_1.5.out

1.3 KB, 下载次数 Times of downloads: 2

125

帖子

0

威望

464

eV
积分
589

Level 4 (黑子)

95#
发表于 Post on 2025-5-31 09:42:57 | 只看该作者 Only view this author
zjxitcc 发表于 2025-5-30 23:31
你可以创一个新的虚拟环境,在新环境中使用更高python版本,例如
前两行命令是创建新的虚拟环境(注意, ...

@hebrewsnabla感谢两位老师,我再试试

4103

帖子

4

威望

8862

eV
积分
13045

Level 6 (一方通行)

MOKIT开发者

94#
 楼主 Author| 发表于 Post on 2025-5-30 23:31:36 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2025-5-30 23:37 编辑
Xx_DerEnTh 发表于 2025-5-30 21:48
老师您好!我用源码安装最新版的MOKIT,我的Intel OneAPI >=2025,按照您的指示编译出现了错误,弄了很久 ...

你可以创一个新的虚拟环境,在新环境中使用更高python版本,例如
  1. conda create -n mokit-py39 python=3.9
  2. conda activate mokit-py39
  3. cd /path/to/mokit/src/
  4. make all -f Makefile.intel_ifx
复制代码
前两行命令是创建新的虚拟环境(注意,此处我们并没有用conda联网安装mokit),后两行是进入mokit源代码目录去编译。我记得即使没网也可以创建本地python环境。如果编译成功,就在当前环境中使用mokit。退出新建的虚拟环境就是conda deactivate。

若实在无法创建虚拟环境以使用更高版本python,可以到镜像网站下载一个Anaconda Python离线安装包Anaconda3-2024.02-1-Linux-x86_64.sh,发送到服务器上,运行./Anaconda3-2024.02-1-Linux-x86_64.sh
就可以安装更高版本的python了。

如果使用slurm脚本提交任务,就是在脚本中先激活环境,再执行任务
# 指定内存和核数等等
source activate mokit-py39
automr h2o.gjf >h2o.out 2>&1
自动做多参考态计算的程序MOKIT

910

帖子

1

威望

7873

eV
积分
8803

Level 6 (一方通行)

93#
发表于 Post on 2025-5-30 21:57:38 | 只看该作者 Only view this author
Xx_DerEnTh 发表于 2025-5-30 21:48
老师您好!我用源码安装最新版的MOKIT,我的Intel OneAPI >=2025,按照您的指示编译出现了错误,弄了很久 ...

不要使用太老的 python 版本,建议 3.9-3.11

125

帖子

0

威望

464

eV
积分
589

Level 4 (黑子)

92#
发表于 Post on 2025-5-30 21:48:28 | 只看该作者 Only view this author
zjxitcc 发表于 2025-5-26 08:14
可以的。注意,对于Intel OneAPI < 2025,ifort/ifx共存,仍然可以使用ifort编译,运行make all即可;对 ...

老师您好!我用源码安装最新版的MOKIT,我的Intel OneAPI >=2025,按照您的指示编译出现了错误,弄了很久还是没有解决,想请邹老师看看是哪里有问题,附件是出错的地方,谢谢老师!

Error.txt

11.68 KB, 下载次数 Times of downloads: 4

4103

帖子

4

威望

8862

eV
积分
13045

Level 6 (一方通行)

MOKIT开发者

91#
 楼主 Author| 发表于 Post on 2025-5-26 08:14:52 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2025-5-26 08:17 编辑
NHX 发表于 2025-5-9 00:31
Z老师您好,我准备用源码安装MOKIT,我下载的最新版Intel 工具包,编译器ifort变成了ifx,请问可以用ifx编 ...

可以的。注意,对于Intel OneAPI < 2025,ifort/ifx共存,仍然可以使用ifort编译,运行make all即可;对于Intel OneAPI >= 2025,ifort被彻底抛弃 只有ifx,此时可以运行make all -f Makefile.intel_ifx(注意,请下载v1.2.7rc7 2025-May-25或更新的版本。日期可以通过打开CHANGELOG文件看首行内容得知)
自动做多参考态计算的程序MOKIT

125

帖子

0

威望

464

eV
积分
589

Level 4 (黑子)

90#
发表于 Post on 2025-5-21 13:57:57 | 只看该作者 Only view this author
zjxitcc 发表于 2025-5-21 13:43
您完全搞错了,IOp(3/32=2)更是错误的做法。这些问题在MOKIT里早就正确、自动地考虑了。将fc ...

好的,感谢老师!我再仔细学习一下

4103

帖子

4

威望

8862

eV
积分
13045

Level 6 (一方通行)

MOKIT开发者

89#
 楼主 Author| 发表于 Post on 2025-5-21 13:43:02 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2025-5-21 14:05 编辑
Xx_DerEnTh 发表于 2025-5-21 12:19
邹老师您好,我想把MOKIT做CASSCF计算后产生的GVB轨道转到其他程序当初猜,例如ORCA和OpenMolcas,我看了so ...

您完全搞错了,IOp(3/32=2)更是错误的做法。这些问题在MOKIT里早就正确、自动地考虑了,并且MOKIT还考虑了积分精度的一致性等很多其他因素。将fch文件中的GVB轨道传给ORCA/OpenMolcas/Molpro任何其他量化程序,只需使用相应的小程序fch2mkl, fch2inporb, fch2com等等,MOKIT拥有全套的传轨道小程序,无需借助其他程序。所有传轨道小程序可以在手册上看到,有图有文字List of Utilities in MOKIT - MOKIT Documentation

在GitLab MOKIT中文README里也有图片,一看就知道需要使用哪个小程序


另外,以防您没学会MOKIT很多方便的功能,这里再详细介绍两个技巧,将GVB轨道传给ORCA/OpenMolcas做CASSCF或更高级方法的计算,有两种方式:
(1)使用fch2mkl, fch2inporb等小程序,例如运行
  1. fch2mkl h2o_gvb2_s.fch
复制代码
由此产生h2o_gvb2_s_o.gbw,h2o_gvb2_s_o.inp文件,需要自己手动打开inp文件,增加CASSCF方法的关键词,然后提交ORCA任务。此法虽然可以正确传轨道,却需要自己手改输入文件,不是100%方便。
(2)完全自动化的CASSCF/CASPT2/NEVPT2/FIC-MRCISD计算,无需手动使用fch2mkl, fch2inporb等小程序,无需手改inp文件。假设GVB自然轨道文件叫h2o_uhf_uno_asrot2gvb4_s.fch,我们只需创建一个极其简单的gjf文件,例如h2o.gjf
  1. %mem=10GB
  2. %nprocshared=6
  3. #p CASPT2/cc-pVDZ

  4. mokit{ist=5,readno='h2o_uhf_uno_asrot2gvb4_s.fch',CASSCF_prog=ORCA}
复制代码
提交任务,即运行
  1. automr h2o.gjf >h2o.out 2>&1
复制代码
automr会自动调用ORCA做CASSCF轨道优化、自动调用OpenMolcas做CASPT2能量计算(CASPT2_prog默认值就是OpenMolcas)。
自动做多参考态计算的程序MOKIT

125

帖子

0

威望

464

eV
积分
589

Level 4 (黑子)

88#
发表于 Post on 2025-5-21 12:19:09 | 只看该作者 Only view this author
邹老师您好,我想把MOKIT做CASSCF计算后产生的GVB轨道转到其他程序当初猜,例如ORCA和OpenMolcas,我看了sob老师的将Gaussian等程序收敛的波函数作为ORCA的初猜波函数的方法 - 思想家公社的门口:量子化学·分子模拟·二次元博文,发现把Gaussian的波函数当作ORCA的初猜时,Gaussian输入文件需要一定的设置来保持一致,例如加上nosymm和IOp(3/32=2)等关键词,想请教老师:MOKIT做CASSCF时第一步也是提供Gaussian的输入文件,我在写这个输入文件时需不需要考虑类似的问题,加上相关的关键字?

910

帖子

1

威望

7873

eV
积分
8803

Level 6 (一方通行)

87#
发表于 Post on 2025-5-15 16:56:32 | 只看该作者 Only view this author
NHX 发表于 2025-5-9 00:31
Z老师您好,我准备用源码安装MOKIT,我下载的最新版Intel 工具包,编译器ifort变成了ifx,请问可以用ifx编 ...

据我所知暂时不行。

212

帖子

0

威望

3010

eV
积分
3222

Level 5 (御坂)

86#
发表于 Post on 2025-5-15 11:53:05 | 只看该作者 Only view this author
zjxitcc 发表于 2025-5-15 11:26
请再次阅读在80L的回复(即,Windows下可以使用小程序传轨道,但无法使用automr进行自动多参考计算)

明白,那就换Linux去算

4103

帖子

4

威望

8862

eV
积分
13045

Level 6 (一方通行)

MOKIT开发者

85#
 楼主 Author| 发表于 Post on 2025-5-15 11:26:43 | 只看该作者 Only view this author
aaq2800 发表于 2025-5-15 10:09
用高斯试了你帖子中的几个例子,都出现这个问题,是window版本不支持的原因?

Leave Link  401 at Thu M ...

请再次阅读在80L的回复(即,Windows下可以使用小程序传轨道,但无法使用automr进行自动多参考计算)
自动做多参考态计算的程序MOKIT

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-13 08:46 , Processed in 0.189778 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list