# 冷启动收敛调查与更正(2026-08-12) ## ⚠️ 结论更正(重要) 本文件是对 2026-08-11 系列"收敛修复"(`itek:0`/`iacc:0`/`DPSILG=1.5`)的彻底复核。 **最终结论:以上配置改动都无法让失败网格点从冷启动收敛,已全部回退。** 此前声称"禁用 Kantorovich 后 iter5 从 1e5~1e7 降到 0.2~1.0、点收敛"是**错误结论**, 源于在探测程序运行中解析 fort.9 时只读到部分深度(TLUSTY 逐深度写入、缓冲未刷新), 把"部分深度的最大值"误当成了"该迭代的真实最大值"。 **真实数据(完整 50 深度重新解析)**: | 点 (he-2/he0 中等难度) | baseline 末relc | nokant(ITEK≥NITER) 末relc | |----|:---:|:---:| | he-2_c-1_n-2_o-4 | 4.5e+15 | 1.7e+03 | | he-2_c-2_n-4_o-4 | 6.3e+09 | 1.5e+07 | | he-2_c-4_n-1_o-1 | 9.7e+09 | 1.5e+04 | | he0_c-1_n-3_o-2 | 4.5e+09 | 7.0e+04 | | he0_c-2_n-2_o-3 | 1.4e+18 | 1.0e+04 | **6 个测试点 × 4 种配置 = 24 次运行,0 次收敛。** 最难点 `t50000_g5.0_he-4_c-4_n-4_o-4` 用 itek=999 + orelax=0.5/0.1 也发散 (iter10 relc≈6e5,两种 orelax 结果几乎相同)。 ## 调查中确认的源码事实(仍然有效) | 发现 | 源码依据 | |------|---------| | `ITEK=0` **冻结 populations**(nitzer=0),不是禁用 Kantorovich | `tlusty208.f:1937` `if(nitzer.gt.itek) nitzer=itek` | | `IACC=0` **是空操作**(被 clamp 回默认 7) | `tlusty208.f:1928` `IF(IACC.LE.4) IACC=7` | | 默认 `ITEK=4` 在 iter≥5 冻结 Jacobian(Kantorovich) | `tlusty208.f:848-857` | | 默认 `IACC=7` 在 iter≥7 外推 PSY0(Ng/ACCEL2) | `tlusty208.f:29704` | 禁用 Kantorovich+Ng(设 `itek`/`iacc` > NITER)**确实**把发散幅度降低了约 1e12~1e14×(如 he0_c-2_n-2: baseline 1e18 → nokant 1e4),但**达不到收敛**—— Newton 迭代自身在 grey LTE 起点即处于收敛域外,振荡不衰减。 ## 物理背景 失败点的特征:**He-poor(he=−4)+ 高 Teff(50-60kK)+ 低 logg(5.0-5.5)+ 极贫 CNO**。DB 统计: | He 丰度 | 收敛 | 失败 | 失败率 | |---------|------|------|--------| | he=+2(富氦)| 359 | 25 | **7%** | | he=0 | 177 | 206 | 54% | | he=−2 | 139 | 245 | 64% | | he=−4(贫氦)| 132 | 252 | **66%** | 这些点(纯 H 极端 NLTE 电离)从 grey LTE 模型冷启动,首次 NLTE 迭代的 POP 修正 就达 1e2~1e4(相对变化),Newton 步长超出收敛域。无论加速/阻尼参数如何设置, 迭代都在 1e2~1e6 之间振荡发散。**调参救不回收敛域外的问题。** ## 结论与建议 1. **YAML 已回退**:`workflows/sdB_cno.yaml` 恢复生产配置(nc NITER=10、nl NITER=100 orelax=0.5、seed_nc NITER=20、seed_nl NITER=100 orelax=0.5,itek/iacc 用默认)。 此前所有"修复"(itek:0 / iacc:0 / DPSILG=1.5 / itek=999)均无效或有害,全部移除。 2. **真正的可行方向**(需框架/Rust 改动,非 YAML 配置): - **连续法(continuation)**:从已收敛的较低 Teff(如 40-45kK)模型出发, 以该模型为 fort.8 热启动,逐步升高 Teff——NLTE 大气建模处理硬收敛点的标准方法。 - **改进 seed_step 种子选择**:优先选 **He 丰度匹配**的已收敛邻居(he=+2 邻居 收敛率 93% vs he=−4 邻居 34%),而非仅按 Teff/logg 距离。 - 或接受这些极端点(he=−4 + 极贫 CNO + 50-60kK)需要人工/半自动处理。 ## 相关计算文件 - `test/20260811_convergence_fix_abtest/runs_nc_probe/`:5 个中等难度点的 baseline / nokant / nokant_relax 三配置完整 10 迭代轨迹(fort.9),全部发散。 - `test/20260811_convergence_fix_abtest/runs_verify/`、`runs_verify_01/`: 最难点完整冷链(lte→nc→nl)验证,nc 发散、nl 因 NaN 假收敛。