|
本帖最后由 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,文件极简
- %mem=16GB
- %nprocshared=16
- #p CASSCF(6,6)/cc-pVQZ
- mokit{}
- 0 1
- N 0.0 0.0 0.0
- N 0.0 0.0 1.15
复制代码
例2. N2的CASSCF(6,6)-NEVPT2计算,4.0 A,用户提供算好的UHF任务.fchk文件(注意这不是简单的UHF,必须使用片段组合波函数构建初猜)
- %mem=4GB
- %nprocshared=4
- #p NEVPT2/cc-pVQZ
- mokit{readuhf='N2_cc-pVQZ_6D10F_4.0_uhf.fchk',ist=1}
复制代码
以上例子可以在解压后examples/automr/目录下找到。
运行的话,执行automr xxx.gjf >& xxx.out即可。默认会输出到屏幕上,建议使用重定向导入xxx.out文件里。输出内容示例
- ...
- Enter subroutine do_gvb...
- nbf = 140 nif = 140
- doubly_occ= 2 npair= 5 nopen= 0 nvir= 128
- GVB(5)
- E(GVB) = -108.70259326 a.u.
- Leave subroutine do_gvb at Mon Jun 29 09:22:23 2020
- Enter subroutine do_cas...
- CASSCF(6,6)
- doubly_occ= 4 nvir= 130
- No. of active alpha/beta e = 3/3
- E(CASCI) = -108.79883240 a.u.
- E(CASSCF) = -108.80040252 a.u.
- Leave subroutine do_cas at Mon Jun 29 09:22:29 2020
- Enter subroutine do_mrpt2...
- CASSCF-NEVPT2 based on optimized CASSCF orbitals.
- Frozen_core = F
- E_corr(SC-NEVPT2) = -0.28789999 a.u.
- E(SC-NEVPT2) = -109.08830252 a.u.
- Leave subroutine do_mrpt2 at Mon Jun 29 09:22:32 2020
- 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
-
查看全部评分 View all ratings
|