xTB方法是Grimme组提出的一种新颖的半经验方法,写完整了叫做GFN-xTB
方法,目前xTB已经推出到第二代。相比PM系列半经验方法,最大的一个优势是:ORCA从4.2.0开始支持调用xTB,而ORCA原有的半经验方法只有AM1和PM3,AM1况且不说,PM系列方法都已经出到PM7了呀(无奈)。
安装
xTB只有单独一个可执行文件,没有其他依赖,多线程采取的是OpenMP框架,是一个编译时多线程,因此不同于ORCA依赖的OpenMPI框架,没有运行时需要安装。直接从GitHub仓库下载release就可以了。解包出来把bin
目录下的xtb
文件移到ORCA的目录里也行,做个软链接也行,个人倾向于做软链接:
# 比如我这边拉取的是6.4.0版
tar -xf tar -xf xtb-210201.tar.xz
# 比如我这边ORCA目录已经放进PAHT了
ln -s $(pwd)/xtb-210201/bin/xtb $(dirname "$(which orca)")/otool_xtb
ln -s $(pwd)/xtb-210201/bin/xtb $(dirname "$(which orca)")/xtb
几个重要的后处理
报错
Segmentation fault (core dumped)
这个只能说xtb的开发还处于早期阶段
# 解除文件大小软限制
ulimit -s unlimited
报错
forrtl: severe (174): SIGSEGV, segmentation fault occurred
这个报错呢也只能说xtb的开发还处于早期阶段
# 扩大堆栈大小,如果还报错继续扩大
export OMP_STACKSIZE=4G
调用
关键词列写xtb1
就可以调用GFN-xTB
,对应的写xtb2
就可以调用二代GFN2-xTB
。按4.2.1版手册描述,这个半经验方法可以进行以下计算:
- Single Point Energy
- Energy and Gradient
- Optimization, using all kinds of constraints, relaxed surface scans, etc.
- Nudged-Elastic Band calculations
- Numerical Frequency Calculations
- Intrinsic Reaction Coordinate
- Molecular Dynamics Calculations
- QM/MM calculations
基本就是除了激发态,什么都能算了。
TechTips
一般用半经验方法,主要是因为原子数量太多,比如做显式溶剂,不太确定哪几个位点的溶剂分子不可以忽略,那么考虑半经验粗略优化一下结构。在这种情况下会出现使用默认opt
关键词,优化过程卡在Diagonalizing the G-matrix
,或者干脆报内存不足。这主要是因为冗余内坐标优化需要G矩阵求逆,换成直角坐标系就没这个问题了。当然作为trade-off,众所周知,直角坐标系优化步数比较多,因此优化比较慢,只不过反正每一步算得飞快,问题倒也不是很大就是了。