Tlusty208 和 Synspec54 安装与简单使用
1. 简介
Tlusty 和 Synspec 是用于计算恒星大气模型和合成光谱的软件包。本指南涵盖安装、配置、编译、测试及 Python 工具 Synple 的使用。
2. 下载与安装
2.1 下载文件
主文件:
1 | wget https://www.as.arizona.edu/~hubeny/tlusty208-package/tl208-s54.tar.gz |
可选文件(根据需求选择):
线列表(原子、分子谱线数据):
1
wget https://www.as.arizona.edu/~hubeny/tlusty208-package/linelist.tar.gz
铁数据(用于金属线空白模型):
1
wget https://www.as.arizona.edu/~hubeny/tlusty208-package/irondata.tar.gz
消光表(预计算的消光数据):
1
wget https://www.as.arizona.edu/~hubeny/tlusty208-package/optables.tar.gz
2.2 解压文件
1 | tar xvfz tl208-s54.tar.gz |
2.3 目录结构
解压后生成的目录结构如下:
1 | tl208-s54/ |
3. 环境变量配置
3.1 设置主目录变量
1 | # tcsh |
3.2 编译线列表转换工具
1 | cd $LINELIST/linelist |
3.3 链接额外数据
进入 data
目录并运行链接线表:
1 | cd $TL208/tl208-s54/data |
4. 编译程序
4.1 编译 Tlusty
1 | cd $TL208/tl208-s54/tlusty |
4.2 编译 Synspec
1 | cd $TL208/tl208-s54/synspec |
5. 运行测试
5.1 测试 Tlusty
Tlusty 包含多种测试模型,可用于验证安装。测试案例通常包括计算一个局部热动平衡(LTE)模型,然后仅使用连续谱的非局部热动平衡(NLTC)模型,最后是包含谱线的非局部热动平衡(NLTL)模型。
运行所有测试案例:
1 | cd $TL208/tl208-s54/tests/tlusty |
或运行单个测试案例:
1 | cd $TL208/tl208-s54/tests/tlusty/hhe |
单独运行某个模型:
1 | cd $TL208/tl208-s54/tests/tlusty |
测试子目录说明:
- hhe:H-He 非局部热动平衡(NLTE)模型
- bstar:B 型星金属线空白模型
- cwd:DA 白矮星模型
- disk:吸积盘垂直结构模型
- optab:使用消光表的测试
5.2 测试 Synspec
Synspec 同样包含多种测试案例,用于验证光谱合成功能。
运行所有测试案例:
1 | cd $TL208/tl208-s54/tests/synspec |
运行消光表测试:
1 | cd $TL208/tl208-s54/tests/synspec/optab |
单独运行某个光谱合成:
1 | cd $TL208/tl208-s54/tests/synspec |
测试子目录说明:
- hhe:H-He 模型的合成光谱
- bstar:B 型星模型的合成光谱
- kurucz:Kurucz 模型的合成光谱
- optab:消光表生成与验证
6. 使用帮助
6.1 Tlusty 模型计算
- 准备输入文件(模型参数文件
.5
) - 运行计算:
1
RTlusty model_name
- 输出文件:
model_name.6
:计算日志model_name.7
:模型大气结构model_name.asc
:可读模型(如果请求)
6.2 Synspec 光谱合成
- 准备输入文件(使用 Tlusty 模型和额外控制文件)
- 运行计算:
1
RSynspec model_name
- 输出文件:
model_name.spec
:合成光谱model_name.cont
:连续谱model_name.iden
:谱线识别表
6.3 后处理工具
ROTIN 程序用于旋转展宽和仪器轮廓处理:
1 | cd $TL208/tl208-s54/synspec |
7. 常见问题解答
内存不足错误
- 使用
-mcmodel=large
重新编译 - 减少模型复杂度(频率点、能级数量)
- 使用
线列表问题
- 确保链接脚本正确执行
- 检查环境变量设置是否正确
收敛问题
- 尝试从更简单的模型开始计算
- 调整迭代参数(如 NITER)
8. 高级特性
8.1 Python 工具 Synple
Synple 是一个 Python 封装,简化 Tlusty 和 Synspec 的使用:
1 | #下载编译 |
详细说明请参考 Synple 文档。
8.2 并行计算
某些情况下可使用 OpenMP 进行并行计算:
1 | gfortran -fno-automatic -fopenmp -O3 -o tlusty.exe tlusty208.f |
TLUSTY详细使用说明
1. 概述
TLUSTY 是由Ivan Hubeny和Thierry Lanz开发的非局部热力学平衡(NLTE)恒星大气和吸积盘模型计算程序。版本208支持混合CL/ALI方法求解辐射转移方程,广泛应用于恒星大气、吸积盘等天体物理场景。
2. 输入文件规范
2.1 主输入文件(*.5
)
核心参数(第一行)
1 | [TEFF, GRAV] 或 [XMSTAR, XMDOT, RSTAR, RELDST] |
参数 | 类型 | 说明 |
---|---|---|
TEFF | 浮点数 | 表面有效温度(K),用于恒星模式 |
GRAV | 浮点数 | 表面重力加速度对数(log g),单位cm/s² |
XMSTAR | 浮点数 | 中心天体质量: - >0:经典恒星质量(M☉) - <0:黑洞质量(绝对值) - 0:独立盘模型 |
XMDOT | 浮点数 | 吸积率(g/s或M☉/年) |
RSTAR | 浮点数 | 恒星半径(cm/R☉)或黑洞自旋参数(几何单位) |
RELDST | 浮点数 | 盘环相对距离: - 恒星:R/R* - 黑洞:R/Rg |
模型类型(第二行)
1 | LTE [LTGRAY] |
参数 | 类型 | 说明 |
---|---|---|
LTE | 布尔值 | .TRUE. :计算LTE模型;.FALSE. :计算NLTE模型 |
LTGRAY | 布尔值 | .TRUE. :使用LTE灰辐射初始模型;.FALSE. :需提供初始模型文件fort.8 |
关键词参数文件(第三行)
1 | FINSTD |
参数 | 类型 | 说明 |
---|---|---|
FINSTD | 字符串 | 自定义参数文件名(空字符串表示使用默认参数) |
频率点设置(第四行)
1 | NFREAD |
参数 | 类型 | 说明 |
---|---|---|
NFREAD | 整数 | >0:自动设置频率点;<0:对数等间距设置(点数取绝对值) |
2.2 化学物种配置
基础设置
1 | NATOMS iabset |
参数 | 类型 | 说明 |
---|---|---|
NATOMS | 整数 | 最高原子序数: - <0:使用Opacity Project数据 - 0:仅使用预计算表 - >0:正常模式 |
iabset | 整数 | 丰度模式(1或2表示使用默认太阳丰度) |
元素参数(NATOMS条记录)
1 | MODE ABN MODPF |
参数 | 类型 | 说明 |
---|---|---|
MODE | 整数 | 0: 忽略;1: 隐式处理;2: 显式处理 |
ABN | 浮点数 | 丰度: - 0:太阳丰度 - <0:太阳丰度的倍数(绝对值) - >0:相对丰度 - >1e6:深度依赖丰度 |
MODPF | 整数 | 分区函数计算模式: - 0:标准计算 - >0:Opacity Project - <0:用户自定义 |
2.3 显式离子配置
离子参数
1 | IATII IZII NLEVSI ILASTI ILVLIN NONSTD TYPION FILEI |
参数 | 类型 | 说明 |
---|---|---|
IATII | 整数 | 元素原子序数(如1=H,2=He) |
IZII | 整数 | 电离态(0=中性,1=一次电离) |
NLEVSI | 整数 | 显式考虑的能级数 |
ILASTI | 整数 | 最高电离态标志: - 0:非最高态 - >0:最高态(1=自动权重,负值终止) |
ILVLIN | 整数 | 跃迁处理: - 2:仅基态跃迁 - >NLEVSI:全跃迁 |
NONSTD | 整数 | 非标准参数标志(<0需指定超线文件) |
TYPION | 字符串 | 离子标识(如’He 2’) |
FILEI | 字符串 | 原子数据文件路径 |
3. 非标准参数(nst文件)
非标准标志文件包含一系列参数覆盖和高级设置,例如:
1 | ND=50,NLAMBD=3,VTB=2.,ISPODF=1,DDNU=50.,CNU1=6.,NITER=0 |
全部可选参数,默认值,作用为:
参数分类与解释
**1. 物理模型控制参数
参数名 | 默认值 | 作用 |
---|---|---|
ISPLIN |
0 |
插值方法标志(0 表示线性插值,其他值可能对应不同插值方式)。 |
IRTE |
0 |
辐射转移方程求解模式(0 表示默认求解器)。 |
IBC |
3 |
边界条件类型(如3 表示特定辐射边界条件)。 |
LTE |
0 |
是否启用局部热平衡(LTE)(1 表示启用)。 |
LTGREY |
0 |
是否启用LTE 灰模型(1 表示启用)。 |
IDISK |
0 |
模拟对象类型: |
0 = 恒星大气,>0 = 吸积盘。 |
||
HMIX0 |
0 |
对流参数,控制对流模型的启用(>0 表示启用对流)。 |
TRAD |
0 |
外部辐射场温度(>0 表示指定温度,0 表示通过模型计算)。 |
WDIL |
0 |
外部辐射场的稀释因子(>0 表示指定值,0 表示通过其他参数计算)。 |
**2. 数值方法控制参数
参数名 | 默认值 | 作用 |
---|---|---|
NITER |
0 |
非 LTE 迭代的最大次数(需用户指定,0 表示未设置)。 |
NMU |
3 |
角积分点数(控制辐射转移方程的离散化精度)。 |
NLAMBD |
1 |
波长点数(LTE 模式下通常设为 1 ,非 LTE 模式下需用户指定)。 |
IFRSET |
0 |
频率点设置模式(>0 表示使用预设频率点)。 |
NTRANS |
ITR |
总跃迁数(由INITIA 子程序计算)。 |
NCFOR1 , NCFOR2 |
1 , 2 |
连续谱计算参数(控制不同频率范围的处理方式)。 |
**3. 吸收/发射控制参数
参数名 | 默认值 | 作用 |
---|---|---|
IOPTAB |
0 |
吸收系数表开关: |
0 = 不使用预计算表,>0 = 使用表。 |
||
IFMOL |
0 |
分子过程开关(>0 表示启用分子吸收/发射)。 |
IOPHL1 , IOPHL2 |
0 |
氢线吸收/发射计算开关(>0 表示启用)。 |
IOPHMI |
0 |
氢分子(H⁻)相关吸收开关。 |
IOPCH |
0 |
碳氢化合物(CH)相关吸收开关。 |
**4. 湍流与展宽参数
参数名 | 默认值 | 作用 |
---|---|---|
VTB |
-1 |
湍流速度(单位需结合代码转换,如1e5 cm/s )。 |
IVISC |
0 |
粘滞力模型开关(>0 表示启用特定粘滞模型)。 |
ALPHAV |
0.1 |
粘滞系数(如湍流粘度与压强的比值)。 |
ZETA0 , ZETA1 |
0.0 , 0.0 |
粘滞力参数(可能控制剪切流动或温度梯度的影响)。 |
**5. 迭代与加速参数
参数名 | 默认值 | 作用 |
---|---|---|
IFRYB |
0 |
迭代方法选择(0 = 标准 CL 方法,>0 = 使用 Rybicki 的加速方法)。 |
IACC |
7 |
迭代加速方法标志(>0 表示启用 Anderson 加速等方法)。 |
ITEK |
0 |
迭代终止条件(>0 表示在指定步数后切换到 Kantorovich 迭代)。 |
ORELAX |
1.0 |
迭代松弛因子(控制收敛速度)。 |
**6. 几何与深度参数
参数名 | 默认值 | 作用 |
---|---|---|
ND |
0 |
大气模型的深度点数(0 表示使用默认值 ND-1 )。 |
TAUFIR |
1e-7 |
表面罗斯兰德光学深度(>0 表示指定值)。 |
TAULAS |
316.0 |
底层罗斯兰德光学深度(默认值可能针对恒星大气)。 |
DM1 |
0.0 |
吸积盘第一层的质量深度(>0 表示指定值)。 |
**7. 特殊物理过程开关
参数名 | 默认值 | 作用 |
---|---|---|
ICOMPT |
0 |
康普顿散射开关(>0 表示启用)。 |
IWINBL |
-1 |
风空白效应开关: |
-1 = 禁用,1 或 2 = 启用不同模型。 |
||
IQUASI |
0 |
准静态近似开关(>0 表示启用)。 |
IFMOFF |
0 |
分子屏蔽效应开关(>0 表示启用)。 |
**8. 原子与能级参数
参数名 | 默认值 | 作用 |
---|---|---|
IELCOR |
-1 |
能级校正模式(-1 表示自动校正)。 |
ICHC |
0 |
氢复合过程开关(1 表示启用)。 |
IFLEV |
1 |
能级计算模式(1 表示简化计算,0 表示全计算)。 |
NFRECL |
0 |
线轮廓的离散化频率点数(0 表示自动生成)。 |
**9. 输出与调试控制
参数名 | 默认值 | 作用 |
---|---|---|
IPRING |
0 |
调试输出详细程度: |
0 = 最终结果,1 = 中间结果,2 = 完全输出。 |
||
IPRINI |
0 |
初始模型输出开关(>0 表示输出初始配置)。 |
IPCONF |
0 |
配置文件输出开关(>0 表示输出详细参数配置)。 |
**10. 其他关键参数
参数名 | 默认值 | 作用 |
---|---|---|
FRCMAX , FRCMIN |
1e15 Hz |
频率范围的上限和下限(需单位转换)。 |
REYNUM |
3.0 |
雷诺数(控制湍流模型)。 |
DPSILG , DPSILT |
1e-3 |
密度/温度梯度的容差参数(用于收敛判断)。 |
IOPADD |
0 |
其他吸收过程开关(如铁线、碳氢化合物等)。 |
4. 输出文件说明
文件名 | 说明 |
---|---|
file.6 |
标准输出(计算过程、诊断信息) |
file.7 |
紧缩模型(最终大气模型,包含温度、密度、能级布居数等) |
file.9 |
收敛日志(迭代过程记录) |
file.14 |
辐射通量(各波长的F_λ值) |
5. 示例用法
5.1 非LTE恒星模型
输入文件(hhe35lt.5
)
1 | 35000. 4.0 ! TEFF, GRAV |
非标准参数(nst
)
1 | ND=50 ! 50个深度点 |
运行命令
1 | $TLUSTY/RTlusty hhe35lt |
也可以从现有模型开始计算:
1 | $TLUSTY/RTlusty hhe35nc hhe35lt |
6. 可视化示例
收敛日志:
1 | import matplotlib.pyplot as plt |
紧缩模型
1 | import matplotlib.pyplot as plt |
紧缩模型对比
1 | import matplotlib.pyplot as plt |
辐射通量
1 | import matplotlib.pyplot as plt |
7. 注意事项
- 初始模型:若LTGRAY=F,需提供
fort.8
初始模型文件 - 单位转换:
XMSTAR
单位为太阳质量,RSTAR
单位需根据模式选择(cm/R☉或几何单位) - 深度依赖丰度:当ABN>1e6时,需在后续行输入ND个深度点的丰度值
Synspec详细使用说明
1. 概述
SYNSPEC是一个功能强大的恒星光谱合成程序,主要用于计算基于给定恒星大气模型的合成光谱。该程序由Ivan Hubeny和Thierry Lanz开发,版本54(synspec54.f)是一个通用代码,可以基于由TLUSTY生成的大气模型或其他大气模型来计算高分辨率的合成光谱。SYNSPEC处理连续吸收和发射以及谱线轮廓,能够产生包含细节丰富的光谱数据。
2. 程序结构
SYNSPEC的程序结构包含以下主要组件:
2.1 主要源文件
- synspec54.f: 主程序文件,包含主要的计算逻辑和光谱合成过程
- PARAMS.FOR: 定义基本参数和常量,如数组维度和物理常数
- LINDAT.FOR: 定义与谱线数据相关的数组和变量
- MODELP.FOR: 包含模型大气参数和变量的声明
- SYNTHP.FOR: 合成光谱相关的参数和变量
- OPTPAR.FOR: 不透明度计算相关参数
- WINCOM.FOR: 窗口函数和赤道速度场参数
- ngrid.f: 波长网格生成程序
- rotin.f: 旋转和仪器展宽程序
2.2 主要子程序
- START: 通用输入和初始化程序
- INPMOD/INKUR: 读取大气模型
- INIBL0/INIBL1: 初始化线列表和基本参数
- MOLINI/INMOLI: 初始化分子数据
- RESOLV/RESOLW: 计算吸收系数和谱线轮廓
- RTE/RTECD: 辐射转移方程求解
- OUTPRI: 输出结果
- IDTAB: 生成谱线鉴别表
3. 输入文件格式
SYNSPEC使用多个输入文件,包括:
3.1 主要输入文件
控制文件 (
fort.1
): 基本控制文件,仅包含一个数字,指定是处理恒星大气模型还是吸积盘模型- 如果这个数字是 0,或者文件完全缺失,则认为是恒星大气模型
- 否则,认为是盘模型的一个环
主输入文件 (
file.5
): 主控制数据,与用于TLUSTY生成合成光谱所计算模型大气的数据完全相同大气模型文件 (
file.8
): 输入大气模型,通常为之前计算的TLUSTY模型(即TLUSTY的file.7
输出),但也可以是Kurucz模型线列表文件 (
fort.19
): 原子线列表,基于Kurucz线列表附加输入文件 (
fort.55
): 用于计算合成光谱的附加输入参数化学丰度变化文件 (
fort.56
, 可选): 指定相对于输入模型大气的化学丰度变化。对于LTE模型或在合成光谱运行中考虑的化学丰度与构建输入模型大气时使用的化学丰度相同的NLTE模型,不需要此文件超能级能量带文件 (
fort.57
, 可选): 只有当输入模型大气是NLTE金属线屏蔽模型,并且用超能级和超线来处理铁峰元素的能级结构时,才需要此文件
3.2 主输入文件格式(file.5)
与TLUSTY使用的格式相同:
1 | Teff Grav ! 有效温度和表面重力 |
3.3 附加输入文件格式(fort.55)
fort.55
是SYNSPEC程序的输入控制文件,用于定义合成光谱的计算模式、参数和选项。以下是其参数的详细说明:
3.3.1 文件结构
参数按以下顺序读取(自由格式,空格分隔):
1 | imode idstd iprin |
3.3.2 参数详解
基础模式参数
参数名 | 含义 | 取值说明 |
---|---|---|
imode |
运行模式选择: | -0 :正常合成光谱- 1 :仅计算少数谱线(已废弃)- 2 :仅计算连续谱(含H和He II谱线)- 10 :含分子谱线的合成光谱- -1 :铁幕模式(仅计算特定深度的不透明度) |
idstd |
“标准深度”索引(近似满足T ≈ (2/3) T_eff 的深度点) |
通常设为(2/3) × N_D (N_D 为模型深度点总数)。仅影响谱线选择参数 relop 。 |
iprin |
输出信息级别(已废弃) | >0 增加输出信息,但很少使用。 |
输入模型参数
参数名 | 含义 | 取值说明 |
---|---|---|
inmod |
输入模型类型: | -0 :Kurucz 模型- 1 :Tlusty 模型- 2 :吸积盘模型 |
intrpl |
模型插值选项(很少使用) | 默认设为0 。 |
ichang |
模型修改选项(很少使用) | 默认设为0 。 |
ichemc |
元素丰度修改标志: | ≠0 时需提供 fort.56 文件定义丰度变化。 |
谱线与不透明度参数
参数名 | 含义 | 取值说明 |
---|---|---|
iophli |
Lα 线远翼处理(已废弃) | 建议设为0 。 |
nunalp |
是否考虑 Lα 卫星线: | ≠0 时需提供 laquasi.dat 文件。 |
nunbet |
是否考虑 Lβ 卫星线: | ≠0 时需提供 lbquasi.dat 文件。 |
nungam |
是否考虑 Lγ 卫星线: | ≠0 时需提供 lgquasi.dat 文件。 |
nunbal |
是否考虑 Hα 卫星线: | ≠0 时需提供 lhquasi.dat 文件。 |
求解器与不透明度控制
参数名 | 含义 | 取值说明 |
---|---|---|
ifreq |
辐射转移方程求解器选择: | -<10 :DFE 方案- ≥10 :Feautrier 方案- 默认 1 (DFE)。 |
inlte |
NLTE 处理标志: | -0 :强制 LTE 计算- >0 :指定电离边缘能级的 NLTE 处理模式(值 1 或 2 )。 |
icontl |
连续谱处理选项(已废弃) | 默认设为0 。 |
inlist |
行列表处理选项(已废弃) | 默认设为0 。 |
ifhe2 |
He II 处理方式: | ≠0 时将 He II 视为氢类离子。 |
谱线轮廓参数
参数名 | 含义 | 取值说明 |
---|---|---|
ihydpr |
氢谱线轮廓特殊处理: | ≠0 时需提供 hydprf.dat 文件。 |
ihe1pr |
He I 谱线轮廓特殊处理: | ≠0 时需提供 he1prf.dat 文件。 |
ihe2pr |
He II 谱线轮廓特殊处理: | ≠0 时需提供 he2prf.dat 文件。 |
波长范围与分辨率
参数名 | 含义 | 取值说明 |
---|---|---|
alam0 |
起始波长(Å) | 例如1000.0 。 |
alast |
终止波长(Å) | - 若alast < 0 :所有波长按真空波长处理- 默认 >2000 Å 时按空气波长处理。 |
cutof0 |
线不透明度截断参数: | 仅保留中心不透明度超过cutof0 的谱线(除 H 和 He II)。 |
cutofs |
保留参数(无实际作用) | 默认设为0 。 |
relop |
线截断阈值: | 若谱线中心不透明度与标准深度的连续谱不透明度比值< relop ,则忽略该线。 |
space |
波长间隔控制参数: | 最大波长间隔为space × (alam0 + alast)/(2λ) ,其中 λ 为波长中点。 |
分子线列表与湍流速度
参数名 | 含义 | 取值说明 |
---|---|---|
nmlist |
额外分子线列表数量 | 若nmlist=0 ,则无需后续参数。 |
iunitm(i) |
额外分子线列表的文件单元号(共nmlist 个) |
例如20 、21 对应 gfMOL.dat 和 gfTiO.dat 。 |
强度输出参数
参数名 | 含义 | 取值说明 |
---|---|---|
vtb |
湍流速度(km/s) | 若未指定,则使用 Tlusty 输入中的值。 |
nmu0 |
角分布点数: | -nmu0=0 :仅计算总通量- >0 :计算 I_ν(μ) ,μ 在 ang0 到 1 间等间距分布。 |
ang0 |
最小角度余弦值(μ = cosθ ) |
例如0.0 对应垂直方向。 |
iflux |
强度计算标志: | 1 :启用 I_ν(μ) 计算。 |
3.3.3 示例输入
1 | 0 10 0 |
3.3.4 注意事项
- 省略参数:若无需最后三行(
vtb
,nmu0
,ang0
,iflux
),则设nmlist=0
且vtb
采用 Tlusty 输入值。 - 过时参数:
icontl
,inlist
,iophli
建议设为默认值。 - 文件依赖:若启用卫星线或特殊轮廓,需提供对应数据文件(如
laquasi.dat
,hydprf.dat
等)。 - 波长单位:
alam0
和alast
默认按空气波长处理(λ > 2000 Å
)。
3.4 线列表文件格式
线列表文件包含谱线数据:
- 波长(埃)
- 振子强度(log gf)
- 激发能(eV)
- 谱线阻尼常数
- 元素和电离状态标识
4. 输出文件格式
SYNSPEC生成多个输出文件:
4.1 主要输出文件
标准输出文件 (
file.6
): 包含计算日志,仅在出现问题时才重要合成光谱文件 (
fort.7
、*.spec
): 存储最终合成光谱的通量数据1
2
3波长1 通量1 ! λ:波长和 H_λ:埃丁顿通量(Eddington flux)
波长2 通量2
...连续谱文件 (
fort.17
、*.cont
): 存储无谱线的纯连续谱通量数据1
2
3波长1 连续谱通量1 ! λ:波长和 H_cont:连续谱通量(排除所有谱线贡献)
波长2 连续谱通量2
...谱线鉴别表 (
fort.12
、*.iden
): 谱线标识表,列出所有被选中的谱线及其参数,便于谱线识别1
2波长 元素 离子 等效宽度 谱线参数
...部分等效宽度表 (
fort.16
、*.eqws
): 记录各谱线或谱区的等效宽度(Equivalent Width, EW)
4.2 特殊输出选项
- 特定强度文件 (
fort.10
): 如果计算特定方向的强度 - 连续谱特定强度 (
fort.18
): 连续谱的方向相关强度 - 单色不透明度 (
fort.27
): 铁幕模式下的不透明度表
4.3 文件用途总结
文件名 | 描述 | 典型用途 |
---|---|---|
fort.6 |
计算日志文件 | 调试和错误诊断 |
fort.7 |
合成光谱(包含谱线和连续谱) | 光谱分析、可视化 |
fort.17 |
纯连续谱通量 | 分离谱线和连续谱贡献 |
fort.12 |
谱线标识表 | 谱线识别和属性查询 |
fort.16 |
谱线等效宽度列表 | 定量评估谱线强度 |
5. API参考
SYNSPEC没有提供传统意义上的API,但可以通过特定的输入文件和参数以编程方式调用它。以下是shell脚本RSynspec中执行SYNSPEC的方式:
1 | $TLUSTY/synspec/synspec.exe < $MOD.5 > $MOD.log |
这表明SYNSPEC接受来自标准输入的输入文件,并将输出写入标准输出或指定的文件。
5.1 环境变量
- TLUSTY: 指向TLUSTY/SYNSPEC安装目录的环境变量
5.2 输入/输出单元
SYNSPEC使用FORTRAN单元进行I/O操作:
- 单元5: 标准输入(主输入文件)
- 单元6: 标准输出(详细输出)
- 单元7: 合成光谱输出
- 单元8: 大气模型输入
- 单元12: 谱线鉴别表
- 单元16: 部分等效宽度表
- 单元17: 连续谱通量
- 单元19: 线列表输入
- 单元55: 附加输入文件
- 单元69: 时间日志
5.3 核心功能
SYNSPEC的核心功能由以下几个步骤组成:
读取输入参数和模型大气
1
2CALL START
CALL INPMOD / CALL INKUR初始化线列表和原子数据
1
2CALL INIBL0
CALL INIMOD计算吸收系数和谱线轮廓
1
CALL RESOLV / CALL RESOLW
求解辐射转移方程
1
CALL RTE / CALL RTECD
输出结果
1
2CALL OUTPRI
CALL IDTAB
6. 示例用法
6.1 基本光谱合成
以下是使用RSynspec脚本计算光谱的基本命令:
1 | RSynspec model_name additional_input line_list |
例如:
1 | RSynspec h20k linelist.dat |
6.2 控制光谱范围和分辨率
在单元55的输入文件中设置波长范围和分辨率:
1 | 0 1 0 ! 模式、模型格式、插值标志 |
6.3 计算连续谱
将IMODE设置为2来仅计算连续谱:
1 | 2 1 0 ! 模式=2表示仅连续谱 |
6.4 后处理:旋转和仪器展宽
使用ROTIN程序处理SYNSPEC输出的原始光谱:
1 | rotin < rotin.input |
其中rotin.input包含旋转速度、仪器展宽类型等参数。