计算化学公社
标题: Molpro 2015 源码编译及在 Slater 基函数下计算的尝试 [打印本页]
作者Author: mizu-bai 时间: 2024-9-19 11:04
标题: Molpro 2015 源码编译及在 Slater 基函数下计算的尝试
本帖最后由 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
- $ 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,没有什么特别的。
- if(.not.modul_slater.or.NPROC_MPP.gt.1) then
- skipped
- end if
- geomtyp=zmat
- geometry={
- o;h1,o,r;h2,o,r,h1,theta
- }
- r=0.96 ang
- theta=102
- intyp='SLATER'
- basis=VB1
- hf
- ccsd(t)
- multi
- 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。
(, 下载次数 Times of downloads: 0)
后续请教了一下 @zjxitcc ,他说有人问过他 Molpro 能不能做 Slater 基下的计算,似乎是 GTO 有电子-核 cusp 问题,需要跟 STO 基组的结果对比。其实也好奇 Slater 基下的计算还有啥用……
四、总结
折腾了一下 Molpro 2015 的源码编译,这似乎是最后一版永久授权的了,另外尝试了一下 STO 做计算,这个模块似乎很久没有更新了,并行方面 OpenMP 和 MPI 都不吃,以上测试的例子中算电子积分的好耗时比 CCSD(T) 还长,算到 STO-20G 展开的时候已经快 10 分钟了,并且已经收敛就没有继续测了。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |