87 lines
2.2 KiB
Plaintext
87 lines
2.2 KiB
Plaintext
# TLUSTY/SYNSPEC Rust 重构进度
|
|
|
|
## 当前状态 (2026-03-20)
|
|
|
|
- **已完成**: 86 个函数 + 15 个状态模块 + 1 个数据文件
|
|
- **测试通过**: 379 个
|
|
- **TLUSTY 纯函数重构完成**
|
|
- **最新完成**: cubic.rs
|
|
|
|
## 统计
|
|
|
|
| 程序 | 总单元 | 纯函数 |
|
|
|------|--------|--------|
|
|
| TLUSTY | 304 | 195 |
|
|
| SYNSPEC | 168 | 93 |
|
|
|
|
| 类型 | 数量 |
|
|
|------|------|
|
|
| 已完成 | 81 |
|
|
| 剩余纯函数 | ~70 |
|
|
| COMMON 依赖 | ~45 |
|
|
| I/O 依赖 | 114 |
|
|
|
|
## 已完成模块 (87个)
|
|
|
|
### math/ (83个)
|
|
|
|
angset, betah, bkhsgo, butler, carbon, ceh12, cion, ckoest, collhe, cross, crossd,
|
|
ctdata, cubic, dielrc, divstr, dmder, dwnfr, dwnfr0, dwnfr1, emat, erfcx, expint, expo, ffcros, gami,
|
|
gamsp, gauleg, gaunt, getwrd, gfree, gntk, grcor, hephot, hidalg, indexx, inthyd,
|
|
intlem, interpolate, irc, laguer, levsol, lineqs, locate, meanop, minv3, pffe, pfni, pfspec,
|
|
psolve, quartc, quit, raph, ratmal, reiman, sbfch, sbfhe1, sbfhmi, sbfhmi_old,
|
|
sbfoh, sffhmi, sffhmi_add, sghe12, sgmer, spsigk, stark0, starka, szirc, tdpini, tiopf,
|
|
traini, tridag, ubeta, vern16, vern18, vern20, vern26, verner, voigt, voigte,
|
|
wn, xk2dop, ylintp
|
|
|
|
### state/ (15个)
|
|
|
|
constants, config, atomic, model, arrays, iterat, alipar, odfpar,
|
|
+ WMCOMP, MRGPAR, INVINT, CUROPA, PRESSR, DWNPAR, HYDPRF, TURBUL (嵌套在 model.rs)
|
|
|
|
### data/ (1个)
|
|
|
|
data.rs - 静态数据数组
|
|
|
|
## 状态说明
|
|
|
|
- ✅ 已完成
|
|
- 🔄 进行中
|
|
- ⬜ 待处理
|
|
- ❌ 有 I/O 依赖 (暂不处理)
|
|
|
|
---
|
|
|
|
## 重构日志
|
|
|
|
### 2026-03-20
|
|
|
|
**新增:**
|
|
- lineqs.rs - 线性方程组求解 (高斯消元法)
|
|
- starka.rs - Stark 展宽近似表达式
|
|
- inthyd.rs - 氢线 Stark 展宽表格插值
|
|
- HydPrf 结构体 (model.rs)
|
|
|
|
**新增常量:**
|
|
- MHT=7, MHE=20, MHWL=90 (氢线表格维度)
|
|
|
|
### 2026-03-19
|
|
|
|
**完成:**
|
|
- 创建 Rust 项目结构
|
|
- 重构 77 个 math 模块
|
|
- 创建 14 个 state 模块 (COMMON 块转换)
|
|
- 提取 data.rs 静态数据
|
|
|
|
**关键修复:**
|
|
- Fortran 1-indexed → Rust 0-indexed
|
|
- `-LOG(X)` 是 `-ln(X)` 不是 `ln(-X)`
|
|
- Clenshaw 求和用 `isize` 避免溢出
|
|
- 所有 DATA 变量添加文件名前缀
|
|
|
|
### 规范
|
|
|
|
- 代码注释使用中文
|
|
- 测试与 Fortran 对比验证
|
|
- 精度: 简单函数 1e-10, 多项式 1e-7
|