计算化学公社

 找回密码 Forget password
 注册 Register
Views: 222|回复 Reply: 0
打印 Print 上一主题 Last thread 下一主题 Next thread

[Molpro] Molpro 2015 源码编译及在 Slater 基函数下计算的尝试

[复制链接 Copy URL]

68

帖子

7

威望

1901

eV
积分
2109

Level 5 (御坂)

本帖最后由 mizu-bai 于 2024-9-19 11:15 编辑

Molpro 2015 源码编译及在 Slater 基函数下计算的尝试

Author: mizu-bai
Date: 2024.09.19

一、简介

Molpro 自 2015 之后开始刷版本号,而且转为了订阅制,最近组里的 Molpro 2020 即将到期。之前永久授权(过期时间 2115 年)的 2015 有 pre-built 安装包,CentOS 7 还可以使用,更新的系统上就用不了了。为了确保有 Molpro 用,于是折腾了一下源码编译 Molpro 2015,同时在编译的时候发现了一个 --enable-slater 选项,对应于 Molpro 手册的 SMILES (Molecular integrals with Slater functions) 一节,出于好奇就研究了一下。

二、源码编译安装

git clone 拉取源码后,checkout 到 2015 的最后一个大版本 2015.1.39。这个版本的 Molpro 还支持 Intel 编译器编译,但实测使用 Intel oneAPI 的 ifort 会报编译器内部的错误,目前测试过且可用的编译工具是 Intel Parallel Studio XE 2018 和 GNU 8.5.0,而数学库无论是 Intel Parallel Studio XE 2018 带的 MKL 还是 Intel oneAPI 带的都可用。而 Slater 模块的代码用了 QFLOAT 等 4 精度扩展,只有 ifort 支持,gfortran 则没有实现

QFloat Intrinsic
This intrinsic is not yet implemented. The name is, however, reserved as an intrinsic. Use EXTERNAL QFloat to use this name for an external procedure.

在较新的服务器上编译时,使用了 GNU 8.5.0 + MKL 2022.0.1,而为了编译 slater 模块则使用了 Intel Parallel Studio XE 2018。

确保已经切换到 2015.1.39 的 tag,加载 MKL,开始 configure

  1. $ CC=gcc CXX=g++ FC=gfortran ./configure --prefix=/opt/molpro --enable-mpp=auto-ga-mpich --enable-scalapack --enable-integer8  # GNU
复制代码

如果要开启 slater 选项,使用 Intel 编译器并添加 --enable-slater

configure 如果没有问题,就继续 make install。如果服务器不联网的话,对于当前 Molpro 版本,提前下载好 boost_1_59_0.tar.gz,mpich-3.2.tar.gz,scalapack-2.0.2.tgz 这三个包放在 ~/.molpro/cache/ 目录下,configure 的时候会自动解压编译。编译完成后,把 .token 扔到 /opt//molpro/molprop_2015_1_linux_x86_64_i8/lib/ 目录下。

三、试试 Slater 基函数做计算

Molpro 手册中对 Slater 基函数下做计算的简介如下

The SMILES module is invoked by the intyp=’SLATER’ card. Name for ancillary files generated by the package can be supplied by SLFILES= filename. Default name is ’slscratch’.

Three-center two-electron integrals of types (AB|AC) and (AB|CD) are computed by means of Gaussian expansions (STO-nG). The default length of the expansions is 9 (STO-9G). However, integrals obtained with STO-9G expansions may have not sufficient accuracy for post-HF calculations, specially with high quality basis sets. In these cases, the length of the expansions can be changed setting the variable NGSSTO= number of gaussians. Though a maximum of NGSSTO=30 is allowed, the lengths of the expansions actually available in the package depend on the (n, l) quantum numbers. If an expansion not included is required, the program takes the largest currently available.

Program limitations: In the current version, a maximum of 511 basis functions is allowed, and contracted functions cannot be used.


给的输入文件例子是一个水分子的单点计算,除了额外指定了积分类型 intyp='SLATER',基组 basis=VB1,没有什么特别的。

  1. if(.not.modul_slater.or.NPROC_MPP.gt.1) then
  2. skipped
  3. end if

  4. geomtyp=zmat
  5. geometry={
  6. o;h1,o,r;h2,o,r,h1,theta
  7. }
  8. r=0.96 ang
  9. theta=102

  10. intyp='SLATER'
  11. basis=VB1

  12. hf
  13. ccsd(t)
  14. multi
  15. mrci
复制代码

在输出文件末尾有

        MRCI            MULTI           CCSD(T)         HF-SCF  
    -76.29216528    -76.11433968    -76.30173487    -76.06039472

不指定 NGSSTO 时,三中心双电子积分 (AB|AC) 和 (AB|CD) 默认使用 STO-9G 展开。而把基组换成更大的 VB3 时,默认的 STO-9G 展开则不够用,例如当前体系在 CCSD(T)/VB3 下计算时,CC 振幅无法收敛。

ITER.      SQ.NORM     CORR.ENERGY   TOTAL ENERGY   ENERGY CHANGE        DEN1      VAR(S)    VAR(P)  DIIS     TIME  TIME/IT
   1      1.07337270    -0.34816246   -76.41496508    -0.06331535     0.00088221  0.10D-02  0.10D-01  1  1     0.08     0.03
   2      6.04603614   -29.77487963  -105.84168225   -29.42671717    -0.06137054  0.77D-01  0.45D+01  1  0     0.11     0.03

UNREASONABLE NORM:  6.046036 CALCULATION WILL BE STOPPED

The threshold can be changed using option CC_NORM_MAX (see manual). The current value is CC_NORM_MAX= 0.20

?ERROR: NO CONVERGENCE. TRIPLES WILL NOT BE DONE. THIS CAN BE AVOIDED USING THE NOCHECK OPTION.

解决此问题需要把 NGSSTO 设置得更大,那么多大才够大呢,于是进行了一下收敛性测试。经过测试,当前体系在 NGSSTO=17 时已经收敛,E(CCSD(T)/VB3) 为 -76.36349351 Hartree。




后续请教了一下 @zjxitcc ,他说有人问过他 Molpro 能不能做 Slater 基下的计算,似乎是 GTO 有电子-核 cusp 问题,需要跟 STO 基组的结果对比。其实也好奇 Slater 基下的计算还有啥用……

四、总结

折腾了一下 Molpro 2015 的源码编译,这似乎是最后一版永久授权的了,另外尝试了一下 STO 做计算,这个模块似乎很久没有更新了,并行方面 OpenMP 和 MPI 都不吃,以上测试的例子中算电子积分的好耗时比 CCSD(T) 还长,算到 STO-20G 展开的时候已经快 10 分钟了,并且已经收敛就没有继续测了。



评分 Rate

参与人数
Participants 4
eV +21 收起 理由
Reason
sobereva + 8
zjxitcc + 3 GJ!
卡开发发 + 5 恰恰说明的是STO-kG的失败。
王二葛 + 5 GJ!

查看全部评分 View all ratings

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 22:18 , Processed in 0.181683 second(s), 27 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list