← 返回测试输出列表

任务: 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
  • 所有失败均关联到具体的回滚操作