首页 / 资讯中心 / 文章详情

DFT学习记录[1]:VASP、QE、VASPkit、BoltzTrap2的安装与TaoToken统一Key配置

DFT学习记录[1]:VASP、QE、VASPkit、BoltzTrap2的安装与TaoToken统一Key配置 ★ FEATURED ARTICLE
1. 为什么第一性原理新手总在安装环节卡住如果你刚接触 DFT密度泛函理论大概率会遇到这样的场景导师丢给你一个课题说“先跑个能带结构看看”然后你打开 Linux 终端面对 VASP、Quantum ESPRESSO、VASPkit、BoltzTrap2 这四个名字完全不知道从哪下手。更麻烦的是每个工具的编译依赖、环境变量、许可证配置都不一样装完一个另一个又报错三天过去连第一个pw.x都没跑起来。我自己刚开始做毕业设计时也是这样。VASP 需要 Intel oneAPI 的 MKL 和 MPIQE 对编译器版本极其敏感VASPkit 依赖 Fortran 运行时BoltzTrap2 又要求 Python 3.11 配合 Cython 和 CMake。四个工具链的依赖互相交叉稍有不慎就是error while loading shared libraries或者mpirun: command not found。这篇记录面向的是第一性原理计算入门者目标很明确在 Linux 环境下把 VASP、QE、VASPkit、BoltzTrap2 四款工具装好并且用 TaoToken 统一管理相关的 API Key 和调用凭证。为什么需要统一 Key因为现在很多 DFT 工作流会调用大模型辅助生成输入文件、解析输出、做结构预处理比如用模型对话帮你写INCAR参数、解释OUTCAR里的能量收敛情况。如果每个工具都单独配一套账号管理起来非常乱。TaoToken 提供统一的 API 通道一个 Key 就能覆盖模型对话、Coding Plan、API Keys 管理这些场景省去反复切换的麻烦。适合谁看正在做本科毕设或研一刚进组、需要在 Linux 上从零搭建 DFT 环境的同学。如果你已经装好了其中一两个也可以跳到对应章节对照检查。全文的命令和配置都可以直接复制我会标注每一步的预期输出方便你验证是否成功。先说清楚整体思路oneAPI 是 VASP 和 QE 的共同基础先装它然后按 QE → VASP → VASPkit → BoltzTrap2 的顺序推进因为 QE 的编译过程能帮你验证 oneAPI 是否配置正确最后统一配置 TaoToken 的 Key把模型辅助能力接进来。下面逐段展开。2. TaoToken 统一 Key 的前置准备与账号配置在开始装 DFT 工具之前先把 TaoToken 的账号和 Key 准备好。这一步看起来和编译无关但后面你会用到它来辅助生成输入文件、排查编译报错、解析计算结果。TaoToken 的官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置的时候别写错。你需要做三件事注册账号、创建 API Key、确认模型 ID。注册流程不复杂打开官网按提示走就行。登录之后进入控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 在 API Keys 页面创建一个新的 Key。创建的时候建议命名成dft-workflow之类的方便后面区分。Key 的格式通常是一串以sk-开头的字符串复制下来保存好页面关闭后不会再完整显示。接下来确认你要用的模型 ID。TaoToken 支持多种模型做 DFT 辅助的时候我一般用通用对话模型来生成输入文件模板、解释报错信息。你可以在模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 先试一下确认模型能正常响应。如果你后面要做长期的编码辅助比如写 Python 脚本处理OUTCAR可以了解 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 它更适合持续性的开发任务。配置凭证的时候推荐用环境变量的方式不要硬编码在脚本里。在~/.bashrc里加两行export TAOTOKEN_API_KEYsk-你的实际Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api然后source ~/.bashrc激活。验证一下echo $TAOTOKEN_API_KEY预期输出是你的 Key 字符串。如果输出为空说明source没生效或者写错了文件。注意不要把 Key 提交到 Git 仓库建议在项目里加.gitignore排除.env文件。如果你用的是 Claude Code 这类工具做辅助开发可以参考接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 里的说明把 Base URL 和 Key 填进去。文档里有针对不同客户端的配置示例包括 ClaudeCodeAnthropic 相关的设置。这里的关键是Base URL 统一用https://taotoken.net/apiKey 用你刚创建的那串模型 ID 根据你的套餐选择。三件套配齐之后后面无论是让模型帮你写pwscf.in还是解释vasp.out里的报错都能直接调用。有一点要提醒TaoToken 是 API 通道服务不是非法的中间转发它的定位是帮你统一管理调用凭证。你在配置的时候所有请求都走官方 API 地址不要自己搭什么本地代理那样反而容易出问题。环境变量配好之后可以先发一个最简单的请求测试连通性具体命令在下一节验证部分会给出。3. 四款 DFT 工具的可复制安装配置这一节是全文的核心我会按依赖顺序给出每一款工具的完整安装步骤和配置文件片段。你可以在 Linux 终端里逐条执行遇到报错先别慌对照第五节的排查清单处理。3.1 oneAPI 基础环境安装VASP 和 QE 都依赖 Intel oneAPI 的编译器和数学库。去 Intel 官网下载 oneAPI Base Toolkit 和 HPC Toolkit建议选 2023.1.0 版本不要用 2023 年之后的版本因为新版里icc和icpc被移除了而 VASP 的旧版 makefile 还在引用它们。安装的时候用命令行sh ./l_BaseKit_p_2023.1.0.xxx.sh -a --silent --eula accept sh ./l_HPCKit_p_2023.1.0.xxx.sh -a --silent --eula accept安装完成后在~/.bashrc里 source 环境source /opt/intel/oneapi/setvars.sh验证which icx which mpiifort预期输出分别是/opt/intel/oneapi/compiler/.../bin/icx和/opt/intel/oneapi/mpi/.../bin/mpiifort。如果mpiifort找不到说明 HPC Toolkit 没装好或者 setvars 没生效。3.2 Quantum ESPRESSO 编译配置QE 的安装相对标准。去 GitHub releases 页面下载源码包解压后进入目录tar -xzf q-e-qe-7.2.tar.gz cd q-e-qe-7.2 ./configureconfigure完成后会生成make.inc。用编辑器打开找到CFLAGS那一行改成CFLAGS -O3 -D__DFTI -D__MPI -I../include -I../FoX/finclude -I/opt/intel/oneapi/mkl/2023.1.0/include注意把 MKL 路径换成你系统里实际的版本号。然后编译make all install -j8-j8根据你的 CPU 核心数调整报错就调小。编译完成后bin目录下会有pw.x、ph.x等可执行文件。测试用 diamond 例子export OMP_NUM_THREADS1 mpirun -n 4 pw.x pwscf.in | tee pwscf.out如果输出末尾出现JOB DONE说明 QE 装好了。3.3 VASP 编译配置VASP 需要先拿到源码包通常由导师或课题组提供。解压后进入目录cp arch/makefile.include.intel makefile.include然后编辑makefile.include把关键部分替换成下面这段。注意MKLROOT要改成你的实际路径CPP_OPTIONS -DHOST\LinuxIFC\ -DMPI -DMPI_BLOCK8000 -Duse_collective -DscaLAPACK -DCACHE_SIZE4000 -Davoidalloc -Dvasp6 -Duse_bse_te -Dtbdyn -Dfock_dblbuf CPP fpp -f_comno -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS) FC mpiifort FCL mpiifort FREE -free -names lowercase FFLAGS -assume byterecl -w OFLAG -O1 OFLAG_IN $(OFLAG) DEBUG -O0 OBJECTS fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o OBJECTS_O1 fftw3d.o fftmpi.o fftmpiw.o OBJECTS_O2 fft3dlib.o CPP_LIB $(CPP) FC_LIB $(FC) CC_LIB icc CFLAGS_LIB -O FFLAGS_LIB -O1 FREE_LIB $(FREE) OBJECTS_LIB linpack_double.o CXX_PARS icpc LLIBS -lstdc VASP_TARGET_CPU ? -msse4.2 -avx FFLAGS $(VASP_TARGET_CPU) FCL -qmklsequential MKLROOT ? /opt/intel/oneapi/mkl/2023.1.0 LLIBS -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 INCS -I$(MKLROOT)/include/fftw保存后执行make all编译完成后bin目录下会有vasp_std、vasp_gam、vasp_ncl。把 bin 路径加入环境变量export PATH$PATH:/home/你的用户名/DFT/vasp.6.3.2/bin测试用 VASP 官方 tutorial 的e01_O-DFT例子进入目录后运行mpirun -n 2 vasp_std如果输出里出现General timing and accounting informations说明成功。3.4 VASPkit 与 BoltzTrap2 安装VASPkit 的安装最简单下载源码后进入目录直接make即可。它依赖 Fortran 编译器oneAPI 装好后就能编译。完成后把bin路径加入PATH。验证vaspkit -task 1预期会弹出交互菜单。BoltzTrap2 需要 Python 3.11 和 CMake。先装 Cythonpip3 install Cython -i https://pypi.tuna.tsinghua.edu.cn/simple/然后装 CMake下载源码后编译cd cmake ./bootstrap make -j10 make install把 CMake 的 bin 路径加入~/.bashrcexport PATH/home/你的用户名/bin/cmake/bin:$PATH验证cmake --version后安装 BoltzTrap2pip3 install BoltzTrap2 -i https://pypi.tuna.tsinghua.edu.cn/simple/到这里四款工具就装完了。下一节给出统一的验证请求和成功结果对照。4. 逐条验证安装是否成功的命令与预期输出装完之后不要急着跑正式计算先用最小例子验证每个工具链是否正常工作。这一节给出四条验证命令和对应的预期输出你照着跑一遍哪条不对就回到上一节检查对应配置。QE 验证进入 diamond 例子目录运行export OMP_NUM_THREADS1 mpirun -n 4 pw.x pwscf.in | tee pwscf.out grep JOB DONE pwscf.out预期输出JOB DONE。如果报error while loading shared libraries: libmkl_scalapack_lp64.so说明LD_LIBRARY_PATH没包含 MKL 的 lib 目录在~/.bashrc里加上export LD_LIBRARY_PATH$MKLROOT/lib/intel64:$LD_LIBRARY_PATH。VASP 验证进入e01_O-DFT目录运行mpirun -n 2 vasp_std ls OUTCAR grep Elapsed time OUTCAR预期输出OUTCAR文件存在且grep能匹配到Elapsed time行。如果报vasp_std: command not found检查PATH是否包含 VASP 的 bin 目录。VASPkit 验证vaspkit -task 1预期输出显示任务菜单包含1) Density of States等选项。如果报Permission denied给可执行文件加权限chmod x $(which vaspkit)。BoltzTrap2 验证python3 -c import BoltzTrap2; print(BoltzTrap2.__version__)预期输出版本号比如0.4.5。如果报ModuleNotFoundError说明 pip 装到了别的 Python 环境用pip3 show BoltzTrap2确认安装路径。TaoToken 连通性验证用 curl 发一个最小请求curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY | head -c 200预期输出返回 JSON 格式的模型列表包含data字段。如果返回401说明 Key 不对或者没带上Bearer前缀。如果返回local proxy failed检查你的网络环境是否直接访问了官方 API 地址不要配置任何本地代理。四条验证都通过之后你的 DFT 环境就算搭好了。接下来可以开始跑正式的结构优化和能带计算。如果中间某一步卡住对照下一节的排查清单。5. 本篇常见报错排查与修复对照这一节整理安装过程中最容易遇到的几个报错给出原因和修复方法。你可以把报错信息直接贴到 TaoToken 的模型对话里让模型帮你定位但先对照下面的清单能省不少时间。报错一mpirun: command not found原因oneAPI 的 MPI 环境没 source或者setvars.sh没加到~/.bashrc。修复在~/.bashrc末尾加source /opt/intel/oneapi/setvars.sh然后source ~/.bashrc。验证which mpirun有输出。报错二error while loading shared libraries: libmkl_scalapack_lp64.so原因MKL 的动态库路径没加入LD_LIBRARY_PATH。修复在~/.bashrc加export LD_LIBRARY_PATH/opt/intel/oneapi/mkl/2023.1.0/lib/intel64:$LD_LIBRARY_PATH注意版本号换成你的实际路径。报错三401 UnauthorizedTaoToken 请求原因API Key 错误、过期或者请求头格式不对。修复确认TAOTOKEN_API_KEY环境变量有值请求头写成Authorization: Bearer sk-xxx注意Bearer和 Key 之间有一个空格。如果 Key 刚创建等几秒再试。报错四local proxy failed原因本地配置了代理请求没直接走官方 API 地址。修复检查http_proxy、https_proxy环境变量临时取消unset http_proxy https_proxy。TaoToken 的 API 地址是https://taotoken.net/api直接访问即可不需要任何本地转发。报错五reading choices相关错误VASPkit 交互模式原因VASPkit 在非交互终端下运行或者输入流被重定向。修复确保在交互式终端里运行vaspkit不要用echo 1 | vaspkit这种方式。如果必须在脚本里用加-task参数指定任务号。报错六OAuth相关错误Claude Code 接入原因Claude Code 的认证方式没配对。修复参考接入文档把 Base URL 设为https://taotoken.net/apiKey 用 TaoToken 创建的 Key模型 ID 填你套餐对应的。如果用的是 ClaudeCodeAnthropic 配置确认settings.json里的apiKey和baseURL字段都正确。报错七VASP 编译时icc: command not found原因oneAPI 2023 之后的版本移除了icc但 makefile 还在引用。修复把makefile.include里的CC_LIB icc改成CC_LIB icxCXX_PARS icpc改成CXX_PARS icpx。或者直接装 2023.1.0 版本。报错八QE 编译时configure: error: cannot find MKL原因MKLROOT环境变量没设置。修复export MKLROOT/opt/intel/oneapi/mkl/2023.1.0然后重新./configure。排查的时候有个技巧把完整报错信息复制到模型对话里加上你的系统版本和工具版本模型通常能给出针对性的修复命令。TaoToken 的模型对话入口在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 直接粘贴报错就行。6. 把 TaoToken 接入你的 DFT 日常工作流四款工具装好之后日常使用中你会频繁遇到需要查文档、写输入文件、解析输出的场景。TaoToken 的价值在于把这些零散的调用统一到一个 Key 下不用每个工具单独配账号。具体怎么接入举几个实际例子。写INCAR的时候你可以把结构信息和计算类型告诉模型让它生成参数模板然后你根据课题需求微调。解析OUTCAR的时候把能量收敛那段贴给模型让它判断是否达到收敛标准。QE 的pwscf.in里control、system、electrons三个 namelist 的参数含义也可以直接问模型比翻手册快。如果你要写 Python 脚本批量处理计算结果可以用 Coding Plan 的额度让模型帮你生成pymatgen或ase的代码框架。Coding Plan 的入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 适合需要持续写代码的场景。API Keys 管理页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 你可以在这里创建多个 Key按项目区分比如vasp-project、qe-project方便追踪用量。配置的时候记住三件套Base URL 用https://taotoken.net/apiKey 用你创建的模型 ID 根据套餐选。如果你用 Claude Code 做辅助开发接入文档里有完整的settings.json示例照着填就行。文档地址是 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。最后说一个实际经验DFT 计算的文件通常很大OUTCAR动辄几十 MB不要整个贴给模型。先用grep提取关键行比如grep free energy OUTCAR | tail -5把这几行贴过去模型就能判断收敛趋势。这样既省 token响应也快。环境变量配好之后你可以在~/.bashrc里加个别名比如alias askcurl -s https://taotoken.net/api/v1/chat/completions -H Authorization: Bearer $TAOTOKEN_API_KEY -H Content-Type: application/json -d后面接 JSON 参数就能快速提问。不过更推荐用现成的客户端配置一次就能长期用。到这里VASP、QE、VASPkit、BoltzTrap2 的安装和 TaoToken 的 Key 配置就全部完成了。你可以开始跑第一个正式的结构优化遇到报错先对照第五节的清单搞不定就把报错贴到模型对话里。
阅读完成 · 觉得有帮助?
咨询建站