SpectraRust/docs/TLUSTY_IO_FILES.md
2026-03-23 15:45:52 +08:00

8.2 KiB
Raw Blame History

TLUSTY 输入输出文件完整文档

概述

TLUSTY 使用 Fortran 风格的文件单元号Unit Numbers进行 I/O 操作。 本文档记录 TLUSTY 所有文件单元的用途、格式和内容。

相关文档: SYNSPEC I/O 文件见 docs/SYNSPEC_IO_FILES.md


第一部分:核心输入/输出

单元号 文件名 用途 方向 格式 说明
5 stdin 主输入文件 输入 格式化 命令行输入,包含所有模型参数
6 stdout 标准输出 输出 格式化 进度信息、警告、错误消息
7 fort.7 模型输出 输出 格式化 最终模型数据(温度、密度、布居数)
8 fort.8 模型输入 输入 格式化 初始模型或重启模型数据

第二部分:迭代输出

单元号 文件名 用途 方向 格式 说明
9 fort.9 收敛历史 输出 格式化 每次迭代的温度、电子密度变化
10 fort.10 警告/慢收敛 输出 格式化 收敛问题诊断信息
11 fort.11 辐射压力 输出 格式化 深度点辐射压力数据
12 fort.12 模型快照 输出 格式化 迭代中间状态的模型数据
13 fort.13 通量输出 输出 格式化 频率点通量数据
14 fort.14 角度分布 输出 格式化 辐射强度角度分布

第三部分:状态/调试输出

单元号 文件名 用途 方向 格式 说明
16 fort.16 能级布居详情 输出 格式化 详细布居数变化信息
17 fort.17 迭代模型 输出 格式化 迭代过程中的模型状态
18 fort.18 迭代日志 输出 格式化 迭代步骤日志(调试用)
20 fort.20 备份模型 输出 格式化 模型备份(用于重启)
22 fort.22 模型快照 输出 格式化 另一种格式的模型快照

第四部分ODF/不透明度文件

单元号 文件名 用途 方向 格式 说明
40 RBF.DAT 辐射bracketing 输入 格式化 辐射场参数文件
82 fort.82 谱线统计 输出 格式化 谱线频率范围统计
84 fort.84 参数值 I/O 格式化 参数优化值
86 fort.86 冷却率 输出 格式化 各深度点冷却率
87 fort.87 冷却分解 输出 格式化 按离子分解的冷却率
88 fort.88 冷却对比 输出 格式化 冷却率对比数据

第五部分:控制参数文件

单元号 文件名 用途 方向 格式 说明
44 fort.44 收敛控制 输入 格式化 自定义收敛参数
57 (动态) 准静态线数据 输入 格式化 ALLARD 准静态线
58 (动态) He 数据 输入 格式化 氦原子数据表
59 (动态) He 数据 输入 格式化 氦原子数据表
69 fort.69 计时信息 输出 格式化 性能计时数据

第六部分:临时/暂存文件

单元号 文件名 用途 方向 格式 说明
91 (SCRATCH) 暂存1 I/O 无格式 二进制暂存
92 (SCRATCH) 暂存2 I/O 无格式 二进制暂存
93 (SCRATCH) 暂存3 I/O 无格式 二进制暂存

第七部分:原子数据文件

7.1 能级数据文件 (*.dat)

模式 示例文件 说明
[元素][离子].dat h1.dat, he1.dat, c1.dat 原子能级数据
[元素][离子]_[n]+[m]lev.dat al2_20+9lev.dat 自定义能级数
[元素][离子]hyd.dat al4hyd.dat 氢化物数据

7.2 光谱数据文件 (*.t)

模式 示例文件 说明
[元素][离子].t c1.t, ca1.t, al1.t Kurucz 光谱线数据

7.3 CIA 数据 (碰撞诱导吸收)

文件名 说明
CIA_H2H.dat H₂-H 碰撞吸收
CIA_H2H2.dat H₂-H₂ 碰撞吸收
CIA_H2He.dat H₂-He 碰撞吸收
CIA_HHe.dat H-He 碰撞吸收

7.4 Stark 加宽数据

文件名 说明
lemke.dat Lemke H Stark 线宽
tremblay.dat Tremblay H Stark 线宽
laquasi.dat Lyman-α 准静态轮廓
lbquasi.dat Lyman-β 准静态轮廓
lgquasi.dat Lyman-γ 准静态轮廓
lhquasi.dat Lyman 系其他线

7.5 其他数据文件

文件名 说明
absopac.dat 吸收不透明度
ioniz.dat 电离数据
irwin_bc.dat Irwin 边界条件
irwin_orig.dat Irwin 原始数据
ptab.dat 压力表
stab.dat 自由能表
xenomorph.blue.dat XENOMORPH 蓝端
xenomorph.red.dat XENOMORPH 红端
RBF.DAT 辐射场边界

第八部分:文件格式详解

8.1 fort.5 (主输入)

35000. 4.0        ! TEFF, GRAV (有效温度K, log g)
T  T              ! LTE, LTGRAY (LTE开关, 灰大气开关)
''                ! 可选参数文件名(空=无)
*-----------------------------------------------------------------
* frequencies
50                ! NFREAD (频率点数)
*-----------------------------------------------------------------
* data for atoms
8                 ! NATOMS (原子种类数)
* mode abn modpf
  2   0   0       ! 模式, 丰度, 配分函数模式
  ...
*-----------------------------------------------------------------
* data for ions
*iat    iz   nlevs  ilast ilvlin  nonstd typion  filei
  1     0     9      0    100      0    ' H 1' './data/h1.dat'
  ...

8.2 fort.7/fort.8 (模型文件)

! 头部: ND, NUMPAR
70  3
! 质量深度数组
1.000E+00  9.500E-01  ...  1.000E-10
! 每个深度点
! TEMP(ID) ELEC(ID) DENS(ID) [TOTN(ID)] [POPUL(1..NLEVEL)]

8.3 fort.9 (收敛历史)

RELATIVE CHANGES OF VECTOR PSI
 ITER  ID    TEMP        NE       POP     RAD      MAXIMUM   ilev   ifr
   1   70  1.23E-02  2.45E-01  1.00E+00  0.00E+00  2.45E-01    5   10
   ...

第九部分:有 I/O 的模块分析

模块 主要 I/O 操作 复杂度
INITIA 打开所有输入文件
OUTPUT 写入 fort.7, fort.12, fort.22
READBF 读取原子数据文件
PRSENT 打印进度到 fort.6
TIMING 写入 fort.69
OPFRAC 读取 ODF 文件
INILAM 初始化谱线数据
KURUCZ 读取 Kurucz 格式模型
NSTPAR 读取非标准参数
MOLEQ 分子数据处理
OPDATA 读取不透明度数据
RDATA 读取原子数据
SIGAVE Stark 加宽数据

第十部分:重构优先级

高优先级(核心 I/O必须实现

文件 单元 用途
fort.5 5 主输入
fort.6 6 标准输出
fort.7 7 模型输出
fort.8 8 模型输入

中优先级(诊断/中间文件)

文件 单元 用途
fort.9 9 收敛历史
fort.11 11 辐射压力
fort.12 12 模型快照

低优先级(调试/可选)

文件 单元 用途
fort.10 10 警告
fort.14 14 角度分布
fort.16-18 16-18 调试
fort.69 69 计时
fort.82,84,86-88 ODF 诊断

附录:测试文件清单 (tests/tlusty/hhe/)

文件 大小 说明
hhe35lt.5 984 B 输入文件
fort.7 45 KB 模型输出
fort.8 45 KB 模型输入
fort.9 139 KB 收敛历史
fort.10 1.2 KB 警告
fort.11 8 KB 辐射压力
fort.12 45 KB 模型快照
fort.14 96 KB 角度分布
fort.17 4.7 KB 迭代模型
fort.18 480 KB 详细日志
fort.22 45 KB 模型快照
fort.69 3.3 KB 计时
fort.82 4.5 KB 谱线统计
fort.84 1.9 KB 参数值