feat(all): 重炼 crates/common 核心组件、上线 Web 运维看板与 Docker 容器化部署

This commit is contained in:
fmq
2026-07-28 10:31:57 +08:00
commit 4b4238d702
71 changed files with 163402 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
# 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]
# 共 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)会发散。
#
# 重要:不要在 nst 里设 CHMAX/ITEK,用 tlusty 默认值(CHMAX=0.001, ITEK=4)。
# 设 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)。
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}
itek_fallback: [] # 留空:ITEK 默认值最稳;非空会重试(实测无效)
niter: 100 # 每个 tlusty 运行的默认最大迭代数 (nst NITER)nc 阶段在 chain 内覆盖为 10
# ---- 种子步进回退(NEW----
# 冷启动失败时,自动用已收敛的邻居模型作种子,用 LTGRAY=F 热启动重试。
# 这是高温 He-poor / 富金属区收敛的关键(见 EXPERIENCE.md §5Y)。
# 失败的冷启动结果会备份到 <model>.coldfail/ 目录。
seed_step_fallback: true
# ---- 执行参数 ----
nworkers: 16 # 并行 worker 数(每次 tlusty 运行是单线程的;
# 想用更多核心就调大;每个 worker 需要独立工作目录)
timeout_sec: 7200 # 单模型墙钟时间上限(120分钟)
resume: true # 跳过已完成的模型(conv.json 中 converged=true
# ---- 光谱合成 SYNSPEC 控制参数 ----
synspec:
wstart: 1400.0 # 光谱波长起始点 (Å)
wend: 1410.0 # 光谱波长终止点 (Å)
imode: 0
idrv: 50
ifreq: 1
rel_cutoff: 0.0001
abs_cutoff: 0.01
results: data/results