前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XYG3型泛函在ORCA中的使用

XYG3型泛函在ORCA中的使用

作者头像
用户7592569
发布2022-03-31 21:01:54
1.3K0
发布2022-03-31 21:01:54
举报
文章被收录于专栏:量子化学量子化学

XYG3型泛函在ORCA中的使用

本篇文章中我们讨论XYG3型泛函在ORCA中的使用方法。关于XYG3型泛函的介绍可见上期链接

实际上,在以往版本的ORCA中,就可以通过多步任务来进行XYG3单点计算,其逻辑和上期链接中的高斯多步任务是类似的。不过,ORCA5大大完善了Compound Scripts功能,可使这一过程更加自动化,所以本文介绍的方法都是基于ORCA 5.0.2的Compound Scripts功能。

本文所需的脚本可在

https://github.com/hebrewsnabla/CompoundScripts

下载。依次点击Code, Download ZIP可下载整个压缩包,xdh.cmp脚本在其中XYG3TypeDoubleHybrids/文件夹下。

基本用法

首先我们需要编辑一个ORCA输入文件(例如test.inp),先写好坐标、并行进程数、内存等,然后不需要写!开头的关键词,直接通过%compound部分指定XYG3计算,基组等设置都作为参数传给Compound脚本xdh.cmp

代码语言:javascript
复制
*xyz 0 1
N  0.0       0.0       0.108827
H  0.0       0.947455 -0.253931
H  0.820520 -0.473727 -0.253931
H -0.820520 -0.473727 -0.253931
*
%pal nprocs 4 end
%maxcore 1000

%compound "xdh.cmp"
  with
    xc = "xyg3";
    basis = "def2-svp";
    auxbas = "def2-svp/c";
end

必须写的三个参数是泛函xc,基组basis,RI-MP2辅助基组auxbas。目前脚本"xdh.cmp"只支持泛函xyg3,"xdh_scs.cmp"只支持泛函xygjos。目前该脚本强制在XYG3的PT2步骤开启RI-MP2,故必须指定辅助基组(AutoAux也是可以的),但不支持SCF步骤的RI,因为这通常不是决速步骤。一个可选参数是dlpno = "true";,可以将RI-MP2切换成DLPNO-MP2。

将脚本"xdh.cmp"与输入文件放在同一目录,按正常方式运行ORCA即可。在输出文件末尾可以看到

代码语言:javascript
复制
-----------------------------------------------------------------------------------------
                                    COMPOUND BLOCK
                                 SUMMARY OF VARIABLES
-----------------------------------------------------------------------------------------

Variable Name                                   Value             Evaluation String
-------------                                   -----              ---------------
XC                               |                     xyg3    | xyg3
BASIS                            |                 def2-svp    | def2-svp
AUXBAS                           |               def2-svp/c    | def2-svp/c
DLPNO                            |                    false    | false
ACM[0]                           |               0.80330000    | 0.8033
ACM[1]                           |               0.21070000    | 0.2107
ACM[2]                           |               0.67890000    | 0.6789
SCALLDAC                         |               0.67890000    | 0.6789
PT2_COEFF                        |               0.32110000    | 0.3211
ENSCF                            |             -56.37431512    |
EPT2                             |              -0.26373254    |
EDH                              |             -56.45899964    | (ENSCF+EPT2*PT2_COEFF)
                         ****ORCA TERMINATED NORMALLY****

其中EDH就是我们想要的单点能。

进阶用法

下面简单讲解"xdh.cmp"脚本的结构。该脚本的核心部分如下(不包括变量初始化部分)

代码语言:javascript
复制
if (xc = "xyg3") then
 pt2_coeff = 0.3211;
 acm[0] = 0.8033;
 acm[1] = 0.2107;
 acm[2] = 0.6789;
 scalldac = 0.6789;
endif

New_Step
! b3lyp_g &{basis} noautostart
Step_End
Alias scf

Read_Geom scf
Read_Mos scf
New_Step
! b3lyp_g &{basis} nopop
%scf
 maxiter 1
 ignoreconv true
end
%method
 Functional b3lyp_g
 ACM = &{acm[0]}, &{acm[1]},&{acm[2]}
 ScalLDAC = &{scalldac}
end
Step_End
Alias nscf

Read_Geom scf
Read_Mos scf
New_Step
! RI-MP2 &{basis} &{auxbas}
! noiter nopop nofrozencore
%mp2
 dlpno &{dlpno}
end
Step_End
Alias pt2

read Enscf = SCF_ENERGY[nscf];
read Ept2 = MP2_CORR_ENERGY[pt2];

Edh = (Enscf + Ept2*pt2_coeff);

ORCA允许在脚本中定义若干个步骤(以New_Step开始,Step_End结束),并使用Alias命名。XYG3计算分为三个步骤:B3LYP自洽(scf),某个自定义泛函的非自洽计算(nscf),利用DFT轨道的PT2(pt2)。后两个步骤会读入第一步的轨道。最后读出后两步的能量,汇总成双杂化泛函能量。

直接在ORCA输入文件中写的大部分关键词对于Compound Scripts是无效的,只能通过参数传给Compound Scripts。由于在双杂化泛函计算中,可以指定的附加关键词成百上千,所以我们暂未支持较多的脚本参数。有DIY需求的进阶用户可以自行修改上述三个步骤中的关键词。例如

  1. 在步骤scf中启用UKS对称破缺初猜、检查波函数稳定性、添加帮助收敛的关键词。注意不需要在nscf中添加这些关键词。
  2. 在步骤scf和nscf中修改DFT格点。
  3. 在步骤pt2中修改MP2相关的选项,如删去nofrozencore,添加tightPNO。

该脚本可能还有不少bug(多半是ORCA的bug),欢迎在github的issue区发起讨论。

下期预告:使用PySCF+dh做XYG3优化任务和二阶梯度性质计算。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子化学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • XYG3型泛函在ORCA中的使用
    • 基本用法
      • 进阶用法
      相关产品与服务
      云函数
      云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档