Files
DCTS/Cargo.toml
T
fmq 43b82b1ae2 feat(all): 物理正确性五重硬门槛、输入文件结构化与 fort.55 错位修复、conv 诊断 DB 化与阶段归因修复、ORELAX 收敛修复与导入工具下线
物理正确性校验体系(common/conv_check.rs +494 行)
- 新增 5 类硬门槛:能量守恒(.6)、温度结构(.7)、emflux 积分校验(.emflux,含全 NaN 判失败)、假收敛排查(itek 轨迹首末比)、b 因子合理性(.bfac)
- runner 在 TLUSTY 阶段结束后执行全部校验,任一失败判 final_converged=false
- GridConfig 新增 8 个可配阈值,经 scheduler→executor→runner 全链路透传

输入文件配置结构化重构(config.rs +1453 行)
- TlustyInput 拆为 dot5/nst 分层结构,字段名严格映射 tlusty208.f READ 语句;SynspecInput 重构为 9 个 Fort55Line 子结构体
- 移除 ChainStep.metals 字段,元素集改由 dot5.atoms/ions 显式声明(gen_input5/nst_writer 同步重写为三源融合 / 分层覆盖)
- fort.55 修复行结构 bug:补全分子表行(7→9 行),IDSTD 50→0 错位修正(影响全部光谱线强归一化,需重算 SYNSPEC 阶段)

conv 诊断 DB 化与阶段归因修复(server)
- 单点详情 conv 面板从磁盘 conv.json 改读 DB grid_points.summary_json;grid_points 新增 summary_json/last_elapsed_sec 两列(旧库幂等 ALTER)
- record_task_report 阶段归因列加 CASE 守卫 + clear_synspec 对称处理,修复 synspec-only/TLUSTY-only 重跑污染统计
- 新增 summary_merge.rs 点级增量合并,避免重跑覆盖诊断字段

收敛性 ORELAX 修复与 seed_chain 可配(sdB_cno.yaml + node)
- nl 阶段加 orelax=0.5、seed_nc 加 orelax=0.3,阻尼中温区 relc 振荡发散
- seed_chain 块可配,executor 优先采用用户配置而非内置默认链

导入工具下线
- 删除 import_results 客户端工具及 Windows 推送脚本;移除 /admin/import_seed 端点
- 改为服务端临时 migrate_conv 端点(扫 conv.json 增量合并入库,迁移后可删)

文档与分析
- 新增 1305 失败点根因分析、fort.14 全 NaN 物理含义分析两份深度文档
- spectrum_correctness_analysis 两次修订标注已修复项;fetch_results.sh 修 trap RETURN 的 set -u 报错
2026-08-09 12:09:48 +08:00

42 lines
1.3 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/common",
"crates/mq",
"crates/server",
"crates/node",
]
[workspace.dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# 注:官方 serde_yaml (dtolnay/serde-yaml) 已于 2024 年 3 月归档停止维护。
# 本项目选择固定使用官方最终稳定版本 0.9.34,因其经过多年大规模生产验证,功能完备且极度稳定无隐患。
serde_yaml = "0.9.34"
tokio = { version = "1.35", features = ["full"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2.5"
anyhow = "1.0"
tempfile = "3.8"
uuid = { version = "1.6", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
regex = "1.10"
reqwest = { version = "0.12", features = ["json", "multipart"] }
rusqlite = { version = "0.31", features = ["bundled"] }
async-trait = "0.1"
axum = { version = "0.7", features = ["multipart"] }
tokio-util = { version = "0.7", features = ["io"] }
tower-http = { version = "0.5", features = ["cors", "trace", "fs"] }
tower = { version = "0.4", features = ["util", "limit"] }
clap = { version = "4.4", features = ["derive"] }
sysinfo = "0.30"
gethostname = "0.5"
sha2 = "0.10"
hex = "0.4"
flate2 = "1.0"
r2d2 = "0.8"
r2d2_sqlite = "0.24"
dotenvy = "0.15"