前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GAMESS简易编译教程

GAMESS简易编译教程

作者头像
用户7592569
发布2021-09-28 16:13:43
2K0
发布2021-09-28 16:13:43
举报
文章被收录于专栏:量子化学量子化学

GAMESS是一款历史悠久、免费开源的量子化学软件,现今最流行的分支是GAMESS-US(下文简称GAMESS),该程序的最新版可在量化大佬Mark Gordon课题组主页

代码语言:javascript
复制
https://www.msg.chem.iastate.edu/gamess/download.html

上申请,同意协议、填写邮箱等信息后一两天内会收到下载链接、账户名和下载密码。若想要以往版本的GAMESS,可在计算化学公社论坛这个帖子里直接获取

代码语言:javascript
复制
http://bbs.keinsci.com/thread-727-1-1.html

本公众号前期介绍过GAMESS的安装过程,见《GAMESS编译教程》,其中的安装步骤仍适用于这几年乃至最新的GAMESS 2021 R1。以前笔者也是一直按照前述教程编译的,但今天无意中注意到(后知后觉),GAMESS早已从2019 R1版本开始有了更简洁、省时的编译方式。

主要的变化是以前使用compall脚本进行编译,只支持单核串行编译,编译过程需要至少20 min(这还不考虑编译各种自带库),而现在可以采用make -j并行编译,16核编译仅需不到2分钟。因此有必要重新介绍该程序的安装步骤。本文以撰写时最新的2021 R1为例展示安装过程,也适用于2019 R1至今的版本。至于比2019 R1更旧的GAMESS版本,读者仍应按照《GAMESS编译教程》来编译。

1.解压

代码语言:javascript
复制
tar -zxf gamess-current.tar.gz

2.进入gamess目录,执行./config进行配置

这一步交互式地选择配置信息,无论对新版、旧版GAMESS都是需要的,为了本文的完整性,这里也展示一下

(1)按Enter键

(2)填写linux64后按Enter

(3)设置安装路径,笔者解压前已放到自己想安装的位置,直接按Enter

(4)按Enter

(5)设置可执行程序版本号,一般就用默认的00,直接按Enter即可。最后编译完后会生成gamess.00.x可执行文件

(6)选择编译器,填ifort(这也是绝大多数人的选择),然后按Enter确认。如果没装Intel编译器,可以阅读《Linux下安装Intel oneAPI

(7)填写ifort版本号,笔者用的是Intel 2019,因此写19;若读者安装的是Intel oneAPI 2021,可以填21。然后按Enter

(8)按Enter

(9)选择数学库类型,填mkl(这也是绝大多数人的选择),然后按Enter确认

(10)填写数学库路径。一般来说只要Intel编译器正确安装、写好了环境变量,此时屏幕上就会显示MKL路径(在Found:后面),直接复制粘贴一下即可

(11)填proceed,按Enter

(12)按Enter

(13)选择并行类型,笔者习惯使用sockets

(14)有三个库可选,依次填3个no

最后GAMESS会询问是否安装3个库,笔者都不用上,因此全都选no。这一步配置的作用是产生Makefile和install.info两个文件。如果有GAMESS老玩家,直接从已装好GAMESS的机器上把这两个文件拷过来应该也是可以的。

3.编译

从这里开始与旧版不同,有很大简化。依次执行如下3行即可

代码语言:javascript
复制
make ddi
make modules
make -j16

旧版的编译里,需要用户手动去移动ddikick.x文件,如今执行make ddi后它直接就在合适的目录下。make modules其实就是编译Fortran代码的各种module,这些通常会被多个代码文件共享,因此在最终的多核并行编译前,需要先编译module。最后的16是笔者机子上的核数,读者请根据自己实际情况修改。旧版要手动执行/.lked链接成gamess.00.x,现今也不需要了。

4.修改rungms脚本

rungms脚本就在gamess/目录下,只需修改这个文件中的如下三行为自己的实际路径

代码语言:javascript
复制
set SCR=/scratch/jxzou/gamess
set USERSCR=/scratch/jxzou/gamess
set GMSPATH=/home/jxzou/software/gamess

为方便以后在任意目录下都能简易运行rungms脚本,可以在自己的~/.bashrc文件里设置以下任一种环境变量

代码语言:javascript
复制
export GMS=/home/jxzou/software/gamess/rungms
alias gms='/home/jxzou/software/gamess/rungms'

挑一种设置即可,注意别把这两行误写进rungms脚本。这样以后使用$GMS或gms即代表rungms脚本。

5.测试

测试自带示例,运行

代码语言:javascript
复制
./runall 00

数字00是我们之前填写的版本号,约5 min测试完成。若不到30 s就结束了,可以随便打开一个如exam01.log文件查看结尾的报错信息,通常是用户在上述安装过程中某一步不小心弄错了。

在当前目录下,执行

代码语言:javascript
复制
./tests/standard/checktst

注意一开始有个点号。此即检查上述测试结果是否正常。笔者机子上48个例子全都能通过。可以将这48个log文件以及上述USERSCR目录下的一堆临时文件全部删除。若想单独测试rungms脚本,可以到tests/standard/下找个文件尝试,以exam01.inp文件为例,运行格式为

代码语言:javascript
复制
$GMS exam01.inp 00 2 >& exam01.gms &

此处我们假设在第4步中已经设置了$GMS环境变量。00即为版本号,2代表并行核数,可以根据自己的需求修改。对于Ubuntu系统的用户,上述格式可能会报错,可以改为

代码语言:javascript
复制
$GMS exam01.inp 00 2 >exam01.gms 2>&1 &

顺带一提,GAMESS程序手册就是gamess/目录里那些docs-开头的txt文件。如果嫌看得累,可以复制到本地转成PDF格式再阅读。

6.从Gaussian传轨道给GAMESS

我们算一个略有挑战性的体系,高锰酸根负离子MnO4-,在UHF/aug-cc-pVDZ水平算个单点,先给出高斯输入文件

代码语言:javascript
复制
%chk=MnO4-_aug-cc-pVDZ_uhf.chk
%mem=96GB
%nprocshared=48
#p UHF/aug-cc-pVDZ nosymm int=nobasistransform guess=mix stable=opt

title

-1 1
Mn     0.00000000    0.00000000    0.00000000
O      0.00000000    0.00000000    1.60200000
O      1.51038009    0.00000000   -0.53400000
O     -0.75519005    1.30802752   -0.53400000
O     -0.75519005   -1.30802752   -0.53400000

算完后依次执行

代码语言:javascript
复制
formchk MnO4-_aug-cc-pVDZ_uhf.chk MnO4-_aug-cc-pVDZ_uhf.fch
fch2inp MnO4-_aug-cc-pVDZ_uhf.fch

即可生成GAMESS的inp输入文件,内含关键词、坐标、基组和轨道信息。formchk是高斯自带的小程序;而fch2inp是笔者开发的MOKIT中的一个小程序,功能是从高斯向GAMESS传轨道,进一步了解可以阅读《自动做多参考态计算的程序MOKIT》。关键词nosymm int=nobasistransform是为保证传轨道的正确性写的,若不传轨道,则不用写这两个关键词。

如果要用DFT的话用户需要自己添加泛函名称,而此处我们用的是UHF,不需要修改自动生成的文件。提交给GAMESS做计算,即运行

代码语言:javascript
复制
$GMS MnO4-_aug-cc-pVDZ_uhf.inp 00 16 >& MnO4-_aug-cc-pVDZ_uhf.gms &

结果如下

立即就收敛了,说明传的轨道十分准确。而这个例子用GAMESS算会面临2个困难:

(1)GAMESS内置基组对Mn支持aug-cc-pVTZ,却不支持aug-cc-pVDZ。

(2)即使用户使用自定义基组,由于GAMESS的SCF收敛性远不如高斯,能量会以几十、上百Hartree地振荡,最终不收敛。

当然,换成aug-cc-pVTZ就更难算了。这个例子展示了当我们在GAMESS中碰到SCF不收敛时,除了去翻程序手册添加帮助收敛的关键词外,还可直接用fch2inp小程序从高斯fch文件传轨道给GAMESS。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档