模拟与后处理
统一的 gpumdkit-skill 将 GPUMDkit 工具、GPUMD 和 NEP 输入准备、受控执行、结果验证以及后处理连接成一个完整流程。主文件会根据具体任务选择对应 reference,也能处理“完成 Arrhenius 扩散研究”或“训练 NEP 模型并在 GPUMD 中验证”等跨模块任务。
决策边界
只要科学或执行参数仍不明确,agent 就必须询问用户,不能自行补值。这些参数包括势函数、元素/type 映射、电荷、温度、时间步长、系综、压力、模拟时长、输出间隔、拟合策略、收敛标准、调度资源和文件覆盖方式。
准备输入文件不等于获得运行授权。长时间计算和调度系统提交必须由用户明确要求。
Skill 已内置按类别整理的 model.xyz、run.in、nep.in、GPUMD/NEP 参数和输出格式摘要,用户不需要在本地安装 GPUMD 文档树。后处理命令以本地 GPUMDkit 及 Python 脚本帮助为准。如果解析器行为与内置版本不一致,agent 必须报告可执行文件版本和完整报错,再向用户获取对应版本信息,不能猜测语法。
一个 skill,按需读取 reference
Agent 只需激活 gpumdkit-skill,随后从 references/ 中加载当前任务真正需要的文件:
| 任务 | 需要读取的 references |
|---|---|
| GPUMD 模拟 | gpumd.md,再按需读取 gpumd-inputs.md、gpumd-setup.md、gpumd-ensembles.md、gpumd-computes.md 和 gpumd-outputs.md |
| NEP 训练或预测 | nep.md,再按需读取 nep-data.md、nep-parameters.md 和 nep-outputs.md |
| Arrhenius 流程 | gpumd.md、arrhenius.md、calculators.md 和 visualization.md |
| GPUMDkit 单项工具 | 对应的转换、采样、工作流、计算、分析或可视化 reference |
| GPUMDkit 开发 | contributing.md 和受影响模块的 reference |
这种渐进加载结构让用户只面对一个入口,同时避免每次任务都加载全部模块造成上下文浪费。
完整流程
- 明确目标物理量、交付内容和验收标准。
- 确认结构、势函数/模型、软件版本及科学参数。
- 准备输入并检查元素、晶胞、PBC、group、单位和命令语法。
- 向用户展示已经确定的方案和仍未解决的问题。
- 仅在用户明确要求时运行;合适时先执行用户认可的短程测试。
- 检查计算是否完成、热力学稳定性、轨迹完整性和目标物理量的收敛性。
- 使用 GPUMDkit 后处理,并报告单位、拟合设置、不确定度、排除的数据和方法限制。
Arrhenius 示例
建立 Arrhenius 任务前,需要确认目标是扩散系数、电导率还是两者;还要确认迁移元素及电荷、温度点、系综流程、时间步长、生产段长度、独立重复次数、MSD 采样以及拟合和不确定度方案。
每个整数温度使用一个独立目录:
project/
500K/{model.xyz,nep.txt,run.in}
600K/{model.xyz,nep.txt,run.in}
700K/{model.xyz,nep.txt,run.in}
MSD 可以由 GPUMD 的 compute_msd 直接产生,也可以从 extxyz 轨迹计算:
cd 500K
gpumdkit.sh -calc msd dump.xyz Li <frame_dt_fs> [max_corr_steps]
gpumdkit.sh -plt msd save
gpumdkit.sh -plt sdc save
frame_dt_fs 是相邻保存帧之间的时间:
逐个验证温度点后,在上级目录运行:
当前 Arrhenius 脚本固定拟合每条 MSD 曲线的 40%-80% 区间。这是 GPUMDkit 已确定的选择,未经维护者同意不应修改;同时仍需确认该区间确实处于扩散线性区。
单个温度的离子电导率可以使用用户确认的元素和电荷计算:
自动电导率 Arrhenius 脚本的适用范围更窄:
这些脚本只统计 Li/Na,固定按一价离子处理,使用第一个温度目录的组成和 replicate 信息,并将拟合结果外推到 300 K。不能把它们当作通用的多价或混合离子流程;Nernst-Einstein 近似和任何外推都必须由用户确认。
Skill 发现
该命令会输出 skill 的规范路径和安装提示。唯一的通用 skill 位于 ${GPUMDkit_path}/skills/gpumdkit-skill/;模拟细节位于其中的 references/gpumd.md、nep.md 和 arrhenius.md。