Skip to content

Latest commit

 

History

History
200 lines (152 loc) · 10.6 KB

README_zh.md

File metadata and controls

200 lines (152 loc) · 10.6 KB

English   下载程序   GitLab仓库   GitHub镜像   NJU-Git镜像   在线文档

Molecular Orbital KIT (MOKIT)

MOKIT提供各种小程序和模块,用以实现在常见量子化学软件间传递分子轨道。除此之外,MOKIT中的automr程序可以进行多参考(态)方法的自动化、黑箱式计算。

MOKIT中重要的小程序及其功能请见下图
MOKIT utilities with their functions

利用MOKIT中的automr程序(结合上图中的各个小程序),您可以十分简单地(即像DFT计算一样)进行多参考计算,并可充分利用每个量子化学软件最强的功能。例如,如下组合

UHF(UNO) -> CASSCF -> CASPT2
Gaussian  PySCF  OpenMolcas
or
UHF(UNO) -> GVB -> CASSCF -> NEVPT2
Gaussian  GAMESS  PySCF  PySCF
or
RHF -> GVB -> CASSCF -> ic-MRCISD+Q
Gaussian GAMESS PySCF OpenMolcas

整个过程都是自动的。MOKIT在不同量化程序间传轨道时,考虑了基函数角动量的顺序问题(最高支持H角动量,相当于C原子用cc-pV5Z基组,Zn原子用cc-pVQZ基组),因此同一种理论方法(例如CASSCF)在不同量化程序中的电子能量可以很好地复现(误差通常小于10^-6 a.u.),且几乎1-2圈收敛。

请注意,尽管MOKIT程序的目标是使多参考计算实现自动化和黑箱式,无需人为干预。但用户仍需具备使用常见量子化学软件的基本技能(例如熟悉Gaussian软件的常规DFT计算)。若您是一名量化新手,强烈建议先学习并熟练使用Gaussian软件做常规计算,否则很可能难以正确理解MOKIT的输出内容,或做出错误解读。

2024年10月21号

依赖

每个可执行文件或模块依赖于量子化学程序的情况不同。以下列出了最常用可执行文件automrfrag_guess_wfn和Python模块py2xxx的最少依赖:

  1. automr: GAMESS, PySCF
  2. frag_guess_wfn: Gaussian
  3. 绝大多数传轨道的小程序没有依赖,除了py2gau, py2orca, py2molpro这些Python模块需要在安装有PySCF时才能正常使用

注意官方GAMESS程序只能处理少于13对的GVB计算,但借助MOKIT现今可以实现上百对的GVB计算。因此请阅读手册 4.4.10部分使用提供的脚本自动修改GAMESS代码。

安装

在Linux或MacOS上,您可以从以下展示的4种安装方式中选择一种来安装MOKIT,这些安装方式可以让您使用MOKIT全部功能。若您仅想使用小程序frag_guess_wfn,还有更简洁的安装方式,见此处。 开发者还提供Windows系统下预编译好的小程序,点击下载。但请注意这些小程序的版本会滞后于master主分支代码,且无法在Windows上使用MOKIT的全部功能。

方式1:conda 联网安装(适用于Linux)

这是最简单的安装方法,但需要联网以自动下载依赖(例如Intel MKL)。强烈建议在安装前创建一个新环境,以免破坏 base 环境。

conda create -n mokit-py39 python=3.9 # 3.8~3.11 are available
conda activate mokit-py39
conda install mokit -c mokit

使用MOKIT时仍需保持mokit-py39环境处于激活状态。若您想通过conda-forge渠道安装MOKIT请阅读此处。如果无法联网,但仍不想手动编译,请尝试方式3。

方式2:homebrew 联网安装(仅针对MacOS)

  • 前提
    • 需要安装homebrew,更多帮助见此处
    • 需要通过brew安装miniconda,并在base环境中通过pip安装numpy,如下
brew install --cask miniconda
conda init bash #(or zsh ) 
conda activate base
pip install numpy

接着 brew install ansatzx/homebrew-mokit/mokit

或者 brew tap ansatzx/homebrew-mokit 并且 brew install mokit.

最终按照caveats的提示, 在你的shell配置文件里添加如下环境变量

export MOKIT_ROOT="$(brew --prefix)/Cellar/mokit/master"
export PATH=$MOKIT_ROOT/bin:$PATH
export PYTHONPATH=$MOKIT_ROOT:$PYTHONPATH
export LD_LIBRARY_PATH=$MOKIT_ROOT/mokit/lib:$LD_LIBRARY_PATH

方式3:使用预编译版

Linux预编译版本可从此处下载。

  • 前提: 需要有Python3环境和NumPy
  • 如不清楚如何选择预编译版本或解决预编译版本的依赖问题,请阅读此处
  • 下载预编译版后, 您需要在~/.bashrc文件中设定下述环境变量(假设MOKIT放在$HOME/software/mokit):
export MOKIT_ROOT=$HOME/software/mokit
export PATH=$MOKIT_ROOT/bin:$PATH
export PYTHONPATH=$MOKIT_ROOT:$PYTHONPATH
export LD_LIBRARY_PATH=$MOKIT_ROOT/mokit/lib:$LD_LIBRARY_PATH
export GMS=$HOME/software/gamess/rungms

此处需要设置LD_LIBRARY_PATH是由于OpenBLAS动态库放在那里。GAMESS主程序路径GMS请按照您机器上的实际情况修改。注意:自MOKIT-v1.2.5rc2以后,PYTHONPATH 发生了变化。修改后需退出重登,以使环境变量生效。

方式4:从源码编译

MOKIT最新源代码可从此处下载。

  • 前提(编译器和库要求)

    • Fortran编译器: ifort(>=2017) 或 gfortran(>=4.8.5)
    • Intel MKL(推荐安装Intel编译器,内含ifort和MKL) 或 OpenBLAS
    • f2py (推荐安装Anaconda Python3,内含f2py)
  • 编译全部模块, 执行

cd src
make all
  • 在执行make all之后, 你需要设置三个环境变量MOKIT_ROOT, PATHPYTHONPATH。例如,假定您MOKIT放在$HOME/software/mokit目录,您需要在~/.bashrc文件中设定以下环境变量:
export MOKIT_ROOT=$HOME/software/mokit
export PATH=$MOKIT_ROOT/bin:$PATH
export PYTHONPATH=$MOKIT_ROOT:$PYTHONPATH
export GMS=$HOME/software/gamess/rungms

GAMESS可执行文件的路径请按照您机器上的实际情况修改。注意:自MOKIT-v1.2.5rc2以后,PYTHONPATH 发生了变化。修改后需退出重登,以使环境变量生效。

快速开始

  • 每个小程序的使用十分简单,直接运行即可在屏幕上打印出使用说明。例如在Shell中运行小程序fch2inp,输出如下
 ERROR in subroutine fch2inp: wrong command line arguments!  
 Example 1 (R(O)HF, UHF, CAS): fch2inp a.fch  
 Example 2 (GVB)             : fch2inp a.fch -gvb [npair]  
 Example 3 (ROGVB)           : fch2inp a.fch -gvb [npair] -open [nopen]

您可在此网页上搜索需要的小程序及阅读相应文档.

  • 对于mokit/lib/目录下Python动态库文件的使用方法,请阅读examples/utilities/目录下的readme.txt

  • 自动做多参考计算的核心程序automr的输入文件采用的是Gaussian gjf文件的格式。例如,一个O-H键长为1.5 A的水分子输入文件00-h2o_cc-pVDZ_1.5.gjf示例如下

%mem=4GB
%nprocshared=4
#p CASSCF/cc-pVDZ

mokit{}

0 1
O      -0.23497692    0.90193619   -0.068688
H       1.26502308    0.90193619   -0.068688
H      -0.73568721    2.31589843   -0.068688

只需在Shell中执行

automr 00-h2o_cc-pVDZ_1.5.gjf >& 00-h2o_cc-pVDZ_1.5.out

命令,automr程序会相继执行HF,GVB和CASSCF等计算,自动确定活性空间为CAS(4,4)。更多例子请见examples

支持调用的量子化学程序

温馨提示

  • 若您想提供.fch(k)文件给automr程序读入,请在计算前在Gaussian的输入文件中加上关键词nosymm int=nobasistransform,以避免后续产生不必要的、不可预见的错误。

汇报Bug

  • 若您发现MOKIT的程序错误或bug,或有任何使用建议,可在此页面Issues上新建一个问题。

  • 您也可以通过电子邮件njumath[at]sina.cn联系开发者jxzou。在邮件中请将您的相关文件(例如.gjf, .fch, .out文件等)打包、压缩并添加为附件发送。

  • 还可加入MOKIT用户交流QQ群,群号:470745084

下一步计划

  • 支持NWCHEM, BAGEL, COLUMBUS等软件间传轨道

  • 开发和实现稳健的多参考激发态自动计算策略

如何引用

  • 当前MOKIT未发表专门的论文,若您在您的研究中使用了MOKIT的任何一个子程序,请按如下引用

    Jingxiang Zou, Molecular Orbital Kit (MOKIT), https://gitlab.com/jxzou/mokit (accessed month day, year)

  • 若您使用MOKIT进行了GVB方法的相关计算,建议您也引用以下2篇文献

    DOI: 10.1021/acs.jctc.8b00854; DOI: 10.1021/acs.jpca.0c05216.

  • 若您在您的研究中使用了MOKIT的任何一个子程序或模块,请在正文参考文献中恰当引用MOKIT,仅在补充材料中引用MOKIT是不够的。EndNote引用文件请见此处。更详细的引用说明和示例请见手册,您的规范引用是对开发者的极大鼓励。您可以使用MOKIT为其他人做计算(包括代算),但务必提醒他/她在发表文章时恰当地引用MOKIT和计算中用到的量子化学软件。

  • 点击这里可以浏览引用MOKIT的已发表文章。