首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >离线安装量子化学软件Dalton

离线安装量子化学软件Dalton

作者头像
用户7592569
发布2021-09-07 11:27:57
1.8K0
发布2021-09-07 11:27:57
举报
文章被收录于专栏:量子化学量子化学

Dalton是一款开源免费的量子化学程序,主要特色是支持一大堆性质的计算,例如DFT下的二次响应计算(常规TDDFT计算仅是线性相应),MCSCF波函数下的核磁NMR计算等等,以及各类激发态方法。当然,也有一些高精度单参考方法(如MP2-R12和CCSD-R12等),但较少用到。其PDF手册在

https://daltonprogram.org/documentation

可下载。本公众号前期也推出过相关教程《Dalton使用——磷光及其相关过程》。本文主要介绍如何离线安装Dalton。

安装前提:cmake>=3.1。机子上需装有C、C++和Fortran编译器,BLAS和LAPACK数学库。若想要MPI并行,还需提前安装任一种MPI(如openmpi或Intel MPI)。

笔者撰文时用的是cmake 3.21、Intel 2019 update 5(内含icc, icpc和ifort编译器和MKL数学库),这些前提都满足。若读者机子未安装过Intel全家桶,对于2019或2020版本,可在如下几处

http://bbs.keinsci.com/thread-21841-1-1.html
http://bbs.keinsci.com/thread-12118-1-1.html

下载到压缩包。对于2021版本,可阅读《Linux下安装Intel oneAPI》。笔者安装的是利用MKL库的OpenMP并行版Dalton,无需任何MPI。

1. 下载源码

到Dalton的GitLab主页

https://gitlab.com/dalton/dalton/-/releases

下载Dalton源码。笔者下载的压缩包是dalton-Dalton2020.0.tar.gz。注意Dalton还依赖于其他库,若按这种方式下载,解压后external/目录下只有三个空文件夹,因此我们还需下载对应的三个库。这也很简单,到Dalton主页(https://gitlab.com/dalton/dalton)一看便知

点击external,再依次点击三个库,分别下载即可

笔者下载下来的是

gen1int-1e4148ecd676761b3399801acba443925a1fee6b.tar.gz
pelib-public-2c5aa38e391c6b2a3b4a07daa7459cbaad25ef7c.tar.gz
qfitlib-1acdc9863fdeae2cdbc7f5a599413257a095b8ad.zip

2. 安装

解压

tar -zxf dalton-Dalton2020.0.tar.gz
cd dalton-Dalton2020.0/external/

将下载好的三个库复制至此目录下,解压,重命名文件夹

(复制过程略)

tar -zxf gen1int-1e4148ecd676761b3399801acba443925a1fee6b.tar.gz
tar -zxf pelib-public-2c5aa38e391c6b2a3b4a07daa7459cbaad25ef7c.tar.gz
unzip qfitlib-1acdc9863fdeae2cdbc7f5a599413257a095b8ad.zip
rm -rf gen1int pelib qfitlib
mv gen1int-1e4148ecd676761b3399801acba443925a1fee6b gen1int
mv pelib-public-2c5aa38e391c6b2a3b4a07daa7459cbaad25ef7c pelib
mv qfitlib-1acdc9863fdeae2cdbc7f5a599413257a095b8ad qfitlib
rm -rf *.gz *.zip

这三个库会在编译Dalton时自动被检测并编译,因此这里我们直接到上级目录编译Dalton即可

cd ..
./setup --fc=ifort --cc=icc --cxx=icpc --mkl=parallel --prefix=/home/$USER/software
cd build
make -j16
make install

其中prefix指定存放可执行程序的路径,可按自己的偏好修改。此处笔者编译的不是MPI版本,而是利用了MKL库的OpenMP版,适用于节点内并行,适合单个节点核数比较多的情况。-j16表示用16核并行编译,读者请根据自己机子实际情况修改。16核编译耗时约3 min,完成后可在/home/$USER/software/dalton/目录下看到生成的可执行文件。

3. 配置环境变量和测试

在~/.bashrc文件中设置临时文件路径和并行核数等

export PATH=/home/$USER/software/dalton:$PATH
export DALTON_TMPDIR=/scratch/$USER
export OMP_NUM_THREADS=16

然后执行source ~/.bashrc使之生效。这些路径仅为笔者偏好,读者可自行修改。接着进行测试,即在build文件夹下执行

ctest

该版本有526个测试例子,笔者用16核耗时约2小时。大多数例子都能正常通过,有27个例子Failed,屏幕有输出信息供自己检查,看起来没什么问题。至此,原文件夹dalton-Dalton2020.0已经没用了,可以删掉。如果Dalton使用过程中有任何问题,可以到https://gitlab.com/dalton/dalton/-/issues提问。

4. 随便算个CCSD(T)做测试

我们做一个水分子的CCSD(T)/cc-pVTZ计算,与高斯的结果进行对比。一般而言Dalton需要至少2个输入文件,展示如下:

h2o.dal文件内容

**DALTON INPUT
.RUN WAVE FUNCTIONS
**WAVE FUNCTIONS
.CC
*CC INPUT
.FREEZE
1 0
.CC(T)
**END OF INPUT

h2o.mol文件内容

BASIS
cc-pVTZ
 CCSD(T)/cc-pVTZ for H2O molecule
 No symmetry is used
AtomTypes=2 Integrals=1.0D-14 Charge=0 NoSymmetry Angstrom
Charge=8. Atoms=1
O    -0.78690803    0.04178273    0.0
Charge=1. Atoms=2
H_a   0.17309197    0.04178273    0.0
H_b  -1.10736261    0.94671856    0.0

提交

dalton -gb 8 -omp 16 -ow h2o

注意高斯做电子相关计算默认冻核的,但在Dalton中则默认不是,我们需要显式地将冻核数目写出来,此例中冻结最低的1个双占据轨道(即氧原子的1s轨道),二者算出的能量方能严格对比。对于冻核不了解的小伙伴可以看《电子相关计算中的“冻核”近似》。算完后在输出文件h2o.out中找到CCSD(T)能量,与高斯算的相差1.75×10-8 a.u. 高斯输入文件大家都很熟悉,就不展示了。

在以后的教程中我们会更详细地介绍Dalton的用法。

5. 从Gaussian向Dalton传轨道

这里举一个例子:四重态Co原子的ROHF计算。注意Dalton不支持UHF/UDFT方法,这里我们用ROHF。先给出高斯输入文件

%chk=Co.chk
%mem=8GB
%nprocshared=8
#p ROHF/cc-pVTZ nosymm int=nobasistransform

title

0 4
Co   0.0   0.0   0.0

算完后找到ROHF能量为-1381.35962681 a.u. 如果仅使用Dalton进行计算,输入文件为

Co.dal文件

**DALTON INPUT
.RUN WAVE FUNCTIONS
**WAVE FUNCTIONS
.HF
*SCF INPUT
.DOUBLY OCCUPIED
12
.SINGLY OCCUPIED
3
**END OF INPUT

Co.mol文件

BASIS
cc-pVTZ
haha1
haha2
AtomTypes=1 Integrals=1.0D-14 Charge=0 NoSymmetry Angstrom
Charge=27. Atoms=1
Co      0.0      0.0      0.0

笔者机子上算出ROHF能量是 -1381.30417911a.u. 比高斯的结果高不少。当然对Dalton有丰富经验的用户可以翻看其手册添加关键词进行各种尝试,此处我们可以直接利用高斯算好的结果,依次执行

formchk Co.chk Co.fch
fch2dal Co.fch

即可生成Co.dal和Co.mol文件。fch2dal小程序是笔者开源的MOKIT程序包中的一个小程序,可在https://gitlab.com/jxzou/mokit下载,推荐下载源代码压缩包到Linux下编译使用。若读者在发表的工作中使用了fch2dal,请记得引用MOKIT,引用格式在程序目录下的README.md文件中Citation部分有写。

生成的坐标和基组数据位于mol文件中,而关键词和算好的分子轨道位于dal文件中,无需自己手写这两个文件。前述高斯输入文件中的关键词nosymm int=nobasistransform即是为了此刻准备的,如果不传轨道则不需写这两个关键词。如另有特殊计算需求(使用DFT、指定泛函名称等),可自行修改dal文件内容。此处我们算的是ROHF,直接提交即可

dalton -gb 1 -omp 16 -ow Co

完成后查看输出,发现1圈即收敛,能量与高斯算的结果一模一样

不过,这个例子其实蕴含了一些更深层次的有趣问题,例如:

(1)Dalton算出的-1381.30417911 a.u.能量偏高,能否检验其ROHF波函数稳定性?

(2)高斯算出的-1381.35962681 a.u.通过肉眼观察fch文件里的轨道可以发现其对应电子组态3d84s1,但元素周期表上写的明明是3d74s2,如何算出想要的电子组态呢?

且听下回分解。

Reference

[1] https://dalton-installation.readthedocs.io/en/latest/
[2] http://sobereva.com/463
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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