1. 软件简介
Atomic and molecular electronic structure program (Amesp)是由张英峰独立开发的一款GTO框架的闭源免费的量子化学软件,软件由Fortran语言编写,软件网址为www.amesp.xyz。Amesp软件支持多种WFT方法和DFT方法及其一阶和二阶解析导数,可进行几何结构优化以及振动分析,支持激发态计算,并可以考虑溶剂化以及相对论效应。同时可以使用RI和COSX等近似方法加快能量和能量导数的计算。SCF采用多种方法提高收敛的稳定性和速度,具体的功能介绍如下:
(1) WFT方法:
RHF, UHF, ROHF。
RMP2, UMP2, ROMP2, SCS-MP2, SOS-MP2。
基于RHF和UHF的MP3, MP2.5, MP4。
基于RHF和UHF的CID, CISD, QCISD, QCISD(T)。
基于RHF和UHF的CCD, CCSD, CCSD(T)。
CASSCF, CASCI, Full CI。
检测RHF, UHF, ROHF的波函数稳定性。
(2) DFT方法:
RKS, UKS, ROKS,支持LDA, GGA, meta-GGA三种类型的泛函,以及双杂化泛函,共24种泛函。
LDA: LSDA, Xalpha; GGA: PBE, BLYP, PW91, BP86, HCTH407。
meta-GGA: TPSS, M06L。
Hybrid-GGA: B3LYP, BHLYP, PBE0, B3PW91, B97, B971, B972。
Hybird-meta-GGA: TPSSh, TPSS0, M06-2X, M05-2X。
Double-hybrid functionals: B2PLYP, B2GP-PLYP, DSD-PBEP86, DSD-BLYP。
检测RKS, UKS, ROKS的波函数稳定性。
(3) 大体系计算方法:
DFTB方法。
UFF力场。
(4) 激发态方法:
基于RHF, UHF, ROHF的CIS, TDHF方法
基于RKS, UKS, ROKS的TDDFT, TDA方法。
基于RHF, UHF的CIS(D)方法。
基于RKS, UKS的双杂化泛函的激发态(TDDFT, TDA)计算。
SOC: 单重态-三重态的旋轨耦合矩阵元。
NAC: 基态-激发态的非绝热耦合矩阵元。
(5) 加速计算的方法:
使用 RI 近似和 chain of spheres exchange (COSX) 近似加速SCF、MP2以及激发态计算,其中RIJ和COSX支持到二阶解析导数。
(6) 辅助SCF收敛方法:
初猜:harris, huckel, gwh, core。
使用ADIIS/EDIIS CDIIS的组合加快收敛, Second-Order SCF(SOSCF)。
其他:密度阻尼方法,费米展宽,能级移动。
(7) 溶剂化效应:
使用CPCM隐式溶剂化模型考虑溶剂化效应,支持到二阶解析导数。
(8) 相对论效应:
使用Spin-free exact two-component (SF-X2C)考虑标量相对论效应,支持到一阶解析导数。
(9) 波函数分析:
Mulliken电荷和Löwdin电荷,电子密度,多极矩,静电势(ESP)和密度拟合静电势(DF-ESP),交换相关势等。
(10) 其他:
极化率,电荷转移积分,Mayer能量分解方法,DFT-D2和DFT-D3,Basis Set Superposition Error (BSSE),定域化轨道计算等。
(11) 一阶解析导数:
RHF, UHF, ROHF, RMP2, UMP2。
RKS, UKS,ROKS,支持LDA, GGA, meta-GGA三种类型的泛函,以及双杂化泛函。
基于RHF和UHF的CIS,TDHF。
基于RKS, UKS的TDDFT, TDA方法。
CASSCF方法。
DFTB方法。
UFF力场。
(12) 几何结构优化:
使用Berny方法,支持使用解析一阶导数和解析二阶导数进行优化,支持笛卡尔坐标、冗余内坐标以及内坐标优化,支持限制性优化。
(13) 二阶解析导数:
RHF, UHF。
RKS, UKS,支持LDA, GGA, meta-GGA三种类型的泛函。
UFF力场。
可以对其他支持一阶解析导数计算的方法使用数值方法进行计算,计算谐振频率以及相关的热力学量,解析二阶导数也可用于几何结构优化。
2. 软件的安装
首先从www.amesp.xyz下载软件,然后将软件解压,将解压后的Amesp文件移动到某个目录,比如/opt,并在~/.bashrc添加如下环境变量:
代码语言:javascript复制export PATH=$PATH:/opt/Amesp/Bin
export KMP_STACKSIZE=4G
ulimit -s unlimited
3. 输入文件
Amesp的输入文件需要书写相应的功能模块以及对应的关键词,功能模块以及对应的关键词以固定的结构书写,其结构如下所示:
代码语言:javascript复制% maxcore M
% npara N
! method1 method2 method3 ...
>block1
keyword11 option11
keyword12 option12
......
end
>block2
keyword21 option21
keyword22 option22
......
end
......
>xyz charge spin_mult
elem1 coordinate_x1 coordinate_y1 coordinate_z1
elem2 coordinate_x2 coordinate_y2 coordinate_z2
......
end // 注:每一个模块的end这一行必须写。
第一行中的“% maxcore M” 确定使用多少内存,比如用户想使用500M用于计算,那么这一行就写作:“% maxcore 500” , 如果想使用3GB,需要写作:“% maxcore 3000”。默认:% maxcore 1000。“% npara N”这一行确定使用多少CPU并行。默认:% npara 1。“! method1 method2 method3...” 这一行确定方法、基组以及计算方法等,“!”与关键词之间要空一格。每一个功能模块>block需要以“>” 作为开始,并且以“end”作为结束标志。默认情况下不需要写任何功能块,用户需要特定的功能时可以在输入文件中通过功能块控制,在Amesp中一共设置了如下表1所示的功能模块:
表1. Amesp中的功能块
scf | 控制scf的模块 |
---|---|
method | 控制使用各种方法的模块 |
posthf | 控制post-HF的模块 |
ope | 控制其他操作的模块 |
opt | 控制几何优化的模块 |
freq | 控制频率的模块 |
pcm | 控制PCM溶剂化的模块 |
cas | 控制CASCI和CASSCF的模块 |
dftb | 控制DFTB方法的模块 |
更多关于功能模块的信息请参考手册。这里给出一个具体输入文件的例子:
代码语言:javascript复制% npara 4
% maxcore 1000
! b3lyp def2-SVP d3bj opt freq
>scf
maxcyc 100
guess harris
end
>opt
geomtol tight
end
>xyz 0 1
C -1.09929085 0.22458629 0.00000000
H -0.74263642 -0.78422372 0.00000000
H -0.74261801 0.72898448 0.87365150
H -0.74261801 0.72898448 -0.87365150
H -2.16929085 0.22459947 0.00000000
end
上述例子使用的是直角坐标进行输入,>xyz后面的0和1分别是净电荷和自旋多重度。若使用内坐标,>xyz应换成>zmat,其输入形式为:
代码语言:javascript复制% npara 4
% maxcore 1000
! b3lyp def2-SVP d3bj opt freq
>scf
maxcyc 100
guess harris
end
>opt
geomtol tight
end
>zmat 0 1
C
H 1 R1
H 1 R1 2 A1
H 1 R2 3 A1 2 D1
H 1 1.08 3 109.5 2 -D1
end
>coord
R1 1.070
R2 1.060
A1 109.471
D1 -119.999
end
4. 软件运行
软件运行有两种方式:
(1) 在终端输入:
代码语言:javascript复制amesp input.aip
成功运行后会产生一个input.aop的输出文件,以及默认产生一个input.mo的波函数文件。
(2) 在终端输入:
代码语言:javascript复制amesp input.aip outut.aop
成功运行后会产生一个outut.aop的输出文件,以及默认产生一个input.mo的波函数文件。
这两种方式,在使用时,要将input.aip换成实际的输入文件名。
5. 辅助程序
在Amesp中,有数个辅助程序帮助使用Amesp,在这里介绍其中三个,分别为m2a,a2m,m2m。m2a为mo file to amo file,是将amesp产生的二进制波函数mo文件转化成文本文件amo,类似于Gaussian软件的formchk。amo文件可用于aesp计算静电势以及电子密度等。a2m为amo file to mo file,是将m2a或者mokit产生的文本波函数amo文件转化成二进制文件mo,类似于Gaussian软件的unfchk,可用于作为scf的初猜。m2m为mo file to molden file,是将mo文件转化成molden文件,可以给Multiwfn软件使用。