ABACUS:DFPT与BSE实验功能环境
在个人目录编译固定新版及LibRI依赖,为声子响应和BSE实例准备独立环境。
阅读本篇目录
本组实例使用固定的ABACUS 3.11.0-beta10源码,在个人目录编译CPU程序,供DFPT线性响应与BSE激发态教程共用。它包含实验性功能,适合先完成小体系操作,再逐项检查实际材料的适用性。
unzip abacus-ri-env-wave683-*.zip
cd abacus-ri-env
bash results.sh
bash plot.sh
以上只读取参考数据并重绘,不启动新计算。重新计算请使用新解压的目录。
1. 准备一次环境,后续实例复用#
bash prepare.sh
cat SOURCE-LOCK.json
sbatch build.slurm
squeue -u "$USER"
prepare.sh下载固定源码并核对SHA256;build.slurm申请CPU整节点,在本目录最多16个并行编译进程。不要在登录节点自行启动大规模编译。
| 组件 | 本例固定版本 |
|---|---|
| ABACUS | 3.11.0-beta10,40e7ce8c575abb2ae7fc0df1bd6ec4b48a695d2d |
| LibRI | b0eff7ad70abe16176bc59f93dd787139ab81c77 |
| LibComm | 965bf90713ce5598bae4fd957d417065f77ceb42 |
| cereal | 1.3.2 |
| 编译器 | Intel icx/icpx/ifx 2024.2 |
| MPI与数学库 | Intel MPI 2021.13、顺序MKL 2024.2;复用现有ELPA/Libxc |
2. 编译哪些功能#
ENABLE_MPI=ON
ENABLE_LCAO=ON
ENABLE_LIBRI=ON
ENABLE_ELPA=ON
ENABLE_LIBXC=ON
ENABLE_OPENMP=ON
ENABLE_MLALGO=OFF
USE_CUDA=OFF
MKL_THREADING=sequential
CMAKE_CXX_FLAGS=-O2 -xCORE-AVX512
程序实际走CPU;运行线程设为1。AVX512编译选项面向相应CPU,不能把生成的程序直接拿到任意旧处理器运行。DeePKS训练和修正SCF使用另一套ML环境,本环境未开启ML接口。
本包在下载到个人目录的源码中应用两项输出调整,完整补丁在patches/:
- 将五处BSE写文件操作移到
assert外,使Release编译也能输出激发能和态振幅。 - 将DFPT已经求得的响应残差、介电张量、Born有效电荷写入文本文件,便于读数。
这些调整只处理输出,不改变哈密顿量、响应迭代或本征方程。公共模块不替换,也不修改个人.bashrc。
3. 查看安装结果并选择环境#
cat toolchain/BUILD-FINISHED.json
ls toolchain/install/abacus/bin/abacus
进入某个DFPT或BSE实例的解压目录:
bash use-toolchain.sh ../abacus-ri-env/toolchain
bash prepare.sh
sbatch job.slurm
实例程序在work/中写入结果,原始输入保存在inputs/。每次完整重算使用新的解压目录,避免混入上一次的输出。
源码功能与测试输入以固定ABACUS提交为准;本文不把测试入口可运行视为任意体系都已适用。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。