任务: DFT-MLFF-MD 多软件工作流
- 模块: project-management
- 深度: L3
- 学科: 材料科学(多尺度建模)
- 判定: 通过
- 核心声明: 是
任务描述
设计用于 Pt/CeO2(111) 上氨氧化反应(AOR)的跨软件计算工作流:VASP DFT → MACE MLFF 训练 → LAMMPS MD。包含检查点、失败路径和回滚策略。
输入
Pipeline: VASP DFT (slab + adsorbate optimization) → MACE (MLFF training) → LAMMPS (large-scale MD)
Hardware: Single node, 4 GPU, 64 GB RAM
Task Output: project-management/pm-01
Pt/CeO2(111) 上 AOR 的 DFT-MLFF-MD 多软件工作流
前序材料
体系: Pt/CeO2(111) slab, 6 层 吸附物: *NH3, *NH2, *NH, *N, *OH 硬件: 单节点, 4 GPU, 64 GB RAM
论文知识
未安装 paper-reader-workflow;跳过论文知识层。
软件知识
VASP slab 计算(来源:VASP Wiki):
- ISIF=2 + selective dynamics 用于固定底层
- ENCUT ≥ 1.3 × ENMAX(Ce, f 电子)
- ISMEAR=1 用于金属/半金属体系
MACE 训练(来源:MACE GitHub,官方文档):
- 需要 ASE .xyz 或 .extxyz 格式,含能量/力标签
- 推荐训练集大小: 500-2000 个构型
- GPU 内存随模型大小变化(MACE-MP-0: ~2 GB, large: ~8 GB)
LAMMPS MACE 接口(来源:LAMMPS 文档, MACE-LAMMPS):
- pair_style mace 配合模型文件路径
- 支持 NVT/NPT/NVE 系综
- MPI 并行效率取决于体系大小 / GPU 数量
本地经验
该多软件流水线无本地验证经验。
AI 判断
多阶段工作流设计
阶段 1: VASP DFT 计算
目标: 为 MACE 训练生成可靠的 DFT 参考数据
所需输入文件:
- INCAR(每种计算类型)
- POSCAR(slab + 每种吸附物)
- POTCAR(Ce, O, Pt, N, H)
- KPOINTS(Gamma-centered, 3×3×1 或更密)
- 提交脚本(SLURM/PBS)
推荐参数:
| 参数 | 值 | 理由 |
|---|---|---|
| ENCUT | 520 eV | Ce f 电子要求 |
| ISIF | 2 | Slab: 保持晶胞固定 |
| ISMEAR | 1 | Pt 可能引入金属态 |
| SIGMA | 0.10 eV | 金属体系标准值 |
| EDIFF | 1E-6 | 训练数据需要严格收敛 |
| EDIFFG | -0.02 | 弛豫的力收敛标准 |
| KPOINTS | 3×3×1 | 对 ~(10×10) slab 约 0.03 1/Å 间距 |
检查点 C1: 每次吸附物弛豫后:
- 力收敛到 < 0.02 eV/Å
- SCF 收敛(EDIFF=1E-6)
- OUTCAR 检查: 最后 10 步 SCF 总能量无漂移
- 目视检查: 吸附物仍在表面(未脱附)
失败路径 F1: 吸附物脱附或移动到不合理位置
- 回滚: 收紧初始几何猜测,前 10 步先用约束 z 坐标尝试
- 替代方案: 使用 dimer method(IBRION=3)进行过渡态感知弛豫
失败路径 F2: SCF 不收敛
- 回滚: 依次尝试 ALGO=Normal (Davidson) → ALGO=Fast (RMM-DIIS) → ALGO=All (共轭梯度)
- 检查: 金属体系的 smearing 是否太小?临时增大 SIGMA 到 0.20 eV
- 检查: 对难收敛体系调整线性混合参数(AMIX, BMIX)
失败路径 F3: OOM(内存不足)
- 回滚: 减少 KPOINTS,使用 NPAR/NCORE 优化
- 对 64 GB RAM: 限制约 100 原子, KPAR=2
阶段 2: MACE MLFF 训练
目标: 从 DFT 数据训练精确的 MLFF 势
所需输入文件:
- 合并的 ASE .extxyz 文件,含所有 DFT 结构、能量、力
- MACE 训练配置 YAML
- 训练/验证集划分索引
数据准备清单:
- 所有 DFT 结构导出为 .extxyz 格式(ASE: ase.io.write)
- 能量参考: 减去自由原子能量
- 力的单位: eV/Å
- 训练/验证划分: 80/20 或 90/10
- 数据集大小: ≥ 500 结构(不足时添加扰动结构)
训练参数:
| 参数 | 值 | 理由 |
|---|---|---|
| model | MACE | 标准架构 |
| r_max | 5.0 | 截断半径 (Å) |
| num_channels | 128 | 模型容量 |
| max_L | 2 | 角动量截断 |
| num_radial_basis | 8 | 径向基函数数量 |
| batch_size | 10 | GPU 内存(4 GPU, ~64 GB 总计) |
| max_num_epochs | 500 | 配合早停 |
| device | cuda | GPU 训练 |
| default_dtype | float64 | 力需要双精度 |
检查点 C2: 训练后:
- 能量 RMSE < 10 meV/atom(训练集)
- 能量 RMSE < 20 meV/atom(验证集)
- 力 RMSE < 100 meV/Å(验证集)
- 无过拟合: 训练/验证 RMSE 比值 < 2.0
- Parity plot 无系统性偏差
失败路径 F4: 验证 RMSE 过高
- 回滚: 增大训练集(生成更多扰动的 DFT 结构)
- 回滚: 增大模型容量(num_channels: 128 → 256)
- 回滚: 检查数据质量(训练集中是否有未收敛的 DFT 计算?)
失败路径 F5: GPU OOM 在训练期间
- 回滚: 减小 batch_size(10 → 5 → 2)
- 回滚: 减小 num_channels(128 → 64)
- 回滚: 使用梯度累积
阶段 3: 使用 MACE 的 LAMMPS MD
目标: 有限温度下的大规模 AOR 动力学
所需输入文件:
- LAMMPS 输入脚本
- MACE 模型文件(来自阶段 2)
- 初始结构(放大后的 slab)
LAMMPS 设置:
units metal
dimension 3
boundary p p p
atom_style atomic
pair_style mace
pair_coeff * * path/to/mace_model.model Ce O Pt N H
neighbor 2.0 bin
neigh_modify delay 0 every 1 check yes
thermo 100
thermo_style custom step temp pe ke etotal press
# NVT 平衡
timestep 0.001 # 1 fs for MLFF MD
fix 1 all nvt temp 300 300 0.1
thermo_style ...
run 50000 # 50 ps
# NVT 生产
timestep 0.001
fix 1 all nvt temp T 800 0.1
run 500000 # 500 ps
检查点 C3: 平衡后:
- 温度稳定在目标值(300 K)± 10 K 范围内
- 总能量守恒(NVE 测试: 能量漂移 < 1E-5 eV/atom/ps)
- thermo 输出中无丢失原子或 NaN 值
- RDF 和密度与预期值匹配
检查点 C4: 生产运行期间:
- 监控反应位点的键断裂/形成事件
- 跟踪 NHx 中间体随时间演化
- 提取驻留时间和反应速率
失败路径 F6: 能量漂移(NVE 测试)
- 回滚: 减小时间步长(1.0 → 0.5 fs)
- 回滚: 检查 MACE 模型质量(力 RMSE)
- 回滚: 检查初始结构(原子重叠?)
失败路径 F7: PPPM / kspace 错误
- 回滚: 遵循 error_chain 诊断(见 computational-modeling/cm-02)
- 检查: neigh_modify 设置, 时间步长, 恒温器耦合
创建的工作流记录
Record: workflow-vasp-mace-lammps-aor-0001
record_id: workflow-vasp-mace-lammps-aor-0001
record_type: workflow
scope: multi_software
software:
- VASP
- MACE
- LAMMPS
topic: DFT-MLFF-MD pipeline for AOR on Pt/CeO2
source_type: official_doc
source_ref: https://www.vasp.at, https://github.com/ACEsuit/mace, https://docs.lammps.org
version_or_doc_date: 2026-06-15
claim: Three-stage computational workflow: VASP DFT generates training data, MACE trains MLFF potential, LAMMPS runs large-scale MD for AOR dynamics.
evidence_level: must
confidence: official
related_wiki:
- computer_kb/wiki/workflows/vasp_mace_lammps_aor.md
related_records:
- vasp-param-ISIF-0001
- vasp-param-ENCUT-0001
- errchain-lammps-pppm_out_of_range-0001
note: All timing estimates approximate. Hardware: single node, 4 GPU, 64 GB RAM assumed. Adapt batch_size and KPAR for actual hardware.
last_checked: 2026-06-15
stages:
- stage: 1
title: "VASP DFT 参考数据"
software: VASP
checkpoints:
- "Forces < 0.02 eV/A"
- "SCF converged (EDIFF=1E-6)"
- "No energy drift in last 10 SCF steps"
- "Adsorbate not desorbed"
failures:
- symptom: "Adsorbate desorbs"
rollback: "Constrain z-coordinate first 10 steps or use dimer method"
- symptom: "SCF not converging"
rollback: "Try ALGO=Normal -> Fast -> All; increase SIGMA temporarily"
- symptom: "OOM"
rollback: "Reduce KPOINTS; set KPAR=2"
- stage: 2
title: "MACE MLFF 训练"
software: MACE
checkpoints:
- "Energy RMSE < 10 meV/atom (train)"
- "Energy RMSE < 20 meV/atom (val)"
- "Force RMSE < 100 meV/A (val)"
- "No overfitting (ratio < 2.0)"
failures:
- symptom: "High validation RMSE"
rollback: "Increase training set; increase num_channels; check DFT data quality"
- symptom: "GPU OOM"
rollback: "Reduce batch_size; reduce num_channels; use gradient accumulation"
- stage: 3
title: "LAMMPS MD 生产运行"
software: LAMMPS
checkpoints:
- "Temperature stable +- 10 K"
- "Energy drift < 1E-5 eV/atom/ps (NVE test)"
- "No NaN or lost atoms"
- "RDF and density match expected"
failures:
- symptom: "Energy drift"
rollback: "Reduce timestep; check MACE model quality; check initial structure"
- symptom: "PPPM/kspace error"
rollback: "Follow error_chain diagnosis; check neigh_modify, thermostat"
输出统计
- 3 个阶段, 7 个检查点, 8 条失败路径已文档化
- 硬件感知: 针对 4 GPU、64 GB RAM 调整了 batch_size
- 所有失败均关联到具体的回滚操作