VASP 5.4.4 编译集成 VTST+VASPSol+Wannier90+libbeef
本文最后更新于:2026年2月1日 下午
最近因为在一个新的超算平台开了户,但是奇葩的是这个超算平台竟然 VASP 都没有编译。由于着急算个 case,想着干脆自己编译一个算了。本着大而全的心思,把常用和不常用的几个插件都编译进去。
本文记录了在 Intel 2018 工具链环境下,编译集成了 4 个常用插件的 VASP 5.4.4 的完整过程。
插件功能简介
在开始编译之前,先简单介绍一下本次集成的各个插件的功能:
libbeef
BEEF (Bayesian Error Estimation Functional) 是一个用于密度泛函理论的贝叶斯误差估计泛函库。它可以在保持计算成本基本不变的情况下,对 DFT 计算结果提供误差估计,特别适用于需要评估计算不确定性的研究。
- 官方仓库: https://github.com/vossjo/libbeef
- 相关文献: Wellendorff et al., Phys. Rev. B 85, 235149 (2012)
- 主要用途: 化学反应能垒的不确定性分析、吸附能计算误差评估
Wannier90
Wannier90 是一个计算最大局域化 Wannier 函数(MLWF)的工具,可以从 DFT 计算得到的 Bloch 态构建局域化的 Wannier 函数。
- 官方网站: http://www.wannier.org
- 官方文档: https://github.com/wannier-developers/wannier90/raw/v3.1.0/doc/compiled_docs/user_guide.pdf
- 主要用途:
- 能带结构的插值和分析
- 计算介电性质、Berry 曲率
- 构建紧束缚模型用于输运性质计算
- 注意: VASP 5.4.4 推荐使用 Wannier90 2.x 版本,3.x 版本可能存在兼容性问题
VTST (Transition State Tools)
VTST 是德克萨斯大学 Henkelman 课题组开发的过渡态搜索工具集,包含了多种优化算法和过渡态搜索方法。
- 官方网站: https://theory.cm.utexas.edu/vtsttools/
- 主要功能:
- NEB (Nudged Elastic Band): 反应路径搜索
- Dimer: 鞍点搜索
- 改进的优化算法 (BFGS, LBFGS, FIRE 等)
- Lanczos: 计算 Hessian 矩阵选定本征模
- 适用场景: 催化反应机理研究、扩散路径计算、相变过渡态
VASPSol
VASPSol 是一个隐式溶剂模型插件,基于连续介质模型处理溶液环境效应。
- 官方仓库: https://github.com/henniggroup/VASPsol
- 相关文献: Mathew et al., J. Chem. Phys. 140, 084106 (2014)
- 主要用途:
- 电化学界面模拟
- 溶液中的分子、表面反应
- 需要考虑溶剂化效应的体系
- 优势: 相比显式溶剂模型,大幅降低计算成本
一、编译器与核心模块选择
首先 module avail
看了下编译工具链,选择了比较稳健、兼容性比较好的 Intel
2018 工具链。
1 | |
建议: 将上述模块加载命令添加到
~/.bashrc中,方便每次登录 shell 自动加载,同时也要放在提交作业的脚本里面。
验证编译器和 MKL 工具是否正确加载:
1 | |
二、VASP 5.4.4 源码和插件准备
2.1 下载并解压 VASP 源码
先把 VASP 5.4.4 源码准备好。注意 VASP 5.4.4 出过一个 patch 修复了一个
bug,官方的版本是 vasp.5.4.4.pl2.tgz。
获取源码: VASP 是商业软件,需要有效的 VASP 许可证才能从官网下载: https://www.vasp.at/
创建目录,解压源码:
1 | |
2.2 准备初始 Makefile
1 | |
2.3 编译顺序说明
VASPSol 和 VTST 是源代码补丁,必须在编译 VASP 前应用;Wannier90 和 libbeef 是外部库,需要先单独编译。
本文编译顺序: 1. libbeef(独立编译) 2. Wannier90(独立编译) 3. VTST(源码补丁) 4. VASPSol(源码补丁) 5. VASP 主程序
三、编译外部库
3.1 编译 libbeef
下载源码
从 GitHub 下载 libbeef: 1
2
3cd /public/home/steven/software/test/vasp5.4.4/
git clone https://github.com/vossjo/libbeef.git libbeef-master
cd libbeef-master
编译安装
1 | |
执行完之后,在 lib/ 目录下会生成 libbeef.a
静态库文件,完整路径为:
/public/home/steven/software/test/vasp5.4.4/libbeef-master/lib/libbeef.a
修改 VASP 的 makefile.include
回到 VASP 源码文件夹 vasp.5.4.4.pl2/,编辑
makefile.include:
步骤 1: 在 CPP_OPTIONS 中添加
-Dlibbeef 预处理选项:
1 | |
步骤 2: 添加 BEEF 库路径,并在
LLIBS 中链接:
1 | |
3.2 编译 Wannier90
下载源码
Wannier90 目前有 3.x 的版本,但是为了兼容 VASP 5.4.4,这里选择 2.1.0 版本。
1 | |
配置编译选项
复制 Intel Fortran 的配置模板: 1
cp config/make.inc.ifort ./make.inc
修改 make.inc 文件,将 LIBDIR 改为使用环境变量:
1 | |
编译
1 | |
关于测试:
make test是检测是否编译成功。由于代码库比较老,如果 HPC 环境使用较新的 Python,make test可能显示 failed 或者卡住。解决方案: - 切换到 Python 2.x:module load python/2.7- 或者直接跳过测试(不影响使用)
编译完成后会在当前目录生成 libwannier.a 静态库文件。
修改 VASP 的 makefile.include
仿照上面 libbeef 的步骤,编辑 VASP 源码目录下的
makefile.include:
步骤 1: 在 CPP_OPTIONS 中添加 Wannier90
v2 接口选项:
1 | |
步骤 2: 添加 WANNIER90 库路径,并在
LLIBS 中链接:
1 | |
四、应用源码补丁
4.1 集成 VTST
下载源码
从 VTST 官网下载最新版本:https://theory.cm.utexas.edu/vtsttools/download.html
1 | |
复制源文件到 VASP
将 VTST 的所有源代码复制到 VASP 5.4.4 的 src 目录:
1 | |
修改 main.F
编辑 vasp.5.4.4.pl2/src/main.F,找到
CHAIN_FORCE 调用处(一般在 3146 行左右):
1 | |
说明: 这是为了将应力张量 (TSIF) 传递给 CHAIN_FORCE 函数,VTST 需要这个参数用于 NEB 计算中的晶格优化。
修改 .objects 文件
编辑 vasp.5.4.4.pl2/src/.objects 文件,找到两处
chain.o(搜索即可找到),在这两处 chain.o
之前分别添加以下内容:
1 | |
4.2 集成 VASPSol
下载源码
从 GitHub 下载 VASPSol:
1 | |
复制源文件
1 | |
应用补丁
1 | |
注意: VASP 5.4.4.pl2仍然使用
pbz_patch_541补丁。
修改 makefile.include
在 CPP_OPTIONS 中添加 VASPSol 选项:
1 | |
五、编译 VASP
所有插件配置完成后,回到 VASP 源码目录:
1 | |
5.1 编译
1 | |
编译时间: 根据硬件配置,完整编译大约需要 20-40 分钟。
5.2 编译目标说明
make std: 标准版本(支持 k 点)make gam: Gamma-only 版本(仅 Gamma 点,速度更快)make ncl: 非共线磁性版本(自旋轨道耦合)make all: 编译以上三个版本
5.3 验证编译结果
编译成功后,在 bin/ 目录下会生成三个可执行文件:
1 | |
六、总结
本文详细记录了在 Intel 2018 工具链下编译 VASP 5.4.4 并集成 4 个常用插件的完整流程:
- libbeef: 贝叶斯误差估计泛函,用于 DFT 计算不确定性分析
- Wannier90: 最大局域化 Wannier 函数工具,用于能带插值和紧束缚模型构建
- VTST: 过渡态搜索工具集,包含 NEB、Dimer 等算法
- VASPSol: 隐式溶剂模型,用于溶液环境模拟
关键要点: - 外部库(libbeef, Wannier90)需要先独立编译 -
每个插件都需要对应的 CPP_OPTIONS 预处理选项
参考资料
- VASP 官方 插件Wiki: https://www.vasp.at/wiki/index.php/Makefile.include#Wannier90_(optional)
- libbeef 文档: https://github.com/vossjo/libbeef
- Wannier90 用户手册: https://github.com/wannier-developers/wannier90/raw/v3.1.0/doc/compiled_docs/user_guide.pdf
- VTST Tools 官网: https://theory.cm.utexas.edu/vtsttools/
- VASPSol GitHub: https://github.com/henniggroup/VASPsol
- VASPSol 论文: Mathew et al., J. Chem. Phys. 140, 084106 (2014)
- BEEF 泛函论文: Wellendorff et al., Phys. Rev. B 85, 235149 (2012)
“觉得不错的话,请我喝杯咖啡吧~ ୧(๑•̀⌄•́๑)૭”
ETH支付
DOGE支付