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
This commit is contained in:
+41
-10
@@ -33,8 +33,11 @@ grid:
|
||||
# nc 步是关键:在不考虑谱线扰动下收敛 NLTE 电离平衡,给 nl 一个稳定种子。
|
||||
# 跳过 nc(grey -> 完整 NLTE)会发散。
|
||||
#
|
||||
# 重要:不要在 nst 里设 CHMAX/ITEK,用 tlusty 默认值(CHMAX=0.001, ITEK=4)。
|
||||
# 设 CHMAX=0.1 会让 nc 提前停止,给 nl 一个坏种子导致发散。
|
||||
# 各 step 的隐式默认值在此显式写出(与代码兜底等价,见下):
|
||||
# - metals: cno —— C/N/O 参与 NLTE(runner.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.4min(35000K CNO 完整模型)
|
||||
@@ -42,12 +45,39 @@ grid:
|
||||
# - NITER=50 浪费 2.2× 时间,NITER=200/500 更浪费且无收益
|
||||
# 物理上 nc(纯连续谱)缺少谱线约束,外层温度永不真正收敛——追求高 NITER
|
||||
# 没意义。nl(含谱线)会自修正到正确解(流量差异 <3e-12)。
|
||||
chain:
|
||||
- {label: lte, lte: T, ltgray: T, ilvlin: 0, require_converged: false, niter: 0}
|
||||
- {label: nc, lte: F, ltgray: F, ilvlin: 0, require_converged: false, niter: 10}
|
||||
- {label: nl, lte: F, ltgray: F, ilvlin: 100, require_converged: true, niter: 100}
|
||||
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 块)----
|
||||
# ---- TLUSTY 输入文件全局参数(.5 + nst 的非阶段差异部分)----
|
||||
# 这些参数不随收敛阶段变化。此处显式声明当前生效值,作为可配置项的文档。
|
||||
# 如需调整(如降 nfread 加速、换 ions 能级文件、暴露 nst 高级关键字),改本块即可。
|
||||
# 删掉本块 → 走代码内硬编码默认(与下方声明完全等价)。
|
||||
tlusty_input:
|
||||
# .5 frequencies 块:连续频率网格点数。>0 读预设表(高精度、慢)。
|
||||
# 2000 是高精度档(官方 hhe 样本用 50);降到 1000 可加速但牺牲精度。
|
||||
nfread: 2000
|
||||
# atoms 块每元素的 mode:2=显式统计平衡(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/ 目录。
|
||||
@@ -56,8 +86,9 @@ seed_step_fallback: true
|
||||
# ---- 执行参数 ----
|
||||
timeout_sec: 7200 # 单模型墙钟时间上限(120分钟)
|
||||
|
||||
# ---- 光谱合成 SYNSPEC 控制参数(旧字段,数值参数;启用开关见下方 synspec_stage)----
|
||||
synspec:
|
||||
# ---- 光谱合成 SYNSPEC 输入参数(fort.55 数值参数;与 tlusty_input 对称)----
|
||||
# 启用开关见下方 synspec_stage 块。
|
||||
synspec_input:
|
||||
wstart: 3000.0 # 光谱波长起始点 (Å)
|
||||
wend: 7000.0 # 光谱波长终止点 (Å)
|
||||
imode: 0
|
||||
@@ -77,7 +108,7 @@ synspec:
|
||||
# 此处显式声明与旧 seed_step_fallback/synspec 块等价的默认配置,便于前端面板编辑。
|
||||
# 旧字段(seed_step_fallback / synspec)保留作回退兜底,resolve 方法优先用本块。
|
||||
# ====================================================================
|
||||
tlusty:
|
||||
tlusty_stage:
|
||||
enabled: true
|
||||
policy: skip_converged
|
||||
strategies: [cold_run, seed_step]
|
||||
|
||||
Reference in New Issue
Block a user