|
本帖最后由 ggdh 于 2023-2-20 15:03 编辑
1. 软件介绍官网在此:
https://www.mrcc.hu/
mrcc有3个主程序: mrcc, ccsd和cis, 本贴主要使用cis程序的相关功能:
- CIS, TDA, TDDFT, 基于CIS(D)或者ADC(2)的双杂化TDDFT(ORCA的TD-DH-DFT只支持基于CIS(D)而Gaussian则不支持TD-DH-DFT)
- ADC(2), CC2, CIS(D), DIS(D∞), 以及它们的SCS和SOS版本
- 可同时算单重态和三重态
- 所有功能都强制RI加速
- 不支持含MetaGGA的TDDFT
- 只支持闭壳层
- 只有CIS和TD-HF支持解析梯度
- CC2无法计算跃迁偶极
- 无法算SOC
- 无法获取激发态密度
- 只能openmp并行, 无法mpi并行
2. 下载和安装
去官网注册账号,下载证书,签名并邮寄回去激活账号就能免费下载源代码版或者二进制版,这里我们使用二进制版本:mrcc.2022-03-18.binary.tar
新建一个目录,把压缩包放进去后解压,然后把该目录加入PATH变量即可,不会操作的照下面代码弄
- mkdir mrcc-2022
- mv mrcc.2022-03-18.binary.tar mrcc-2022
- cd mrcc-2022
- tar -xvf mrcc.2022-03-18.binary.tar
- echo 'PATH='$(pwd)':$PATH' >> ~/.bashrc
- source ~/.bashrc
复制代码 安装完成后可以测试:
这里有1000多个测试文件,可以提前终止
2.5 光速启动
后面的内容很长,时间管理大师们想在10分钟内上手的,可以按照此光速启动环节操作:
a) 找到绿色通道,并按照第二步的说明下载安装 链接:pan.baidu.com/s/10ehGEMJxWBBBh_wcv2e2zw 提取码:59it
b) 下载附件中的三个文件, 把genmrcc.sh和mrccST.py 拷贝到上面第二步中的mrcc-2022文件夹中并赋予可执行权限
c) 把BN.xyz文件放到一个单独的文件夹中, 并cd到该目录下
d) 运行下面的命令
- genmrcc.sh -n 8 -m 10GB -p scs-cc2 -b cc-pvdz -S 4 -T 3 -R 3 -C 5 BN.xyz #产生输入文件
- sh BN_SCS-CC2/runmrcc.sh #开始计算,此时可以观察屏幕上的输出,等待2分多计算完毕,然后运行
- mrccST.py BN_SCS-CC2
复制代码 查看结果如下:
3. 输入文件的格式
mrcc的输入文件通过一批
选项1=值A
选项2=值B
的方式设定,以一个水分子的TDDFT任务为例,对比gjf文件和mrcc的输入文件方便大家理解:
gjf:
- %chk=form.chk
- %mem=10GB
- %nprocshared=16
- # B3LYP3 def2SVP TD(nstates=3,50-50)
- Formaldehyde
- 0 1
- C -3.14381262 -0.27313266 0.00000000
- O -1.91649562 -0.27313266 0.00000000
- H -3.73595762 0.66627134 0.00000000
- H -3.73595762 -1.21253666 0.00003900
复制代码
MINP:
- mem=10GB
- calc=TDDFT
- basis=def2-SVP
- dft=B3LYP3
- nsing=4
- ntrip=3
- charge=0
- mult=1
- geom=xyz
- 4
- Formaldehyde
- C -3.14381262 -0.27313266 0.00000000
- O -1.91649562 -0.27313266 0.00000000
- H -3.73595762 0.66627134 0.00000000
- H -3.73595762 -1.21253666 0.00003900
复制代码- 更多选项的意义可以去手册上查找
- 下面有脚本可以方便的产生输入文件
4. mrcc的运行方式
首先输入文件名必须为MINP
在有MINP的路径下依次运行
- export OMP_NUM_THREADS=16
- export MKL_NUM_THREADS=16
- export OMP_PLACES=cores
- export OMP_PROC_BIND=spread,close
- dmrcc | tee mrcc.out
复制代码 设置16核并行,以及核的绑定cpu策略为分散式,然后将运行结果输出到屏幕上和mrcc.out文件中
这是原生的运行方式,下面提供的脚本有更方便的运行方式。
5.利用脚本进行常规计算
为了贯彻sob把萌新宠坏的思想,这里编写了shell和python脚本,方便直接产生输入文件和读取输出文件。安装和用法按照下面的步骤进行:
a) 安装脚本
下载附件中的genmrcc.sh和mrccST.py文件,然后将其拷贝到上面第二节创建的mrcc-2022目录下。
cd 到mrcc-2022目录下,赋予这两个文件可执行权限:
- chmod +x genmrcc.sh
- chmod +x mrccST.py
复制代码
b) 产生输入文件
准备一个xyz文件, 比如可以通过Mulitwfn转换Gaussian优化好的log文件,这里以附件中BN分子BN.xyz文件为例:
- genmrcc.sh -m 10GB -n 16 -p tddft -d b2plyp -D "scs-adc(2)" -b def2-SVP -S 4 -T 3 BN.xyz
复制代码 各个选项的含义如下:
- -m 设内存
- -n 设并行核数,并行效率见下面评测
- -p 设置任务类型,常见有tddft,tda,scs-cc2, "scs-adc(2)"
- -b 设置基组
- -d 设置泛函
- -D 如果使用了双杂化泛函,这里可以设置二阶项,包括cis(d)和adc(2)以及他们的scs/soc版本
- -S 设置单重态数量,注意这里包括了基态,所以-S 4 只算了三个单重激发态
- -T 设置三重态数量
运行成功后会产生一个名为BN_b2plyp_TD_scsadc2的文件夹
文件夹内包含输入文件MINP和运行脚本runmrcc.sh脚本
有格外需求可以自行修改MINP文件
本脚本支持*.xyz批量产生输入文件
c) 开始计算
单机的话直接运行:
- sh BN_b2plyp_TD_scsadc2/runmrcc.sh
复制代码 就可以开始计算
如果是有作业调度系统,上面这行命令加到提交脚本中即可。
d) 结果处理
运行完成后BN_b2plyp_TD_scsadc2目录中会产生一堆文件,中有用的是:
runmrcc.out文件,包含了计算的结果
runtime文件,包含了本次运行的耗时,单位是秒
运行脚本
- mrccST.py BN_b2plyp_TD_scsadc2
复制代码 可以直接提取该目录中计算得到的单三线态能级。
也可以同时提取多个目录下的计算结果比如:
可以同时提取所有目录下的结果
如果激发态的顺序不对,该脚本会重新按能量从低到高排序并给出提示
e) 再举两个常见的计算例子
- genmrcc.sh -m 20GB -n 16 -p "SCS-ADC(2)" -b "def2-SV(P)" -S 4 -T 3 -R 3 DABNA.xyz
复制代码 进行SCS-ADC(2)计算,使用def2-SV(P)基组,注意方法和基组有括号所以需要引号
-R 3的意思是使用3号加速方案, 含义见下面的介绍
- genmrcc.sh -m 20GB -n 16 -p SCS-CC2 -b cc-pvtz -S 4 -T 3 -s _ccpVTZ DABNA.xyz
复制代码 进行SCS-CC2计算,使用cc-pVTZ基组,
并且在产生的文件夹的名字后面加上_ccpVTZ
f) 查看帮助
忘了命令用法直接输入
查看帮助如下
5.并行效率
这是一个SCS-CC2的任务, 可以看到运行速度-8核上升明显,8-32缓慢上升, 之后开始下降。
6.加速和精度(一)
mrcc利用了多种令人眼花缭乱的加速手段,包括:
- cis模块的强制的RI加速,因为是强制的就无需多说。
- reduce-cost技术,包括local fiting domains 以及 state-averaged NOs and NAFs,在MINP中主要通过redcost_exc选项控制,还包括一堆子选项,在genmrcc.sh中通过-R选项控制。
- local correlation methods,在MINP中主要通过localcc选项控制,还包括一堆子选项,在genmrcc.sh中通过-L选项设置。
- Multi-level local correlation methods,有点像ONIOM,本帖不涉及到。有兴趣的看手册中corembed选项。
- fmm加速SCF收敛,由于SCF本身算的很快,所以这个方法我没有研究,有兴趣的同学自行尝试(参考手册中的fmm选项)
本贴测试了各种redcost_ex和localcc设定带来的误差。测试选择了5种不同特点的激发态体系,包括LE,MR,ICT,TICT,CT-like体系
以不开加速为参考,开启各种加速组合后取上述6个体系中单三线态最大的误差,结果如下图:
横坐标标签的说明: R5Lon对应于脚本中的genmrcc.sh -R 5 -L on, 对应于MINP中的redcost_exc=5 localcc=on, 其他的类推。
从图中可以看到大部分的近似都没法用,首先localcc是肯定要关掉的,其次redcost_exc 只能选3 或者8(具体含义请自行查手册)
这么多加速不能用的原因是很大一部分不是针对TDDFT开发的并且不适合用三重态,如果我们只考虑SCS-CC2的单重态的话,那么很多加速选项效果都还可以接受:
7.加速和精度(二)
这一小节研究各种加速手段带来的速度提升和精度损失的对比。
除了mrcc内置的加速方法以外,我们还可以用其他方法加速,包括:
- 删除结构中不参与激发的基团
- 使用小基组
- 修改CC收敛限
- 减少算的激发态数目
这么进行了一系列采用各种加速组合的SCS-CC2计算,分子是DABNA,测试结果见下图:
纵坐标标签的说明: R3 C5 对应于脚本中的 -R 3 -C 5, 对应于MINP中的redcost_exc=3 cctol=5
讨论:
- 把CC收敛标准从默认的6改到5对精度几乎没有影响,速度可以提升1.5倍
- 使用R3或者R8产生的误差小于0.01eV,速度可以提升1.5倍
- R3/8和C5连用速度可以提升1.5*1.5=2.25倍左右
- C4不可接受,容易收敛到错误的态从而产生巨大误差(后面经过实验,发现对于大一点的体系C5算不准的风险也比较大)
- def2-TZVP比cc-pVTZ快一点,大体系必须用TZ基组的时候可以考虑。
- cc-pVDZ比cc-pVTZ快8.5倍左右,C5R3双加速后快到20倍,误差也不算大,对于大体系强烈推荐
- def2-SVP系列相比cc-pVDZ没有优势,不推荐
- ΔEST对基组和R3/C5的敏感度更低
- 使用adcc在同级别下算一个单重态的耗时是85000秒左右, 这样算ST大概是mrcc耗时的5倍,这就是ri加速的功劳,另外如果开启R3C5, 则mrcc的耗时大概只有adcc的1/10。看来mrcc才是真的c。
8.激发态数量对计算速度的影响
这个是DABNA在cc-pVDZ下算不同数量的激发态(单三态同时算)的耗时, 可以看到基本上是一个线性关系
另外在本次测试中激发态的数量对第一激发态的能量无影响
这是因为这个分子比较简单,根据我的经验,如果分子比较复杂,HOMO或者LUMO有近简并的情况:
比如二维的大共轭体系(比如稠环芳烃),或者是分子中存在多个共轭片段但是他们之间耦合又很弱(比如TICT分子)
那么容易出现态的交叉(CIS的第一激发态变成CC2的第二激发态)
这时候就需要多算一些态确保第一激发态没有问题
另外对对于中等体系,可以先用cc-pVDZ/C5/R3的超快方法多算几个态。确定没有问题后,切换到更精确的方法少算几个态
9. benchmark
复习一下, mrcc的cis模块可以计算激发态的方法有:
ADC(2), CC2, CIS(D), DIS(D∞) 以及他们的SCS/SOC 版本
不含MetaGGA的泛函的TDDFT, TDA
不含MetaGGA的双杂化泛函的TDDFT, TDA版本,二阶项可以是ADC(2)或CIS(D),以及它们的SCS/SOS版本(算一下排列组合可以发现,一个TD-DH-DFT有2^3=8个子版本)这么多方法具体表现如何有必要做个评测,下面对5个代表性体系做了评测:
注意:
1)双杂化泛函中的二阶项虽然可以加随意使用SCS/SOS版本,但是这种做法是否合理存疑,按照坛友hebrewsnabla的说法,这种做法相当于产生了一个自定义泛函,或者是对原始泛函进行了一个随意的修改,这种修改的合理性没有研究过,如果被审稿人质疑,应该不会有好的办法进行回应。所以虽然这里测试用了SCS/SOC的版本,大家在实际上发表文章的时候要慎用。
2)XYG3的TDDFT版本不是XYG3的官方开发的,结果不对
A) MR-TADF分子
这类分子的具有双激发特征,导致明明空穴电子重叠很大,ΔEST却很小
- ADC2, CC2, DIS(D∞) 给出类似的结果,SCS/SOC会提高激发能并且略微降低ΔEST
- TDDFT普遍高估的ΔEST,因为HF%小的会低估T1,而HF%大的会高估S1
- TDA比TDDFT给出更高的激发能
- 双杂化中ADC(2)的表现比CIS(D)稳定,而CIS(D)中TDA又比TDDFT稳定,所以如果用ORCA算TD-双杂化,建议用TDA,因为ORCA只有CIS(D)版的双杂化
- TD_XYG3 比较严重的低估了S态和T态,但是该技术的实现被XYG3开发组的官方否认了,据他们说
B) LE分子
普通的线性共轭系统,妥妥的LE态,据说这玩意也有双激发
C) ICT分子
典型的平面共轭D-π-A体系,分子内电荷转移激发态,第一激发态通常同时具有CT和LE特征
TD-DH-DFT + CIS(D)不稳定
高HF%的泛函TDDFT算三重态去激发严重
D) CT like分子
二维共轭稠环分子有所谓的charge transfer like 态
高HF%的泛函TDDFT算三重态去激发严重
TD-DH-DFT + CIS(D)容易出错
E) TICT 分子
D-A垂直,HOMO-LUMO完全分离,第一激发态在纯CT态和纯LE态之间二选一
最后感谢网友 hebrewsnabla提供的关于双杂化泛函和XYG3的宝贵意见
|
-
-
genmrcc.sh
5.74 KB, 下载次数 Times of downloads: 136
-
-
mrccST.py
2.54 KB, 下载次数 Times of downloads: 130
-
-
BN.xyz
1.25 KB, 下载次数 Times of downloads: 109
评分 Rate
-
查看全部评分 View all ratings
|