nep框架重构

This commit is contained in:
2025-12-09 01:15:38 +08:00
parent 19a6924a41
commit 91bdb0dab1
30 changed files with 7930 additions and 1001 deletions

View File

@@ -1,44 +1,55 @@
# config/param.yaml
# param.yaml
# --- 1. 流程控制 ---
stages_def:
p: "preheat"
m: "md"
s: "select"
d: "scf"
t: "train"
pr: "predict"
o: "output"
project: "LiYCl_Auto"
# 默认流程
default_workflow: ["p", "m", "s", "d", "t", "pr"]
# 1. 初始文件定义 (对应 data/ 目录)
files:
poscar: "LiYCl.vasp"
potcar: "POTCAR"
initial_pot: "nep89.txt" # 第一轮 MD 用的势函数
# 自定义调度
schedule:
1: ["p", "m", "s", "d", "t", "o"]
# 2. 迭代流程控制
iterations:
# --- 第一轮 ---
- id: 0
steps:
# Step 1: MD (预热 + 采样)
# 逻辑:会把 nep.txt (来自 initial_pot) 和 model.xyz 准备好
- name: "00.md"
sub_tasks:
# 你提到可能有预热,也可能有加工,这里支持串行执行
- template_sub: "preheat" # 使用 template/00.md/preheat/run.in
- template_sub: "production" # 使用 template/00.md/production/run.in
executor: "gpumd" # 对应 machine.yaml
# --- 2. 容错与通知 ---
control:
max_retries: 3
check_interval: 60
# Step 2: 筛选
- name: "01.select"
method: "distance"
params: [0.01, 60, 120]
notification:
enable_log: true
log_file: "./logs/sys_runtime.log"
enable_hook: true
hook_script: "python ./hooks/send_alert.py"
alert_events: ["fail", "finish"]
# Step 3: SCF (VASP)
# 逻辑cp template/02.scf/INCAR; check KPOINTS; cp data/POTCAR
- name: "02.scf"
executor: "vasp_std" # 对应 machine.yaml (可能调用 vasp_std.sh)
# --- 3. 各模块具体的物理/算法参数 ---
params:
preheat:
template_file: "run_ramp.in"
# Step 4: 训练
# 逻辑cp template/03.train/nep.in
- name: "03.train"
executor: "nep_local"
select:
target_min: 60
target_max: 120
init_threshold: 0.01
# --- 第二轮 ---
- id: 1
steps:
- name: "00.md"
sub_tasks:
- template_sub: "production" # 第二轮可能只需要 sampling
# 注意:这一轮的 nep.txt 会自动指向 iter_00/03.train/nep.txt
scf:
# 比如指定用 machine.yaml 里的哪个 tool 配置
tool_key: "vasp"
- name: "01.select"
method: "distance"
params: [0.012, 60, 120]
- name: "02.scf"
executor: "vasp_std"
- name: "03.train"