计算化学公社

标题: 关于在ORCA中使用G4(MP2)-XK [打印本页]

作者
Author:
wuzhiyi    时间: 2019-8-27 19:09
标题: 关于在ORCA中使用G4(MP2)-XK
本帖最后由 wuzhiyi 于 2019-8-27 19:11 编辑

在Gaussian中运行的话G4(MP2)-XK中的CCSD(T)这一步实在是太耗硬盘了,所以想着能否在ORCA中使用这个方法,利用ORCA执行后HF方法不是很耗硬盘这个优点,扩大G4(MP2)-XK的使用范围,在实施之前想先咨询一下可行性如何。
鉴于ORCA中没有BMK,所以opt/freq和相关谐振子的修正仍然使用原版的方法,将之后CCSD(T)/MP2/HF移动至ORCA完成。
鉴于G4(MP2)-XK使用的是修改过的Karlsruhe系列基组,所以准备自己写一个py脚本将修改过的基组转换成py dictionary的形式,然后用https://github.com/MolSSI-BSE/basis_set_exchange的write_gamess_us(basis)将基组转换为gamess_us的形式便于ORCA调用。实在不行按照手册9.4节改一下放进输入文件里也行。
最后在ORCA中的执行类似手册8.22.1关于G2(MP2)的实现方法。大致的写法如下,最后一块提取各块能量计算的部分我完全没有改,所以现在看起来没有意义,但按照文章改应该不难。
# just an initial geometry
* xyz 0 1
Li 0.0000 0.0000  1.386575
Li 0.0000 0.0000 -1.386575
*
%Compound "compoundMethodRunG4_MP2_XK"


# Define some variables
Variable ESmallHF, EBigHF, EQCCSDT    End
Variable DEMP2                          End
Variable Scale, ZPE, ZPEScaled          End
Variable aElectrons, bElectrons         End
Variable alpha, beta, HLC               End
Variable FinalEnergy                    End

# the ZPE correction load from the Gaussian opt/freq
# Gaussian keyword shoud be # BMK/maSVXP Opt Freq
Assign ZPE = 0.00            End

# The total CCSD(T) energy with def2SVSP # (Calculation 1)
New_Step
  !CCSD(T) def2SVSP
  End
Step_End
Alias_Step CCSD #Just use CCSD instead of 1
Read EQCCSDT = MDCI_Total_Energy[CCSD]   End

# The MP2 correlation energy with maTZVXP # (Calculation 2)
New_Step
  !MP2 maTZVXP
  End
Step_End
Alias_Step MP2 #Just use MP2 instead of 2

# The HF energy maTZVP. # (Calculation 3)
New_Step
  !HF maTZVP
  End
Step_End
Alias_Step SmallHF #Just use SmallHF instead of 3

# The HF energy maQZVP. # (Calculation 4)
New_Step
  !HF maQZVP
  End
Step_End
Alias_Step BigHF #Just use BigHF instead of 4

#This section need complete rewrite
Read ESmallHF = MP2_Corr_Energy[SmallHF]  End
Read EBigHF   = MP2_Corr_Energy[BigHF]    End
Assign DEMP2 = EBigHF - ESmallHF End
Assign alpha = 4.81 End
Assign beta = 0.19 End
Assign HLC   = (-alpha*bElectrons-beta*aElectrons)/1000 End
Assign FinalEnergy = EQCISDT + DEMP2 + HLC + ZPEScaled  End
END

但是有几个问题我不太确定,原本Gassuian输入文件中CCSD(T)和MP2的写法是CCSD(T,FrzG4)和MP2(FrzG4),我翻Gaussian的手册没找到FrzG4是啥意思,但读文献的话,这应该是就是普通的冻核,如果我没记错的话,在ORCA中默认对CCSD(T)和MP2就是冻核的,所有应该不用特地加别的关键字,但不太确定。

其次是VeryTightSCF和TightSCF这类小问题,我觉得应该也不难搞定。

最主要的问题是不晓得审稿人会不会挑毛病说,相关系数是按照Gaussian输出结果拟合的,你如何证明在ORCA下这些相关系数不变。。。





作者
Author:
sobereva    时间: 2019-8-27 20:44
你可以找个小体系,对比一下和原作者脚本算的结果,如果没差别就不怕审稿人问了
FrzG4就是FreezeG4,代表用G4热力学组合方法定义的冻核方式,除了价层外,对于Ga~Kr也保留亚价层的3d轨道,Na/K/Mg/Ca也保留亚价层的s和p轨道
Gaussian做CCSD(T)的时候可以加上maxdisk事先告诉程序剩多少硬盘,往往会恰当选择算法和计算方式避免过度占硬盘

作者
Author:
wuzhiyi    时间: 2019-8-28 23:29
确认了如果方法一样基组一样 数值是一样的 精确到Gauss默认输出的所有位数完全一致

耗时上除了小体系 不知为啥高斯算的飞快 其他差不多档次

个人测试结果 因小体系就在自己电脑上开一个核算  公平起见没开对称

       Gaussian    ORCA

Li2        6.7s     1m31s

CH4    15.6s      1m8s

C6H6  54m34s   44m33s

以后要是有时间试试用RIJK或RIJCOSX算SCF迭代,MP2部分也用RI-MP2,用DPLNO-CCSD(T)代替CCSD(T)跑一下测试集

然后看看效果有多差或者多好 毕竟用了RI就不能用文章中修改过的基组了 要再有时间看看重新拟合参数有没有进步

毕竟G4(MP2)-XK是对CCSD(T)/ma-def2-QZVP的数值近似 所以公平起见也看一下直接算DPLNO-CCSD(T)表现如何

关键词! DLPNO-CCSD(T) normalPNO RIJK ma-def2-QZVP autoaux tightSCF noautostart miniprint nopop

c6h6 耗时 1h22m56s

作者
Author:
sobereva    时间: 2019-8-29 01:04
wuzhiyi 发表于 2019-8-28 23:29
确认了如果方法一样基组一样 数值是一样的 精确到Gauss默认输出的所有位数完全一致

耗时上除了小体系  ...

normalPNO对当前的档次要求没法接受
作者
Author:
wth1219    时间: 2021-5-12 12:20
https://moldis-group.github.io/pople/

使用这个插件是不是会好很多?
作者
Author:
加加加    时间: 2024-11-29 09:26
wth1219 发表于 2021-5-12 12:20
https://moldis-group.github.io/pople/

使用这个插件是不是会好很多?

请问层主部署成功了吗,我pip安装之后运行测试文件提示找不到input.xyz
Traceback (most recent call last):
  File "/home/jiajia/.local/lib/python3.11/site-packages/pople/tests/test_001_enthalpy_H2/inp.py", line 16, in <module>
    out = calc(code='orca', code_exe=exe, method='g4mp2', xyz=geom)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiajia/.local/lib/python3.11/site-packages/pople/calculator.py", line 105, in calculator
    orca_g4mp2(val, start_time_main)
  File "/home/jiajia/.local/lib/python3.11/site-packages/pople/orca_g4mp2.py", line 107, in orca_g4mp2
    new_i_xyz = open("input.xyz", "r")
                ^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'input.xyz'




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3