Files
DCTS/workflows/sdB_cno.yaml
T
fmq d16b3d3cdc feat(all): 数据库模块化拆分与版本化迁移、任务引擎命名体系收敛、物理输出校验加固与用户配置接通
- server/db: 拆 4929 行 db.rs 单体为 db/ 目录,migrations.rs 引入 PRAGMA user_version
    版本化迁移运行器(M1~M13)
  - 任务引擎 Phase 6/7b/7c 改名收敛:EngineStageConfig→PhaseConfig、StagePolicy→ResumePolicy、
    Converged→Completed、删除 task_type 列、success_method 拆 tlusty_/synspec_ 双列、
    新增 tlusty_status/synspec_status 半失败阶段守卫
  - 科学正确性加固:conv_check 任意行 NaN/Inf/溢出判无效(0 行容忍)、新增 spec_is_valid
    校验 SYNSPEC 脏谱、itek_history 逐次迭代全量保真、fmt_abn powf 溢出饱和
  - 用户配置真正接通:tlusty_chain/tlusty_input 由死字段经 调度器→TaskSpec→executor→runner
    透传生效;config 加载期 validate + deny_unknown_fields + 解析失败记 warn
  - 调度修复:H1 活锁(pending_strategies 跳过已失败策略)、种子查找错误不再静默降级冷启动
  - dashboard: 阶段配置面板 tlusty_stage/synspec_stage、"已完成"标签、迭代诊断展示
  - docs: 新增 database_refactor_design.md,同步 database/api/PIPELINE/workflow_detail
2026-08-06 20:51:21 +08:00

121 lines
5.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 6 维 CNO NLTE 热亚矮星网格的配置文件。
# 所有丰度均为 log10(nX/nH).5 文件中的 abn 字段设为 10**logX。
#
# 网格各维范围:
# Teff : 20000 - 80000 K
# logg : 5.0 - 6.5
# logHe: -4 - 2 He/H 数密度比:1e-4 .. 100
# logC : -4 - -1 C/H1e-4 .. 0.1;太阳 C/H≈-3.6,落在区间内)
# logN : -4 - -1 N/H:太阳 N/H≈-4.2
# logO : -4 - -1 O/H:太阳 O/H≈-3.3
# CNO 范围已修正为物理上的 sdB 范围,不再是超太阳(旧版 -2..1 会发散)
# ---- 网格轴:显式列出各维采样点 ----
# grid:
# teff: [20000, 60000]
# logg: [5.0]
# loghe: [-2]
# logc: [-4]
# logn: [-4]
# logo: [-4]
grid:
teff: [20000, 30000, 40000, 50000, 60000]
logg: [5.0, 5.5, 6.0, 6.5]
loghe: [-4, -2, 0, 2]
logc: [-4, -3, -2, -1]
logn: [-4, -3, -2, -1]
logo: [-4, -3, -2, -1]
# 共 4*2*2*3*3*3 = 432 个点
# ---- 收敛链 ----
# 已验证的三步配方 (tests/sdB_spectra/GUIDE.md 实测, Teff=35000 logg=5.5):
# LTE grey (T T, NITER=0) -> NLTE 连续谱 (nc, ilvlin=0) -> NLTE 谱线 (nl, ilvlin=100)
# nc 步是关键:在不考虑谱线扰动下收敛 NLTE 电离平衡,给 nl 一个稳定种子。
# 跳过 ncgrey -> 完整 NLTE)会发散。
#
# 各 step 的隐式默认值在此显式写出(与代码兜底等价,见下):
# - metals: cno —— C/N/O 参与 NLTErunner.rs 兜底默认;缺省时 .5 输入也按此处理)
# - chmax: 0.001 —— 收敛阈值(runner.rs 兜底默认;缺省时与原兜底完全一致)
# - itek / ichang / idlte / iacc / orelax 留空 → 用 tlusty 内部默认(未结构化为可写值)。
# 注意:设 CHMAX=0.1 会让 nc 提前停止,给 nl 一个坏种子导致发散——勿调大。
#
# nc 的 NITER=10 是实测最优(tests/sdB_spectra/GUIDE.md NITER 扫描结论):
# - NITER=10 总耗时 12.4min35000K CNO 完整模型)
# - 光谱精度 vs NITER=50 差异仅 6e-6(完全等价)
# - NITER=50 浪费 2.2× 时间,NITER=200/500 更浪费且无收益
# 物理上 nc(纯连续谱)缺少谱线约束,外层温度永不真正收敛——追求高 NITER
# 没意义。nl(含谱线)会自修正到正确解(流量差异 <3e-12)。
tlusty_chain:
- {label: lte, lte: T, ltgray: T, ilvlin: 0, require_converged: false, niter: 0, metals: cno, chmax: 0.001}
- {label: nc, lte: F, ltgray: F, ilvlin: 0, require_converged: false, niter: 10, metals: cno, chmax: 0.001}
- {label: nl, lte: F, ltgray: F, ilvlin: 100, require_converged: true, niter: 100, metals: cno, chmax: 0.001}
# ---- TLUSTY 输入文件全局参数(.5 + nst 的非阶段差异部分)----
# 这些参数不随收敛阶段变化。此处显式声明当前生效值,作为可配置项的文档。
# 如需调整(如降 nfread 加速、换 ions 能级文件、暴露 nst 高级关键字),改本块即可。
# 删掉本块 → 走代码内硬编码默认(与下方声明完全等价)。
tlusty_input:
# .5 frequencies 块:连续频率网格点数。>0 读预设表(高精度、慢)。
# 2000 是高精度档(官方 hhe 样本用 50);降到 1000 可加速但牺牲精度。
nfread: 2000
# atoms 块每元素的 mode2=显式统计平衡(H/He/CNO),0=不参与(Li/Be/B)。
# 缺省元素走默认。abn(丰度)由 grid 的 loghe/logc/logn/logo 计算,不在此配。
atoms:
H: {mode: 2}
He: {mode: 2}
C: {mode: 2}
N: {mode: 2}
O: {mode: 2}
# ions 能级数据表(空 = 用代码默认的 H/He/C/N/O 共 23 行标准表)。
# 如需换能级文件或调整 nlevs,列出完整表(完全替换默认)。
ions: []
# nst 额外关键字(逃逸口):自由传入任意 KEY=VALUE,追加到 nst 末尾。
# 用于暴露未结构化的 nst 开关(FRCMAX/CUTBAL/TAU/NDGREY 等,见 tlusty 手册)。
# 示例(当前未启用):
# nst_extra_keys:
# - [FRCMAX, "0.01"]
# - [CUTBAL, "0.3"]
nst_extra_keys: []
# ---- 种子步进回退(旧字段,保留兼容;新配置见下方 tlusty_stage 块)----
# 冷启动失败时,自动用已收敛的邻居模型作种子,用 LTGRAY=F 热启动重试。
# 这是高温 He-poor / 富金属区收敛的关键(见 EXPERIENCE.md §5Y)。
# 失败的冷启动结果会备份到 <model>.coldfail/ 目录。
seed_step_fallback: true
# ---- 执行参数 ----
timeout_sec: 7200 # 单模型墙钟时间上限(120分钟)
# ---- 光谱合成 SYNSPEC 输入参数(fort.55 数值参数;与 tlusty_input 对称)----
# 启用开关见下方 synspec_stage 块。
synspec_input:
wstart: 3000.0 # 光谱波长起始点 (Å)
wend: 7000.0 # 光谱波长终止点 (Å)
imode: 0
idrv: 50
ifreq: 1
rel_cutoff: 0.0001
abs_cutoff: 0.01
# ====================================================================
# 阶段独立配置(见 docs/task_engine_decoupling_design.md §2-§3
#
# TLUSTY / SYNSPEC 视为正交独立阶段,每阶段三维:
# enabled : 是否执行该阶段
# policy : skip_converged(增量) | force_recompute(强制重算) | skip_failed(忽略失败)
# strategies : 策略链队列,按回退优先级排序;节点执行 strategies[0],失败后服务端弹出首项
#
# 此处显式声明与旧 seed_step_fallback/synspec 块等价的默认配置,便于前端面板编辑。
# 旧字段(seed_step_fallback / synspec)保留作回退兜底,resolve 方法优先用本块。
# ====================================================================
tlusty_stage:
enabled: true
policy: skip_converged
strategies: [cold_run, seed_step]
synspec_stage:
enabled: true
policy: skip_converged
strategies: [standard]