GENRAY
GENRAY 是一个用于计算电磁波在几何光学近似下的传播和吸收的通用光线追踪程序。它提供了在一般非轴对称几何射线跟踪方程的解决方案,虽然迄今为止的工作是轴对称平衡与附加环形扰动。为了对 EC 波、 LH 波和 ICRF 波进行射线追踪,提供了几种可供选择的色散函数 d。根据麦克斯韦分布函数计算电流驱动。结果耦合到 CQL3D 程序,为计算射频 QL 扩散系数提供输入。
源代码地址: https://github.com/compxco
目录
GENRAY
一、genray.in/genray.dat
1. /genr/ 基本运行设置
2. /tokamak/ 托卡马克几何与物理场设置
3. /wave/ 波参数设置
4. /scatnper/ N_perp(endicular)(N⊥)散射设置
5. /dispers/ 色散关系和吸收模型
6. /numercl/ 数值方法设置
7. /output/ 绘图与结果输出设置
8. /plasma/ 等离子体组成与剖面控制
9. /species/ 等离子体组分属性
10. /varden/ 密度扰动参数
关键剖面参数设置(11~15)
11. /denprof/ 密度剖面参数
12. /tpopprof/ 温度各向异性比参数
13. /vflprof/ 顺磁漂移速度剖面参数
14. /zprof/ 有效电荷Z_eff剖面参数
15. /tprof/ 温度剖面参数
16. /grill/ 定义入射波初始参数(用于LH/EBW模拟)
17. /eccone/ 定义ECR 波发射锥参数
关键剖面表参数设置(18~22)
18. /dentab/ 密度剖面表参数
/dentab_nonuniform_line/
19. /temtab/ 温度剖面表参数
/temtab_nonuniform_line/
20. /tpoptab/ 温度各向异性比表参数(T_perp/T_parallel)
/tpoptab_nonuniform_line/
21. /vflowtab/ 平行磁场漂移速度剖面表参数
/vflowtab_nonuniform_line/
22. /zeftab/ Z_eff剖面表参数
/zeftab_nonuniform_line/
23. /read_diskf/ 定义电子速度分布函数的输入方式
24. /emission/ 辐射发射计算参数
25. /ox/ O-X模式转换参数优化
26. /adj_nml/ 伴随函数计算相关参数
27. /edge_prof_nml/ LCFS(最后闭合磁面)外部等离子体密度/温度剖面的设置
二、./00_Genray_Regression_Tests/ 文件夹Readme说明
🔹 Test 1: ITER 中 ECE 发射
🔹Test 2: HPRT 与 GENRAY 射线轨迹比较
🔹 Test 3: NSTX EBW B-X-O 多频发射测试
🔹Test 4 & 4.1: NSTX O-X-B 模式转换测试
🔹 Test 5 & 5.1: ITER EC 基准测试(与 R. Prater 合作)
🔹 Test 6: DIII-D 多锥多射线 ECH 测试
🔹 Test 7 & Test7_edge_dens_rz: C-Mod LH 边缘密度模型测试
🔹 Test7.mpi: 并行测试
🔹 Test 8: ITER 近轴 ECCD 测试
🔹 Test 9: LSC 类 QL 阻尼测试
🔹 Test 10 & 10.1: EBW O-X-B 模式转换 CD 测试
三、./00_Genray_Regression_Tests/ 文件分类
3.1 `drawxxxx.in` 文件
3.2 `equilib.dat`文件
一、genray.in/genray.dat
GENRAY 输入文件( genray.in )用于指定GENRAY射线追踪代码的运行参数。该文件采用名称列表( namelist )格式,每个名称列表包含一组相关的参数及其描述(Genray_Input_namelist_description)。
以下是主要字段列表及其参数的详细描述。
(注:带 “*” 号的可选不提供)
1. /genr/ 基本运行设置
参数名 | 描述 |
---|---|
mnemonic | 运行标识符,用于命名输出文件(默认为”genray”) |
rayop | 指定输出文件类型("both" 、"text" 、"netcdf" 或"none" ) |
dielectric_op | 是否输出复介电张量数据("enabled" 或"disabled" ) |
r0x | 特征长度(米) |
b0 | 特征磁场(特斯拉) |
outdat | 输出文件名(20种,如”zrn.dat”) |
stat | 输出文件状态(3种,"new" 、“old”、“replace”) |
partner | 指定输入等离子体剖面的来源("disabled" 使用内置剖面) |
2. /tokamak/ 托卡马克几何与物理场设置
参数名 | 描述 |
---|---|
eqdskin | 等离子体平衡输入文件(默认 “equilib.dat”) |
indexrho | 归一化径向坐标的类型(1~6,对应不同几何定义; = 1:截面积平方根(适用于初步模拟、均匀等离子体); = 2:环向通量平方根(适用于高β值或复杂磁场); = 3 :体积平方根(适合非环向对称等离子体); = 4 :磁位函数差(磁位函数 – 边界磁位函数)平方根(精确关联磁力线,适用于磁场平衡、波传播); = 5:磁位函数差(线性)(磁位函数 – 边界磁位函数)(边缘区分辨率高,适用于边缘区吸收、杂质输运); = 6 :限制器半径范围(最大半径 – 最小半径)/(极限器最大半径 – 极限器最小半径)(直接关联限制器几何,适用于限制器主导的约束))。 |
ipsi | 是否计算磁位函数 psi 的等值线(= 1:计算 ψ ( z , r ) = C ( 常量 ) psi(z,r)=C(常量) ψ(z,r)=C(常量);= 0:从psi.bin中读取) |
ionetwo | 是否计算功率和电流剖面(1 = 计算,0 = 不计算) |
ieffic | 电流驱动效率公式的选择(1~6,对应不同模型; = 1:渐近简单公式(适用于均匀、非相对论条件); = 2:渐近公式(East-Karney 模型,适用于非相对论条件); = 3:Curba(Ron Cohen)子程序(高速近似 + 平方势阱磁场模型,适用于高速电子与磁场相互作用)); = 4:Lin-Liu 模型(调用 TorGA_curgap 子程序,可能结合更复杂的波-粒子相互作用);= 5:仅对 n_harmonic=0 的情况使用 ADJ 函数(例如 LH 波),并结合 Stix 通量(适用于混杂波(LH 波)等零阶谐波的特定谐波条件,需启用ADJ: i_adj=1 );= 6:对所有 n_harmonics 的通用情况使用 ADJ 函数,并结合 Stix 通量(适合任意阶次的谐波(如 EC 波、HH 波等),需启用ADJ:i_adj=1 )。12适用初步简单分析,3456精度高,需根据具体波类型(LH 波/EC 波)和模型假设调整。 |
psifactr | 定义限制器边界参数(值介于0~1,通常设为接近1的小值),避免分离界面附近问题 |
deltripl | 最后闭合磁通面LCFS(ρ = 1)处的磁扰动幅度/磁场波动的相对振幅(默认0,无扰动) |
nloop | 托卡马克环向场线圈数量(如24) |
i_ripple | 磁扰动模型选择(1 = 近似DIII-D场,2 = 修正贝塞尔函数) |
NR | 径向剖面的分箱数/径向网格点数(用于功率和电流计算)(如101) |
n_wall, max_limiters | 真空室壁的坐标点数和最大支持限制器数(= 0:禁用;n_wall = 0时,射线不会被壁反射;n_wall > 0时,真空室壁的坐标由 r_wall[1:n_wall] 和 z_wall[1:n_wall] 定义。坐标点对的起始点和终点必须为同一物理位置(即几何轮廓闭合),射线会在这些点之间的直线段发生反射)。 |
r_wall, z_wall | 真空室壁的坐标(n_wall个值组成的列表,一一对应组成(r,z)坐标) |
n_limiter | 定义单个限制器的最大限制(列表) |
r_limiter(i,j), z_limiter(i,j) | 限制器的径向、垂直坐标限制(一一对应组成坐标) |
phi_limiter | 限制器的环向角度范围(度),其中1个限制器的格式如下: phi_limiter(1,1) = 0.0, phi_limiter(2,1) = 360.0 |
*h_add_wall | 带有附加点的真空室壁网格中壁点之间的距离(米) |
3. /wave/ 波参数设置
参数名 | 描述 |
---|---|
frqncy | 射频波频率(Hz)( f = ω / 2 π f=ω/2π f=ω/2π) |
ioxm | 波极化模式(+1 = O模,-1 = X模),仅在 ioxm_n_npar=0 时有效 |
ioxm_n_npar | = 0(默认):不使用 ioxm_n_par,波模由 ioxm 参数计算;= ±1,手动控制色散方程中平方根的符号(±),适用于复杂波传播路径(如:多模转换))。 |
ireflm | 最大反射次数(EC 波默认为 1) |
*no_reflection | 控制是否启用在边界闭合磁面上的人工反射(= 0(默认):启用,= 1:禁用人工反射,启用自然反射(由密度梯度引起)以不受ireflm控制)。 |
jwave | 波的谐波阶次(-1 = 阿尔文波(AW),0 = 低杂波(LH),1 = 电子回旋波(EC)),决定波与等离子体的相互作用机制(如 LH 波驱动电流,EC 波加热),用于电流驱动效率计算(见 [/tokamak/](#2. /tokamak/ 托卡马克几何与物理场设置)-ieffic)。 |
istart | 射线起始位置(1 = 外部,使用[/eccone/](#17. /eccone/ 定义ECR 波发射锥参数);2 = 内部,使用[/grill/](#16. /grill/ 定义入射波初始参数(用于LH/EBW模拟));3 = EC模式转换,使用[/grill/](#16. /grill/ 定义入射波初始参数(用于LH/EBW模拟))并结合dinit.f 中的额外计算),在等离子体内部以 O-X 模式发射 ECR 射线(需指定转换点 rhoconv, theta )。 |
*shift_rho_geom(仅适用于 istart=1) | 将射线初始点从等离子体边界(LCFS)向内偏移。默认 = 1.0d – 1.d-7,确保在高密度区域起始,避免 O-模和 X-模分离不足导致的模式混淆(尤其在热等离子体或相对论 EC 情况中)。 |
delpwrmn | 射线终止的最小功率比例(占初始功率的百分比),低于此值射线将被终止(如1e-16) |
ibw | 是否直接发射EBW(= 0:不直接发射 Bernstein 波;= 1:直接从 dhot 张量发射EBW,仅在 istart=2 和 grill_lh 条件下有效)。 |
i_vgr_ini | 射线初始方向(+1 = 入射/波在初始点朝向等离子体内部传播,-1 = 出射/波在初始点朝向等离子体外部传播)。 |
poldist_mx | 最大极向传播距离(米)(默认 = 1.d+5) |
*i_look_roots | 是否计算所有热等离子体根(0 = 不绘制 D ( N ⊥ ) D(N_{perp}) D(N⊥) 且不计算;1 = 绘制 D ( N ⊥ ) D(N_{perp}) D(N⊥)并计算,但不跟踪射线;2 = 计算且使用特定根作初始条件追踪射线)。 |
*cnperp_plot_min, cnperp_plot_max | D ( N ⊥ ) D(N_{perp}) D(N⊥)的绘图范围( N ⊥ N_{perp} N⊥ 的最小和最大值) |
*n_nperp_plot | 绘图的 N ⊥ N_{perp} N⊥ 点数 |
*N_perp_root_max, *n_points_root | 定义查找热等离子体根的最大 N ⊥ N_{perp} N⊥ 值和网格点数(影响计算精度和效率) |
*k_hot_root | 选择热等离子体根的索引(仅在 i_look_roots = 2时有效) |
*i_rho_find_hot_nperp_roots | = 0:不查找根;= 1:在极向归一化半径 ρ上查找热等离子体色散方程 D_hot(nper) = 0 的根 |
*rho_step_find_hot_nperp_roots | 查找热等离子体色散方程根的极向半径步长 |
*rho_min_find_hot_nperp_roots | 查找根的最小极向半径 |
✅EC波经典配置示例:
! EC 波模拟(高频波)
frqncy = 100.e9 ! 100 GHz
ioxm = -1 ! X-模
ioxm_n_npar = -1 ! 手动选择色散方程根
ireflm = 1 ! 最大反射次数为 1
no_reflection = 0 ! 启用人工反射
jwave = 1 ! EC 波
istart = 1 ! 起始点在等离子体外部
delpwrmn = 1.e-5 ! 功率衰减至 0.001% 时终止
i_look_roots = 2 ! 使用特定根追踪射线
k_hot_root = 1 ! 选择第一个热等离子体根
4. /scatnper/ N_perp(endicular)(N⊥)散射设置
参数名 | 描述 |
---|---|
iscat | n ⊥ n_{perp} n⊥ 散射开关(1 = 启用,0 = 禁用),即控制波传播过程中由于等离子体不均匀性或湍流引起的极角( θ θ θ)随机偏移。开启可用于模拟波在湍流或密度不均匀区域的传播(如边缘湍流或杂质团簇)。 |
rhoscat(1:nscat_n) | 指定散射发生位置的归一化半径(ρ 坐标)。注:参数 nscat_n 应在 param.i 文件中定义 |
scatd(0) | 等离子体边界(LCFS)反射点的平均散射角度平方( r a d 2 rad^{2} rad2) |
scatd(1:nscat_n) | 等离子体**内部(对应 rhoscat 中的 ρ 坐标)**的平均散射角度平方( r a d 2 rad^{2} rad2) |
注:极角偏移量 δ θ δθ δθ ( deltheta ) 由以下公式计算:
δ θ = 2 ⋅ s c a t d ⋅ r a n o r m ( f s e e d ) delta heta=sqrt{2⋅scatd}⋅ranorm(fseed) δθ=2⋅scatd
⋅ranorm(fseed)
ranorm(fseed)
:生成均值为 0、标准差为 1 的正态分布随机数
✅参数设置示例:
! 启用散射
iscat = 1
! 定义散射位置(在 param.i 中设置 nscat_n=3)
rhoscat = 0.5, 0.8, 1.0
! 设置散射强度(弧度²)
scatd(0) = 1e-4 ! 边界点散射
scatd(1) = 5e-5 ! ρ=0.5 处的散射
scatd(2) = 2e-5 ! ρ=0.8 处的散射
上例中 scatd(0) = 1e-4
,则边界点的散射角度标准差为 sqrt(2 * 1e-4) ≈ 0.014
弧度(≈0.8°);
上例中 scatd(1) = 5e-5
,则内部点的散射角度标准差为 sqrt(2 * 5e-5) ≈ 0.01
弧度(≈0.57°)。
关键应用场景:
模拟波在等离子体边缘的传播:
在等离子体边界(ρ ≈ 1)处,湍流或杂质或边界不规则性可能导致波的随机偏转。
通过设置 scatd(0)
和 rhoscat
中的 1.0
,可模拟这种效应。
研究湍流对波传输的影响:
在等离子体内部(ρ < 1)设置多个散射点(如 rhoscat = [0.5, 0.8]
),分析湍流如何改变波的路径和功率沉积。
调试与验证模型:
通过调整 scatd
的值,观察散射强度对波传播结果的影响(如功率衰减或聚焦效应)。
5. /dispers/ 色散关系和吸收模型
参数名 | 描述 |
---|---|
ib, 1 – y(ib) | <= nbulk,指定电子回旋共振(ECR)或其他等离子体共振类型(如 ib=1 表示 ECR);(1 - y(ib)) 为修正因子,用于乘以色散方程以消除奇点(如除零错误)。 |
id | 色散关系类型(1~15)。id=1、2 (低阶近似或简化模型):= 1: A N 4 + B N 2 + C = 0 AN^4 + BN^2 + C = 0 AN4+BN2+C=0; = 2: N 2 = ( − B + i o x m ⋅ B 2 − 4 A C ) / ( 2 A ) N^2 = (-B + ioxm·sqrt{B^2 – 4AC}) / (2A) N2=(−B+ioxm⋅B2−4AC )/(2A)(允许通过 ioxm 选择平方根前的符号(±),影响波模(O-模/X-模)的选择);= 3:Appleton-Hartree 方程(经典的冷等离子体色散方程,适用于低频波(如 LF 波),假设等离子体为冷、无碰撞且各向同性); id=4-7 (相对论电子等离子体模型,用于高温等离子体(如托卡马克边缘或激光等离子体)中电子回旋波(ECW)的传播):= 4:相对论电子等离子体(来自 Hermitian Mazzucato 代码); = 5:相对论电子等离子体(来自 Total Mazzucato 代码); = 6:热非相对论等离子体(Hermitian,Forest 计算); = 7:相对论电子等离子体(来自 Shkarofsky 代码); = 8:Ono 方程(专门用于快波FW的色散关系,适用于高 β 值等离子体(压力与磁场压力比值较高)); id=9-13 (复杂模型与自洽吸收,用于需要精确计算波与热电子、离子的相互作用(如 LH 波电流驱动或 EC 波加热)):= 9:热非相对论等离子体(完整张量 [Bernstein-Friedland])(适用于中等温度等离子体); id=10-15 (复杂模型与自洽吸收,用于模拟波在等离子体中的吸收过程(如 EC 波在 ECR 区的功率沉积),需结合 iabsorp 和 irkmeth 参数):= 10:Westerhof-Tokman 色散关系(结合 Mazzucato 相对论电子介电张量),自洽吸收需设置 iabsorp=1 ;= 11:Eric Nelson-Melby 相对论介电张量,色散函数为 Re(Det) ,适用于|n_par| < 1,使用 Isaac Weiss 方法计算; =12:Westerhof-Tokman 色散关系(结合 Eric Nelson-Melby 介电张量),自洽吸收需设置 iabsorp=12 ;=13:Westerhof-Tokman 色散关系(结合热非相对论等离子体完整张量),自洽吸收需设置 iabsorp=4 ;=14:Abhay Ram 的介电张量(基于 Trubnikov 积分); =15:Westerhof-Tokman 色散关系(结合 Abhay Ram 介电张量),自洽吸收需设置 iabsorp=12 。使用 id=11,12,14 或 15 时,需参阅 irkmeth 的相关说明。注: id=14 必须设置 irkmeth=1 。 |
*relres | 使用 Abhay Ram 的色散关系(id=14 或 id=15)时 Trubnikov 积分的控制参数。= 1:低分辨率;= 2 :中分辨率(默认);= 3 :高分辨率;= 4:用户自定义。 |
⚙️**如何选择分辨率relres?* | 根据 Trubnikov 积分核函数的行为(震荡型),以下情况需要更高的分辨率: 1. 电子温度较低( T e < 1 k e V T_e < 1 keV Te<1keV),建议 relres=3; 2. 平行折射率接近零( n ∥ ≈ 0 n_{parallel} ≈ 0 n∥≈0),建议 relres=3; 3. 频率接近或低于回旋频率( ω / ω c e ≈ 1 ω/ω_{ce} ≈ 1 ω/ωce≈1),建议 relres=3; 4. n ∥ n_{parallel} n∥ 较大(如 > 0.3)、 T e T_e Te 较高(如 > 5 keV), relres=1即可收敛; |
iherm | Mazzucato 等离子体介电张量相关参数。= 1:使用厄米特(Hermitian)介电张量(通常用于冷等离子体或近似处理);= 2:使用全张量(full tensor)(适合更精确的相对论等离子体模拟)。 |
iabsorp | 吸收模型的选择(1~12),控制 I m ( N ⊥ ) Im(N_{perp}) Im(N⊥) 的计算方式( N ⊥ N_{perp} N⊥ 是垂直方向的折射率虚部,决定了波的吸收特性)。 = 1:EC 波,使用 Mazzucato 求解器(ki/kr << 1),适合弱阻尼波的情况(即实部远大于虚部); = 2:LH 波吸收模型,适用于低杂波的功率沉积; = 3:快波(FW),使用 Chiu et al. 的热修正模型(Nuclear Fusion 1989),唯一支持将功率分布到各个离子种类的模型(通过 powden_s/powtot_s 输出);= 4:适用于所有频率的 Forest 吸收模型(ki/kr << 1),需要配合 i_im_nperp 使用来决定如何求解 I m ( N ⊥ ) Im(N_{perp}) Im(N⊥);= 5:使用 Shkarofsky 模型的 EC 和 EBW 吸收; = 6:Forest 模型下的相对论吸收:包含非厄米特项 + 厄米特项,使用 n_relt_harm , n_relt_harm1 控制谐波范围;= 7:EC 波的复电场计算:冷等离子体张量 + 相对论非厄米特项,用于 EC 波的相对论吸收建模; = 8:用于 id=10,12,13 和 Westerhof-Tokman 色散关系的吸收模型,使用投影法从实部特征值出发积分距离; = 9:使用 Stix 书中的公式(第74页)计算热色散吸收, I m ( k ⊥ ) = 0.5 ⋅ P o w e r a b s / ( P + T + ) Im(k_{perp})=0.5·Power_{abs} / (P⁺T⁺) Im(k⊥)=0.5⋅Powerabs/(P+T+),使用热等离子体介电张量 reps() 和极化矢量 (cex,cey,cez); = 91:快波吸收子程序 absorpfw_pinsker_1,- 离子吸收来自 R.I. Pinsker & M. Porkolab,- 电子吸收来自 S.C. Chiu 等人(1989); = 92:快波吸收子程序 absorpfw_pinsker_2,同时处理电子和离子吸收,基于 R.I. Pinsker 等人的公式; = 10:基于 Abhay Ram 张量的相对论吸收模型,使用 Stix 公式计算 I m ( k ⊥ ) Im(k_{perp}) Im(k⊥); = 11:使用 Abhay Ram 的 Trubnikov 积分张量计算 I m ( N ⊥ ) Im(N_{perp}) Im(N⊥),采用投影法: I m ( N ⊥ ) = − I m ( D ) / ( d D / d R e ( N ⊥ ) ) Im(N_{perp}) = -Im(D)/(dD/dRe(N_{perp})) Im(N⊥)=−Im(D)/(dD/dRe(N⊥)); = 12:更精确的 Im(N_perp) 计算方法,使用 Muller 算法求解 D e t ( C o m p l e x N ⊥ ) = 0 Det(Complex N_{perp})=0 Det(Complex N⊥)=0 的复根,适用于 id = 11, 12, 14, 15 。 |
iabsop_ql | 是否使用准线性通量(QL_flux)。= 0:不使用 QL_flux;= 1:使用 QL_flux 来计算电子吸收。启用时,谐波范围由 n_harm_adj_min 到 n_harm_adj_max 定义。 |
iabsop_collisional | 是否启用碰撞吸收。= 0:不启用额外碰撞吸收;= 1:启用碰撞吸收。( 注:LH 波吸收中已包含单独的碰撞吸收机制,不受此开关控制 ) |
*iabsop_collisionald 的表达式: | |
$$ | |
mathbf{Im}(N)= | frac{ν_{ei}}{gr_perp} |
$$ | |
/dispers/(续表): |
参数名 | 描述 |
---|---|
coll_mult | 一个乘数因子,默认为 1.d0 |
⭐iswitch | 是否在回旋共振点附近修改色散关系和吸收。= 1:在回旋共振点附近启用新的色散和吸收模型;= 0:不启用。 |
del_y | 当满足条件$$ |
jy_d | 指定等离子体种类 |
idswitch | 新的色散函数类型(可选 1~6) |
iabswitch | 新的吸收模型类型 |
n_relt_harm,n_relt_harm1 | 相对论吸收使用的谐波总数和起始谐波编号(可正可负)。例如: n_relt_harm1 = -3 n_relt_harm = 7 ! → 使用谐波:-3, -2, -1, 0, 1, 2, 3 |
n_relt_intgr | 共振曲线上的积分点数(默认值 = 50)。影响共振曲线上的数值积分精度。 |
iflux | 能量通量(Power Flux)的计算方式。= 1:使用选定色散关系和极化计算群速度;= 2:使用冷电子等离子体模型计算群速度(调用 grpde2 子程序) |
i_im_nperp | 求解 I m ( N ⊥ ) Im(N_{perp}) Im(N⊥) 的方法( iabsorp = 4 时生效)。= 1:使用近似法:$$Im(N_{perp}) = |
i_geom_optic | 射线方程形式的选择。= 1:按时间积分**(默认);= 2**:按空间积分。 |
*i_geom_optic 中的射线方程:
按时间 t 积分:
d r ⃗ d t = − ∂ D / ∂ N ⃗ ∂ D / ∂ ω d N ⃗ d t = ∂ D / ∂ r ⃗ ∂ D / ∂ ω egin{aligned} frac{dvec{r}}{dt}&=-frac{partial{D}/partial{vec{N}}}{partial{D}/partial{omega}}\ frac{dvec{N}}{dt}&=frac{partial{D}/partial{vec{r}}}{partial{D}/partial{omega}} end{aligned} dtdr
dtdN
=−∂D/∂ω∂D/∂N
=∂D/∂ω∂D/∂r
上式为标准的几何光学近似下的射线追踪方程。rside1
参数给出群速度(v_group
),即能量传播速度。更适合用于非稳态或需要跟踪波包随时间演化的情况。
按空间路径长度 l 积分:
d r ⃗ d l = − r a y _ d i r e c t i o n ⋅ ( ∂ D ∂ N ⃗ ) p d N ⃗ d l = r a y _ d i r e c t i o n ⋅ ( ∂ D ∂ r ⃗ ) p egin{aligned} frac{dvec{r}}{dl}&=-ray\_direction·(frac{partial{D}}{partial{vec{N}}})_{p}\ frac{dvec{N}}{dl}&=ray\_direction·(frac{partial{D}}{partial{vec{r}}})_{p} end{aligned} dldr
dldN
=−ray_direction⋅(∂N
∂D)p=ray_direction⋅(∂r
∂D)p
其中:
p = 1 ( ∂ D ∂ N z ) 2 + ( ∂ D ∂ N r ) 2 + ( r ⋅ ∂ D ∂ C M ) 2 , d e r u ( 1 ) = ∂ D ∂ N z d e r u ( 2 ) = ∂ D ∂ N r d e r u ( 3 ) = ∂ D ∂ C M N _ p h i ( N ϕ ) = C M / r egin{aligned} &p=frac{1}{sqrt{(frac{partial{D}}{partial{N_z}})^2+(frac{partial{D}}{partial{N_r}})^2+(r·frac{partial{D}}{partial{CM}})^2}},\ &deru(1)=frac{partial{D}}{partial{N_z}}\ &deru(2)=frac{partial{D}}{partial{N_r}}\ &deru(3)=frac{partial{D}}{partial{CM}}\ &N\_phi(N_phi)=CM/r end{aligned} p=(∂Nz∂D)2+(∂Nr∂D)2+(r⋅∂CM∂D)2
1,deru(1)=∂Nz∂Dderu(2)=∂Nr∂Dderu(3)=∂CM∂DN_phi(Nϕ)=CM/r
更适合在给定空间路径上进行高精度追踪。可用于分析特定磁面或通量管内的波传播行为。
/dispers/(续表):
参数名 | 描述 |
---|---|
ray_direction | 射线传播方向,在 i_geom_optic=2 (按空间积分)时生效。= +1.d0:正向传播(从发射器到等离子体)(默认);= -1.d0:反向传播(从等离子体返回发射器)。 |
i_salphal(nbulka/k) | 各种类对非电子阻尼项的贡献,当 iabsorp=3 或 iabsorp=9 时有效。= 1:包括第 k 个粒子种类的阻尼项到 salphal_nc 中;= 0:不包括该种类的阻尼项。默认值:i_salphal(1) = 1,即第一种类(通常是电子)参与阻尼计算;i_salphal(2:nbulk) = 0,即其他种类不参与。 |
refl_loss | 每次反射损失的功率比例。= 0.0d0:无反射损耗(默认);>0.0:每次反射损失一定比例的功率。例如:refl_loss = 0.05d0,表示每次波碰到边界反射时损失 5% 的功率。 |
⭐ion_absorption | 是否开启离子吸收。= ‘enabled’ :开启(默认) ;= ‘disabled’:关闭离子吸收。仅在 iabsorp = 3, 9, 91, 92 时有效。 |
⭐iabsorp 使用总结建议 :
场景 | 推荐iabsorp | 说明 |
---|---|---|
EC 波吸收(冷或相对论) | 1, 5, 6, 7 | 根据是否考虑相对论效应选择 |
LH 波吸收 | 2 | 无需额外设置 |
快波(FW)吸收 | 3, 9, 91, 92 | iabsorp=3 支持按离子种类输出功率 |
自洽吸收(复杂模型) | 10, 11, 12 | 配合 id=11,12,14,15 使用 |
所有频率通用模型 | 4 | 配合 i_im_nperp 使用 |
✅氢硼聚变环境下的三离子加热/dispers/色散关系参数设置示例:
&DISPERS
!-------------------------------------------------
! 色散关系模型选择
!-------------------------------------------------
id = 14 ! 使用 Abhay Ram 的相对论介电张量 + Trubnikov 积分方法计算色散关系
! id=15 是其变体,也适用
!-------------------------------------------------
! Trubnikov 积分控制参数(用于 id=14/15)
!-------------------------------------------------
relres = 3 ! 高分辨率,确保高精度积分,特别是在多离子共振附近
! errabs0=1.d-6, errrel0=1.d-6, navg=25, diff_err=1.d-6
! 或手动设置:
! relres = 4
! errabs0 = 1.d-6
! errrel0 = 1.d-6
! navg = 25
! diff_err = 1.d-6
!-------------------------------------------------
! 介电张量类型(Mazzucato 相关)
!-------------------------------------------------
iherm = 2 ! 使用完整的介电张量(full tensor),包含非厄米特部分
!-------------------------------------------------
! 吸收模型选择
!-------------------------------------------------
iabsorp = 12 ! 使用 Muller 法求解复折射率根(Im(N_perp)),适用于任意频率,任意离子共振
! 更精确于投影法(iabsorp=11)
!-------------------------------------------------
! 几何光学积分方式(射线方程形式)
!-------------------------------------------------
i_geom_optic = 1 ! 时间积分方式(默认)
ray_direction = +1 ! 默认正向传播
!-------------------------------------------------
! 反射损耗(边界反射造成的功率损失)
!-------------------------------------------------
refl_loss = 0.0 ! 默认不考虑反射损耗,若需考虑边界影响可设为 0.01~0.05
!-------------------------------------------------
! 阻尼系数分配(是否计入各粒子种类的阻尼)
!-------------------------------------------------
! 假设 nbulk = 4,分别为电子、主离子(p)、掺杂离子1(B11)、掺杂离子2(例如 D 或其他辅助离子)
! 值全1,即所有离子种类均参与阻尼计算
i_salphal(1) = 1 ! 电子阻尼
i_salphal(2) = 1 ! 主离子(质子 p)阻尼
i_salphal(3) = 1 ! 第二种离子(硼 B11)阻尼
i_salphal(4) = 1 ! 第三种离子(如 D 或其他辅助离子)阻尼
!-------------------------------------------------
! 射线追踪与路径设置(可选)
!-------------------------------------------------
iswitch = 1 ! 在回旋频率附近启用修正模型(视需要而定)
del_y = 0.01 ! 判断是否在回旋频率附近的阈值
jy_d = 2 ! 指定第 2 类粒子作为判断对象(质子 p)/可选2~4根据已关注的离子的共振行为来设置
! 在靠近共振点时切换到特定模型(如 idswitch=3)
idswitch = 3 ! 设置在回旋点使用的色散模型
iabswitch = 3 ! 设置在回旋点使用的吸收模型
!-------------------------------------------------
! 其他相关参数(建议保持默认或根据需求调整)
!-------------------------------------------------
ion_absorption = 'enabled' ! 开启离子吸收(仅对 iabsorp=3,9,91,92 有效)
iabsorp_ql = 0 ! 不启用 QL flux 计算
iabsorp_collisional = 0 ! 不启用额外碰撞吸收(LH 波中自动开启)
/
6. /numercl/ 数值方法设置
参数名 | 描述 |
---|---|
⭐irkmeth | Runge-Kutta 方法选择。 = 0:恒定步长,输出间隔 ≥ prmt6(米),在等离子体边界外会自动反射(适用于简单情况);= 1:可变步长(5阶),仅按 poloidal 距离控制输出点。不检查是否出等离子体,输出在距离 ≥ prmt6 时进行。修正方法由 icorrect 控制。注:对于相对论色散关系(id=11,12,14,15 )效果不好,除非 prmt4 很小(如 2.0d-6 );= 2: 最完善的射线方程积分方法,步长自适应,确保输出间隔为 prmt6 米,接近边界时会在最后一个闭合磁面处反射。对于相对论模型(id=11,12,14,15 )推荐使用 。推荐值:irkmeth = 2 |
⭐ndim1 | 射线方程维数。= 6:isolv=1 时使用全部6个射线方程;= 5:isolv=2 时使用5个方程 + 色散关系。推荐值:ndim1 = 6 |
⭐isolv | 方程求解方式。= 1:使用修正法(correction method),可结合 Hamiltonian 校正(icorrect=1);= 2:显式解法(expl. solution),较少使用。推荐值:isolv = 1 |
⭐idif | 导数计算方式。= 1:使用解析导数(更精确);= 2:使用数值导数(速度更快但精度略低)。推荐值:idif = 1 |
⭐nrelt | 单条射线最大步数(默认值=10000,每条射线最多允许 10000 步)。可根据需要增大此值以避免因路径过长而中断。 |
⭐prmt1, prmt2, prmt3, prmt4, prmt6, prmt9 | Runge-Kutta 参数:含义依次为初始 τ 值(非必需)、最终 τ 值、初始步长(无量纲)、积分精度要求、输出间隔(米)、Hamiltonian 守恒误差容限。 推荐值: prmt1 = 0.0 prmt2 = 9.999d+5(大数) prmt3 = 1.0d-4 prmt4 = 5.0d-4 prmt6 = 1.0d-3(即 1 mm) prmt9 = 1.d-6(= 1.d15(禁用校正)或 = 1.d-6(启用校正)) |
icorrect | Hamiltonian 校正开关。=1:使用校正以提高准确性;=0:不使用。推荐值:icorrect = 1 |
⭐iout3d | 是否生成 3D 输出文件。= ‘enable’:生成 3d.dat 文件(用于可视化);= ‘disable’:不生成。推荐值:iout3d = ‘enable’(便于调试和后处理) |
maxsteps_rk | 龙格库塔的最大时间步(默认值=10000)。若射线路径很长,可适当增大此值。 |
i_output | 输出间隔控制(仅对 irkmeth=2 有效)。= 1:输出间隔为相等的 poloidal 距离(默认);= 2:输出间隔为相等的总距离。推荐值:i_output = 1 |
i_uh_switch | 在 UH 层附近切换步长。= 1:在接近 UH 层时减小输出步长;= 0:不切换。 |
uh_switch | 判断是否进入 UH 区域的阈值(例如 1.0d-3 ) |
prmt6_uh_switch | UH 层附近输出步长(例如 5.0d-4 ) |
toll_hamilt | 色散关系误差容忍度。toll_hamilt < D / (N * |grad D|) 时停止射线追踪 |
i_power_switch_resonance | 共振区切换步长。= 1:在共振区域切换输出步长;= 0:不切换。 |
–prmt6_power_switch_resonance | 共振区输出步长(如 1.0d-4) |
–n_power_switch_resonance | 共振种类数量(如 3) |
–y_power_switch_resonance(1:3) | 各种离子的 ω_ce/ω 比例(如 [0.5, 1.0, 2.0]) |
–del_y_power_switch_resonance | 共振带宽度(如 0.05) |
i_resonance_curve_integration_method | 共振曲线积分方法。= 1:矩形积分(椭圆情况);= 2:矩形公式(p_perp 积分);= 3:梯形公式;= 4:自适应 Simpson(默认,推荐) |
epsi | 自适应 Simpson 积分精度(默认值=1.d-6),控制积分精度 |
✅氢硼聚变三离子系统适用的/numercl/推荐配置示例: |
&NUMERCL
! Runge-Kutta 方法选择
irkmeth = 2 ! 自适应步长,适合相对论模型
! 射线方程维度
ndim1 = 6 ! 使用完整的6个方程
! 解法类型
isolv = 1 ! 使用修正法
! 导数计算方式
idif = 1 ! 使用解析导数
! Runge-Kutta 参数
prmt1 = 0.0 ! 初始 tau
prmt2 = 9.999d+5 ! 最终 tau
prmt3 = 1.0d-4 ! 初始步长
prmt4 = 5.0d-4 ! 积分精度
prmt6 = 1.0d-3 ! 输出间隔(1mm)
prmt9 = 1.0d-6 ! Hamiltonian 校正容限
! Hamiltonian 校正开关
icorrect = 1 ! 开启校正
! 输出设置
i_output = 1 ! 等 poloidal 距离输出
! UH 层附近步长控制
i_uh_switch = 0 ! 不启用 UH 层特殊处理
! 共振区步长控制
i_power_switch_resonance = 1
prmt6_power_switch_resonance = 1.0d-4
n_power_switch_resonance = 3
y_power_switch_resonance = 0.5, 1.0, 2.0
del_y_power_switch_resonance = 0.05
! 共振曲线积分方法
i_resonance_curve_integration_method = 4 ! 自适应 Simpson
! Simpson 积分精度
epsi = 1.d-6
! 色散关系误差容忍度
toll_hamilt = 1.d-5
! 其他
iout3d = 'enable' ! 生成 3D 输出文件
maxsteps_rk = 10000 ! 最大 RK 步数
nrelt = 10000 ! 射线最大步数
/
7. /output/ 绘图与结果输出设置
参数名 | 描述 |
---|---|
⭐iwcntr | 是否计算回旋频率等位线。= 1:计算指定极向截面 (r,z) 平面上的回旋频率等值线 ω c = n ω_c = n ωc=n;= 0:不计算。 |
⭐iwopen/iwclose | 等位线类型选择。= 1:使用 contrb1 子程序计算开式等位线(适用于开放区域);= 2:使用 contrb2 子程序计算闭式等位线(适用于封闭结构)(通常建议:托卡马克等闭合磁位形iwopen=2,开放磁镜或仿星器iwopen=1) |
⭐iwj=j | 指定等位线对应的粒子种类。j 的取值范围为 [1, nbulk]:j=1:电子回旋频率;j≥2 :第 j 种离子的回旋频率(如质子、硼、3He 等) |
⭐itools | 是否使用 mkgrtool 工具生成图像。= 1:使用(用于增强图形处理功能);= 0:不使用。 |
⭐i_plot_b | 是否绘制磁场、密度、温度轮廓及特征频率图。= 1:绘制 B、n、T 分布,并保存为 plot.ps 文件;同时写出特征频率 *.bin 文件;= 0:不绘制。推荐值:i_plot_b = 1 (便于可视化等离子体剖面) |
⭐i_plot_d | 是否绘制色散函数 D(ReN_perp, ImN_perp)。= 1:在射线路径上的每个输出点绘制 D 函数的复平面等高线;= 0:不绘制。(用于分析波在冷/热等离子体中的传播特性,尤其是吸收区附近的行为) |
n_plot_disp | 指定要绘制色散函数D的点数。= 0:不绘制任何点;> 0:最多可设为 n_plot_dispa ,默认值取决于代码上限。 |
n_plot_disp 参数组 A – 坐标定义: |
|
–id_plot_disp | 色散函数 D 的类型编号(根据模型不同而异) |
–r_plot_disp(n) | 大半径坐标 r(米),共 n_plot_disp 个点 |
–s_poloid_plot_disp(n) | 极向距离 s(米),共 n_plot_disp 个点 |
-⭐point_plot_disp | 取值为 'poloidl_dist' (默认,极向距离)或 'major_radius' (主半径) |
n_plot_disp 参数组 B – 折射率网格范围设定: |
|
–number_map_points_real_nperp | R e ( N ⊥ ) Re(N_{perp}) Re(N⊥) 方向采样点数,控制绘图分辨率 |
–number_map_points_image_nperp | I m ( N ⊥ ) Im(N_{perp}) Im(N⊥) 方向采样点数,控制绘图分辨率 |
–ratio_min_r_nperp = a, ratio_max_r_nperp = b, ratio_min_i_nperp = c, ratio_max_i_nperp = d | 设置 R e ( N ⊥ ) / I m ( N ⊥ ) Re(N_{perp})/Im(N_{perp}) Re(N⊥)/Im(N⊥) 的边界范围,相对于当前射线路径上的折射率值。(当 Im(N_perp_ray) < 1 时,自动设为 [0, 1])典型取值建议:a = 0.5, b = 1.5, c = 0.0, d = 2.0 |
–n_contour_plot_disp | 等高线数量。最大不能超过 n_contour_plut_disp_a |
冷等离子体相关色散函数绘制: | |
i_plot_disp_cold | = 1:绘制冷等离子体下的色散函数 D_cold( N ⊥ N_{perp} N⊥);= 0:不绘制。 |
–n_plot_disp_cold | 类似n_plot_disp ,专门用于冷等离子体情况 |
–r_plot_disp_cold | 类似r_plot_disp ,专门用于冷等离子体情况 |
–s_poloid_plot_disp_cold | 类似s_plotid_plot_disp ,专门用于冷等离子体情况 |
–point_plot_disp_cold | 类似point_plot_disp ,专门用于冷等离子体情况 |
i_plot_wave_normal_cold | = 1:在初始点和所有绘图点绘制冷等离子体下的波矢方向图(k 空间方向);= 0:不绘制。 |
*频率沿直线扫描相关参数(仅当 i_plot_b = 1 时有效) |
含义 | 默认值 |
---|---|---|
r_freq, z_freq | 直线起点坐标(米) | 1.49d0, 0.0 |
alpha_freq | 扭转角(度)→ 线段相对于大半径方向 | 180° |
beta_freq | 倾斜角(度)→ 线段与 Z 轴夹角 | 90° |
dist_freq | 线段长度(米) | 1.28d0 |
nsteps_freq | 插值点数 | 780 |
n_ec_harmonics_freq | EC 谐波数 | 6 |
max_plot_freq | 最大频率(Hz) | 200 GHz |
npar_freq | N_parallel 用于 X 模截止图 | 0 |
✅氢硼聚变三离子系统适用的/output/推荐配置示例:
&OUTPUT
! 回旋频率等位线
iwcntr = 1
iwopen = 2 ! 适用于托卡马克类装置
iwj = 2 ! 显示质子回旋频率
itools = 1 ! 启用图形工具
! 磁场/密度/温度图
i_plot_b = 1 ! 生成 plot.ps 文件和频率数据文件
! 色散函数图
i_plot_d = 1
n_plot_disp = 5
r_plot_disp = 1.49d0, 1.5d0, 1.55d0, 1.6d0, 1.65d0
id_plot_disp = 1
point_plot_disp = 'major_radius'
number_map_points_real_nperp = 50
number_map_points_image_nperp = 50
ratio_min_r_nperp = 0.5
ratio_max_r_nperp = 1.5
ratio_min_i_nperp = 0.0
ratio_max_i_nperp = 2.0
n_contour_plot_disp = 10
! 冷等离子体色散函数
i_plot_disp_cold = 1
n_plot_disp_cold = 3
r_plot_disp_cold = 1.49d0, 1.5d0, 1.55d0
point_plot_disp_cold = 'major_radius'
! 波矢方向图
i_plot_wave_normal_cold = 1
! 特征频率线扫描
r_freq = 1.49d0
z_freq = 0.0
alpha_freq = 180.0
beta_freq = 90.0
dist_freq = 1.28d0
nsteps_freq = 780
n_ec_harmonics_freq = 6
max_plot_freq = 200.d9
/
8. /plasma/ 等离子体组成与剖面控制
参数名 | 描述 | 类型 | 默认值 |
---|---|---|---|
⭐nbulk | 等离子体组分数目(>= 1)。不得超过代码预设的最大值 nbulka(通常在 param.i 中定义) | 整数 | 无 |
⭐izeff | 处理电荷中性条件和 Zeff 的方式。= 0: zeff 将根据给定的离子种类自动计算,同时也会根据这些离子种类计算电子密度(通过电荷中性条件求得);= 1: 给定 zeff、电子密度和部分离子密度( i = 2 到 nbulk-2),其余两个离子密度( i = nbulk 和 i = nbulk-1) 将根据 zeff、ne 和已知离子密度进行推导,此时必须有 nbulk ≥ 3;= 2: 使用 eqdsk 中的压力(pres),给定 zeff、电子密度和所有离子密度,Zeff 不直接参与计算;= 3: 使用 eqdsk 中的压力(pres)和所有离子密度,假设 T e = T i Te = Ti Te=Ti; p r e s = d e n s 1 ( k , 1 ) ⋅ t e m p 1 ( k , 1 ) + ∑ i = 2 n b u l k ( d e n s 1 ( k , i ) ⋅ t e m p 1 ( k , i ) ) pres = dens1(k,1)·temp1(k,1) + sum_{i=2}^{nbulk}(dens1(k,i)·temp1(k,i)) pres=dens1(k,1)⋅temp1(k,1)+i=2∑nbulk(dens1(k,i)⋅temp1(k,i))并据此计算 Z e f f ( r h o ) , n e ( r h o ) , T e ( r h o ) = T i ( r h o ) Z_{eff}(rho), n_e(rho), T_e(rho)=T_i(rho) Zeff(rho),ne(rho),Te(rho)=Ti(rho),推导出 Zeff、电子密度和温度;= 4: 使用 eqdsk 中的压力(pres)、Zeff 和部分离子密度,给定温度分布 T_i(rho) 和 zeff(rho),计算电子密度和其他离子密度(如最后两个)。(选择建议:若从实验数据或平衡重建中获得压力剖面,推荐 izeff=3 或 4 ;若直接提供各离子密度,推荐 izeff=0 或 2 ) |
整数 | 0 |
⭐idens | 密度、温度和 zeff 径向剖面的形式。= 0:使用解析函数形式描述径向剖面(如高斯分布、幂律等);= 1:使用样条插值,通过输入的离散点构造平滑曲线。(若已有实验数据或模拟输出数据,一般用 idens=1 ) |
整数 | 0 |
temp_scale(nbulka), den_scale(nbulka) | 剖面缩放因子,用于乘以给定的温度和密度剖面的参数 | 数组 | 1.0 |
⭐ndens | 输入径向密度和温度剖面的数据采样点数。若 idens=1 ,则需要提供 ndens 个数据点来构建样条插值。(不能超过数组上限(由 ngrida 等参数控制)) |
整数 | 无 |
nonuniform_profile_mesh | 是否启用非均匀网格插值。= ‘enabled’:在输入样条剖面时使用非均匀的小半径网格(仅当 idens=1 时有效);= ‘disabled’:不使用非均匀网格(默认)。(当等离子体核心梯度较大、边缘较平缓时,启用该选项可提升准确性) |
字符串 | 'disabled' |
✅氢硼聚变系统适用的/plasma/推荐配置示例:
/plasma/
nbulk = 3 ! 三种粒子:电子、质子、硼离子
izeff = 0 ! 自动根据离子种类计算 zeff 和电子密度
idens = 1 ! 使用样条插值(适合实验数据)
temp_scale = 1.0, 1.0, 1.0 ! 温度不变
den_scale = 1.0, 1.0, 1.0 ! 密度不变
ndens = 65 ! 输入剖面有 65 个数据点
nonuniform_profile_mesh = 'enabled' ! 启用非均匀网格优化
9. /species/ 等离子体组分属性
species | 等离子体组分属性 |
---|---|
charge(i) | 表示第 i 种等离子体粒子的电荷数(单位为基本电荷 e e e)。例如: 电子:charge(1) = -1.0 质子:charge(2) = +1.0 硼-11 离子( B 5 + B^{5+} B5+):charge(3) = +5.0 注:charge( i+1) 的电荷必须大于或等于前一个,这通常是为了排序方便(比如先电子、后低电荷、再高电荷离子) |
dmas(i) | 第 i 种粒子的质量(以电子质量 m e m_e me为单位)。例如: 电子:dmas(1) = 1.0 质子:约为 1836 倍电子质量 → 参考设为 3674.d0(可能考虑了同位素或近似) 硼-11 离子:约 11 × 质子质量 ≈ 20200 倍电子质量 |
✅氢硼聚变适用的/species/配置示例:
&species
charge(1) = -1.0d0 ! 电子
charge(2) = 1.0d0 ! 质子 p
charge(3) = 5.0d0 ! 硼-11 离子 B¹¹⁺⁵
dmas(1) = 1.0d0 ! 电子质量
dmas(2) = 1836.0d0 ! 质子质量
dmas(3) = 20200.0d0 ! 硼-11 离子质量(≈ 11 × 质子质量)
&end
10. /varden/ 密度扰动参数
用于定义一个周期性密度扰动模型。通常用于模拟:
湍流引起的密度涨落
MHD 模式的密度结构(如撕裂模、扭曲模)
波传播或加热过程中对密度分布的扰动影响
参数名 | 描述 | 默认值 |
---|---|---|
var0 | 密度扰动幅度(相对值),表示为背景密度的百分比(= 0.d0:无扰动) | 0.0 |
denm | 极向模数(即扰动在极向方向的波数)(整数,如1.d0) | 1.0 |
denn | 环向模数(即扰动在环向方向的波数)(整数,如15.d0) | 15.0 |
an | 扰动峰值所在的归一化半径位置(ρ₀∈ [0,1])(如0.5d0) | 0.5 |
sigman | 扰动的径向高斯宽度(σ),控制扰动的空间范围(单位为归一化半径) | 0.1 |
数学表达式(假设扰动形式):
密度扰动一般可表示为:
δ n ( r , θ , ϕ ) = v a r 0 ⋅ n 0 ( r ) ⋅ e − ( r − a n ) 2 2 σ n 2 ⋅ c o s ( d e n m ⋅ θ − d e n n ⋅ ϕ ) δn(r,θ,ϕ)=var0⋅n_{0}(r)⋅e^{−frac{(r-a_{n})^{2}}{2sigma_{n}^{2}}}⋅cos(denm⋅θ−denn⋅ϕ) δn(r,θ,ϕ)=var0⋅n0(r)⋅e−2σn2(r−an)2⋅cos(denm⋅θ−denn⋅ϕ)
其中:
n 0 ( r ) n_0(r) n0(r):原始密度剖面(由 /plasma/
或其他输入提供)
r r r:归一化半径
θ θ θ:极向角
ϕ phi ϕ:环向角
denm
和 denn
控制扰动的空间结构(波矢方向)
✅典型密度扰动示例:
&varden
var0 = 0.1d0 ! 10% 的密度扰动
denm = 1.d0 ! 极向模数为 1
denn = 15.d0 ! 环向模数为 15(常见于 tokamak 中的低阶 MHD 模式)
an = 0.5d0 ! 扰动中心位于归一化半径 0.5 处
sigman = 0.1d0 ! 扰动宽度为 0.1(约 10% 的径向范围)
&end
类似该配置可用于研究:
波在扰动密度场中的传播
ICRH 或 EBW 加热过程中的散射效应
MHD 不稳定性对波吸收的影响
关键剖面参数设置(11~15)
①**idens=0
**时,每个剖面区块(/denprof/, /tpopprof/, /vflprof/, /zprof/, /tprof/)使用相同的⭐幂律函数形式:
f ( ρ ) = ( f 0 − f b ) ⋅ ( 1 − ρ r n 1 ) r n 2 + f b f(ρ)=(f_0−f_b)⋅(1−ρ^{r_{n1}})^{r_{n2}}+f_b f(ρ)=(f0−fb)⋅(1−ρrn1)rn2+fb
其中:
f ( ρ ) f(ρ) f(ρ) :归一化半径ρ ∈ [0, 1] 处的物理量值(如密度、温度等)
f 0 f_0 f0 :中心值(ρ=0)
f b f_b fb :边界值(ρ=1)
r n 1 , r n 2 r_{n1}, r_{n2} rn1,rn2 :控制剖面形状的两个幂指数
该函数的特点是:
在 ρ = 0 时, f ( ρ ) = f 0 f(ρ) = f_0 f(ρ)=f0;
在 ρ = 1 时, f ( ρ ) = f b f(ρ) = f_b f(ρ)=fb;
中间区域通过幂律函数试下平滑过渡。
②**idens=1
(即改用样条插值**)时,需要提供 ndens 个径向点的数据。数据格式为:rho(1:ndens) 和 f(1:ndens),其中 rho ∈ [0,1]。
11. /denprof/ 密度剖面参数
n i ( ρ ) = ( n i , 0 − n i , b ) ⋅ ( 1 − ρ r n 1 d e ( i ) ) r n 2 d e ( i ) + n i , b n_{i}(
ho)=(n_{i,0}-n_{i,b})⋅(1-
ho ^{r_{n1de(i)}})^{r_{n2de(i)}}+n_{i,b} ni(ρ)=(ni,0−ni,b)⋅(1−ρrn1de(i))rn2de(i)+ni,b
参数名 描述 d e n s e 0 ( i ) n i , 0 :第 i 种粒子的中心密度(单位: m − 3 ) d e n s e b ( i ) n i , b :第 i 种粒子的边界密度(单位: m − 3 ) r n 1 d e ( i ) r n 1 d e :第一个幂指数 r n 2 d e ( i ) r n 2 d e :第二个幂指数 egin{array}{|c|c|} hlinehline {参数名}&{描述}\ hline {dense0(i)}&{n_{i,0} :第 i 种粒子的中心密度(单位:m^{-3})}\ hline {denseb(i)}&{n_{i,b} :第 i 种粒子的边界密度(单位:m^{-3})}\ hline {rn1de(i)}&{r_{n1de}:第一个幂指数}\ hline {rn2de(i)}&{r_{n2de}:第二个幂指数}\ hline end{array} 参数名dense0(i)denseb(i)rn1de(i)rn2de(i)描述ni,0:第i种粒子的中心密度(单位:m−3)ni,b:第i种粒子的边界密度(单位:m−3)rn1de:第一个幂指数rn2de:第二个幂指数
12. /tpopprof/ 温度各向异性比参数
T ⊥ T ∥ ( ρ ) = ( t p 0 − t p b ) ⋅ ( 1 − ρ r n 1 t p ) r n 2 t p + t p b frac{T_{perp}}{T_{parallel}}(
ho)=(t_{p0}-t_{pb})⋅(1-
ho ^{r_{n1tp}})^{r_{n2tp}}+t_{pb} T∥T⊥(ρ)=(tp0−tpb)⋅(1−ρrn1tp)rn2tp+tpb
参数名 描述 t p 0 ( i ) t p 0 :中心处温度各向异性比(无量纲) t p b ( i ) t p b :边界处温度各向异性比(无量纲) r n 1 t p ( i ) r n 1 t p :第一个幂指数 r n 2 t p ( i ) r n 2 t p :第二个幂指数 egin{array}{|c|c|} hlinehline {参数名}&{描述}\ hline {tp0(i)}&{t_{p0} :中心处温度各向异性比(无量纲)}\ hline {tpb(i)}&{t_{pb} :边界处温度各向异性比(无量纲)}\ hline {rn1tp(i)}&{r_{n1tp}:第一个幂指数}\ hline {rn2tp(i)}&{r_{n2tp}:第二个幂指数}\ hline end{array} 参数名tp0(i)tpb(i)rn1tp(i)rn2tp(i)描述tp0:中心处温度各向异性比(无量纲)tpb:边界处温度各向异性比(无量纲)rn1tp:第一个幂指数rn2tp:第二个幂指数
13. /vflprof/ 顺磁漂移速度剖面参数
v f l o w ( ρ ) = ( v f l 0 − v f l b ) ⋅ ( 1 − ρ r n 1 v f l ) r n 2 v f l + v f l b v_{flow}(
ho)=(v_{fl0}-v_{flb})⋅(1-
ho ^{r_{n1vfl}})^{r_{n2vfl}}+v_{flb} vflow(ρ)=(vfl0−vflb)⋅(1−ρrn1vfl)rn2vfl+vflb
参数名 描述 v f l 0 ( i ) v f l 0 :中心漂移速度(单位: m / s ) v f l b ( i ) v f l b :边界漂移速度(单位: m / s ) r n 1 v f l ( i ) r n 1 v f l :第一个幂指数 r n 2 v f l ( i ) r n 2 v f l :第二个幂指数 egin{array}{|c|c|} hlinehline {参数名}&{描述}\ hline {vfl0(i)}&{v_{fl0} :中心漂移速度(单位:m/s)}\ hline {vflb(i)}&{v_{flb} :边界漂移速度(单位:m/s)}\ hline {rn1vfl(i)}&{r_{n1vfl}:第一个幂指数}\ hline {rn2vfl(i)}&{r_{n2vfl}:第二个幂指数}\ hline end{array} 参数名vfl0(i)vflb(i)rn1vfl(i)rn2vfl(i)描述vfl0:中心漂移速度(单位:m/s)vflb:边界漂移速度(单位:m/s)rn1vfl:第一个幂指数rn2vfl:第二个幂指数
14. /zprof/ 有效电荷Z_eff剖面参数
Z e f f ( ρ ) = ( Z e f f , 0 − Z e f f , b ) ⋅ ( 1 − ρ r n 1 z e f f ) r n 2 z e f f + Z e f f , b Z_{eff}(
ho)=(Z_{eff,0}-Z_{eff,b})⋅(1-
ho ^{r_{n1zeff}})^{r_{n2zeff}}+Z_{eff,b} Zeff(ρ)=(Zeff,0−Zeff,b)⋅(1−ρrn1zeff)rn2zeff+Zeff,b
参数名 描述 z e f f 0 Z e f f , 0 :中心 Z e f f (无量纲) z e f f b Z e f f , b :边界 Z e f f (无量纲) r n 1 z e f f r n 1 z e f f :第一个幂指数 r n 2 z e f f r n 2 z e f f :第二个幂指数 egin{array}{|c|c|} hlinehline {参数名}&{描述}\ hline {zeff0}&{Z_{eff,0} :中心Z_{eff}(无量纲)}\ hline {zeffb}&{Z_{eff,b} :边界Z_{eff}(无量纲)}\ hline {rn1zeff}&{r_{n1zeff}:第一个幂指数}\ hline {rn2zeff}&{r_{n2zeff}:第二个幂指数}\ hline end{array} 参数名zeff0zeffbrn1zeffrn2zeff描述Zeff,0:中心Zeff(无量纲)Zeff,b:边界Zeff(无量纲)rn1zeff:第一个幂指数rn2zeff:第二个幂指数
15. /tprof/ 温度剖面参数
温度定义:
T ∥ + 2 T ⊥ 3 = T a v g frac{T_{parallel}+2T_{perp}}{3}=T_{avg} 3T∥+2T⊥=Tavg
平均温度剖面公式:
T a v g ( ρ ) = ( T 0 − T b ) ⋅ ( 1 − ρ r n 1 t e ( i ) ) r n 2 t e ( i ) + T b T_{avg}(
ho)=(T_{0}-T_{b})⋅(1-
ho ^{r_{n1te(i)}})^{r_{n2te(i)}}+T_{b} Tavg(ρ)=(T0−Tb)⋅(1−ρrn1te(i))rn2te(i)+Tb
参数名 描述 a t e 0 ( i ) T 0 :第 i 种粒子的中心温度(单位: k e V ) a t e b ( i ) T b :第 i 种粒子的边界密度(单位: k e V ) r n 1 t e ( i ) r n 1 t e :第一个幂指数 r n 2 t e ( i ) r n 2 t e :第二个幂指数 egin{array}{|c|c|} hlinehline {参数名}&{描述}\ hline {ate0(i)}&{T_{0} :第 i 种粒子的中心温度(单位:keV)}\ hline {ateb(i)}&{T_{b} :第 i 种粒子的边界密度(单位:keV)}\ hline {rn1te(i)}&{r_{n1te}:第一个幂指数}\ hline {rn2te(i)}&{r_{n2te}:第二个幂指数}\ hline end{array} 参数名ate0(i)ateb(i)rn1te(i)rn2te(i)描述T0:第i种粒子的中心温度(单位:keV)Tb:第i种粒子的边界密度(单位:keV)rn1te:第一个幂指数rn2te:第二个幂指数
✅氢硼聚变系统的idens=0
经典剖面配置示例:
&denprof
dense0(1)=3.5d19 ! 电子中心密度
denseb(1)=1.0d19 ! 电子边界密度
rn1de(1)=3.0 ! 剖面陡峭程度
rn2de(1)=1.0
&end
&tpopprof
tp0(1)=1.0 ! 无温度各向异性
tpb(1)=1.0
rn1tp(1)=2.0
rn2tp(1)=1.0
&end
&vflprof
vfl0(1)=0.0 ! 无漂移
vflb(1)=0.0
rn1vfl(1)=2.0
rn2vfl(1)=1.0
&end
&zprof
zeff0=1.5
zeffb=1.5
rn1zeff=2.0
rn2zeff=1.0
&end
&tprof
ate0(1)=1.5 ! keV
ateb(1)=0.06 ! keV
rn1te(1)=1.4
rn2te(1)=1.6
&end
✅若设定idens=1
, ndens=65
(通常取 65, 101 或 129 等常见网格数),则对应的经典剖面配置示例如下:
! idens=1 beloew
&denprof
rho(1:65) = 0.000000, 0.015873, 0.031746, ..., 1.000000
dense(1,1:65) = 3.575e19, 3.568e19, ..., 1.22e19
&end
&tpopprof
rho(1:65) = 0.000000, 0.015873, ..., 1.000000
tpop(1,1:65) = 1.000000e+00, 1.000000e+00, ..., 1.000000e+00
&end
&vflprof
rho(1:65) = 0.000000, 0.015873, ..., 1.000000
vflow(1,1:65) = 0.000000e+00, 0.000000e+00, ..., 0.000000e+00
&end
&zprof
rho(1:65) = 0.000000, 0.015873, ..., 1.000000
zeff(1:65) = 1.500000e+00, 1.500000e+00, ..., 1.500000e+00
&end
&tprof
rho(1:65) = 0.000000, 0.015873, ..., 1.000000
ate(1,1:65) = 1.555, 1.542, ..., 0.063
&end
16. /grill/ 定义入射波初始参数(用于LH/EBW模拟)
此段用于设定波从等离子体内部发射的情况(istart=2
),例如:LH 波(低混杂波),EBW(电子回旋波)。这些波通常由安装在真空室壁上的天线阵列(grill)发射,并穿过边界进入等离子体。
参数名 | 描述 |
---|---|
i_n_poloidal | 控制波矢量 N 的极向分量输入方式(1~4)。 = 1:给定 N ∥ N_{parallel} N∥ (平行于磁场方向),自动计算 N ϕ , N θ , N ρ N_{phi}, N_{ heta},N_{ ho} Nϕ,Nθ,Nρ 由色散关系确定并指向梯度方向( + / − ∇ ψ +/- ∇ψ +/−∇ψ); = 2:给定 N_parallel 和 n_theta_pol (极向分量),自动计算 N ϕ N_{phi} Nϕ 和 N ρ N_{ho} Nρ; = 3:给定 和角度 N ∥ N_{parallel} N∥ ksi_nperp (垂直方向与梯度方向之间的夹角),计算 ; N ϕ , N θ , N ρ N_{phi}, N_{ heta},N_{ho} Nϕ,Nθ,Nρ; = 4:给定 N_toroidal 和 N_poloidal ,使用 [/waves/](#3. /wave/ 波参数设置) 中的 i_vgr_ini 确定径向小分量 N_rho 的方向(指向等离子体内部或边缘) |
n_theta_pol | 极向折射率分量 N θ N_θ Nθ(仅用于 i_n_poloidal=2 )。控制波传播方向在极向平面上的倾斜程度。 |
ksi_nperp | 波矢量中垂直方向( N ⊥ N_{perp} N⊥)与磁面梯度方向之间的夹角(用于 i_n_poloidal=3 ),范围:0° < ksi_nperp < 180°。用于更精细地控制波束方向。 |
📉 截止点(cutoff)相关参数: | |
i_rho_cutoff | 是否启用截止点附近起始半径计算。= 1:启用计算;= 0:不启用。 |
rho_step_find_LHFW_cutoff | 在寻找截止点附近的小步长(单位:归一化半径,默认值 = 1.d-3)。 |
rho_initial_find_LHFW_cutoff | 初始起始半径(i_rho_cutoff = 1 时启用),默认靠近等离子体边缘(默认值 = 1.d0 - rho_step_find_LHFW_cutoff )。 |
📡 天线阵列参数(Grill Parameters): | |
ngrill | grill 数量(即发射单元数)。用以模拟多个 grill 的组合情况。不超过ngrilla (该值定义在 param.i 文件中) |
igrillpw | 指定 N ∥ N_{parallel} N∥的功率谱形式(1~3)。 = 1:均匀分布( powers / nnkpar )(默认);= 2: s i n 2 ( x ) / x 2 sin²(x) / x² sin2(x)/x2 形式; = 3:高斯形式: e − ( N − a n m i n a n m a x ) 2 e^{-(frac{N – anmin}{anmax})^2} e−(anmaxN−anmin)2)。 |
igrilltw | 极向功率分布形式(1~2)。 = 1:均匀分布(默认); = 2: c o s 2 cos^2 cos2 分布。 |
📍 Grill 位置与几何参数: | |
rhopsi0(1:ngrill) | 每个 grill 的初始起始半径(0 < rhopsi0 < 1) |
thgrill(1:ngrill) | 每个 grill 的极向角度(从水平方向逆时针测量) |
phigrill(1:ngrill) | 每个 grill 的环向角度 |
height(1:ngrill) | 每个 grill 的极向长度(单位:m)(默认值 = 0.2 m) |
nthin(1:ngrill) | 每个 grill 中的光线数量(默认值 = 1) |
⚙️ 功率谱参数: | |
anmin(i), anmax(i) | 第 i 个 grill 的 N ∥ N_{parallel} N∥ 功率谱左/右边界 |
nnkpar(i) | 第 i 个 grill 的 N ∥ N_{parallel} N∥ 功率谱采样点数 |
powers(i) | 第 i 个 grill 的总功率(单位:Watt,MKSA 差异单位)。所有 grill 的总功率 p o w t o t = ∑ p o w e r s powtot = sum powers powtot=∑powers。 |
✅ /grill/ 示例配置:
&grill
i_n_poloidal=1
n_theta_pol=0.d0
ksi_nperp=0.0d0
i_rho_cutoff=0
rho_step_find_LHFW_cutoff=1.d-3
rho_initial_find_LHFW_cutoff=0.999d0
ngrill=1
igrillpw=1
igrilltw=1
rhopsi0(1)=0.95d+00,
! thgrill(1)= 15.0d+0,
thgrill(1)=13.8281250d0,
phigrill(1)=0.0d+0,
height(1)=0.10d+0, !meter
nthin(1)=1
anmin(1)= -0.5d+0
anmax(1)= -0.6d+0
nnkpar(1)=1
powers(1)=1.0d6 !Watt, MKSA difference
antormin(1)=0.1d0
antormax(1)=1.d0
nnktor(1)=1
anpolmin(1)=0.1d0
anpolmax(1)=1.d0
nnkpol(1)=1
ilaunch=0
r0launch=1.6d+0
z0launch=0.d+0
phi0launch=0.d+0
i_grill_pol_mesh=1
i_grill_npar_ntor_npol_mesh=1
&end
/grill/ (续表)i_n_poloidal = 4
时的参数设置:
即通过给定环向和极向折射率分量来定义波矢方向。当使用此选项(i_n_poloidal = 4
)时,用户需要直接指定波矢量的2个分量:
N_toroidal:环向分量(沿托卡马克大环方向)
N_poloidal:极向分量(垂直于磁轴的平面)
参数名 | 描述 |
---|---|
antormin(i), antormax(i) | 第 i 个 grill 的 N_toroidal 功率谱左/右边界。定义每个 grill 的环向折射率 N_toroidal 的最小值(可以为负值(表示反方向传播))/最大值。 |
nnktor(i) | 控制第 i 个 grill在 N_toroidal ∈ [antormin, antormax] 范围内取多少个离散点进行功率分布计算。 |
anpolmin(i), anpolmax(i) | 定义每个 grill 的极向折射率 N_poloidal 的最小/大值 |
nnkpol(i) | 控制第 i 个 grill在 N_poloidal ∈ [anpolmin, anpolmax] 范围内取多少个离散点进行功率分布计算 |
📌单光线发射设置(调试用): | |
ilaunch | 是否启用单光线发射模式(默认 = 0,不启用;= 1,启用)。 |
r0launch | 发射点的主半径(单位:米) |
z0launch | 发射点的垂直位置(单位:米) |
phi0launch | 发射点的环向角度(单位:度) |
i_grill_pol_mesh | 极向网格设置(Grill 极向方向上的采样方式)。= 1:使用等间距极向角网格(默认);= 2:极向网格将根据功率分布自动调整,使得每条光线获得相等功率。 |
i_grill_npar_ntor_npol_mesh | 折射率网格设置(针对 i_n_poloidal=4 ),= 1:等距;= 2:功率自适应。 |
✅ /grill/ 示例配置(i_n_poloidal=4):
&grill
i_n_poloidal = 4
ngrill = 1
antormin(1) = -4.0d0
antormax(1) = 4.0d0
nnktor(1) = 50
anpolmin(1) = -3.0d0
anpolmax(1) = 3.0d0
nnkpol(1) = 50
powers(1) = 1.0d6 ! 1 MW
i_grill_npar_ntor_npol_mesh = 2
i_grill_pol_mesh = 2
&end
17. /eccone/ 定义ECR 波发射锥参数
此段用于设置 ECR(电子回旋共振)波发射锥(ECCD 或 ECH) 的参数,适用于射线从等离子体外部向内部传播的情况(istart = 1
)。DIIID
使用的equilib.dat
为 g521022.01000
,或可用其他平衡数据文件(equilibrium file)。
参数名 | 描述 |
---|---|
⭐ncone | 发射锥数量(默认=1),不超过nconea (该值在param.i中定义)。 |
powtot(i) | 第 i 个锥的总功率(单位:MW),用于加热或电流驱动。 |
⭐ raypatt | 射线发射模式选择。 = ‘genray’:使用 Genray 方法定义射线锥; = ‘toray’:使用 Toray 方法定义射线锥; = ‘diskdisk’:盘对盘发射方式; = ‘diskbeam’:平行于中心射线的盘状发射。 |
⭐zst(i) | 第 i 个锥顶点的 z 坐标(垂直方向)(单位:米) |
⭐rst(i) | 第 i 个锥顶点的 R 坐标(主环半径)(单位:米) |
⭐phist(i) | 第 i 个锥顶点的环向角(从 x-z 平面起算)(单位:度) |
⭐alfast(i) | 环向角偏转(绕 z 轴测量)(单位:度) |
⭐betast(i) | 仰角(Genray)或极角(Toray)(从水平面 z=常数向上为正)(单位:度) |
⭐alpha1(i) | 锥宽度(半高宽)(单位:度) |
📐GENRAY 模式 | |
⭐alpha2(i) | 锥的起始角(沿锥方向)(单位:度) |
⭐na1 | 锥内分层数量(0 表示只有中心射线) |
⭐na2 | 每层射线条数(当 na1 ≥ 0 时有效) |
📐TORAY 模式 | |
gzone | 控制射线分布方式。 = 0 :48 射线模式 = 1 :中心射线 > 1 :自定义 mray 分布 |
mray(*) | 每个环带的射线条数(gzone > 0 时启用)。如mray = 1, 5, 12, 12, 18 |
cr(*) | 每个环带的方位相位(单位:弧度) |
📦 diskdisk 模式(盘对盘发射) | 中心射线从发射盘中心指向接收盘中心,其他射线从发射盘边缘指向接收盘边缘 |
sigma_launching_disk | 高斯分布标准差(Disk 模式)(单位:米) |
d_disk | 两盘之间的垂直距离(单位:米) |
part_gauss_power | 高斯功率占比 ∈ (0, 1]。若< 1,则自动计算 σ;否则使用给定 σ 功率占比。 |
rho_launching_disk | 发射盘半径(单位:米) |
rho_focus_disk | 接收盘半径(单位:米) |
n_mesh_disk_radial_bin | 径向网格数 |
n_mesh_disk_angle_bin(n_mesh_disk_radial_bin) | 每个径向环带的角向网格数 |
initial_azimuth_angle_degree(n_mesh_disk_radial_bin) | 初始方位角分布(单位:度) |
✅ /eccone/ 示例配置(raypatt=‘genray’):
&eccone
ncone = 1
powtot(1) = 1.0d0 ! 1 MW
zst(1) = 0.0d0
rst(1) = 2.0d0
phist(1) = 0.0d0
alfast(1) = 0.0d0
betast(1) = 90.0d0
alpha1(1) = 2.0d0
alpha2(1) = 0.0d0
na1 = 4
na2 = 12
&end
若要模拟 ECCD(电子回旋电流驱动)或 ECH(电子回旋加热),建议使用 'genray'
或 'diskbeam'
模式。多锥 (ncone > 1
) 可用于模拟多个天线同时发射。
关键剖面表参数设置(18~22)
18. /dentab/ 密度剖面表参数
此段用于设置在均匀径向网格上(即 ρ ( i ) = ( i − 1 ) / ( n d e n s − 1 )
ho(i) = (i-1)/(ndens-1) ρ(i)=(i−1)/(ndens−1))的密度分布数据。适用于 /plasma/
段参数nonuniform_profile_mesh='disabled'
的情况。
参数名 | 描述 |
---|---|
ndens | 径向方向上的点数(小半径方向)(不超过ndensa ) |
ndensa | 最大径向点数(在 param.i 文件中定义) |
nbulk | 当前使用的等离子体组分数目(第一个组分为电子)(不超过nbulka ) |
nbulka | 等离子体组分最大数量(在 param.i 文件中定义) |
nbulk1 | 实际需要输入的组分数目,根据 /plasma/ 段模型参数 izeff 决定 |
⭐prof(ndens, nbulk) | 二维数组。每列对应一种等离子体成分(第一列为电子),每行对应一个径向位置(从中心到边缘)(单位: m − 3 m^{-3} m−3) |
✅ nbulk1 的计算逻辑(与/plasma/ - izeff
有关)【非常重要】
if ((izeff == 0) .or. (izeff == 2) .or. (izeff == 3)) then
nbulk1 = nbulk
else if (izeff == 1 .or. izeff == 4) then
if (nbulk <= 2) then
nbulk1 = nbulk
else
nbulk1 = nbulk - 2
end if
end if
如果 izeff 为模式 0、2 或 3,所有组分都需要输入数据。
如果 izeff 为模式 1 或 4,最后两个离子组分的数据可以任意填写(程序会自动计算),因此只需提供前 nbulk1 = nbulk – 2 个组分的数据。
📊 示例 1:izeff=0, nbulk=3, ndens=5
(模式0,3个组分,5个点):
点索引 ρ 电子密度 ( 1 ) 离子 1 密度 ( 2 ) 离子 2 密度 ( 3 ) 1 0.0 0 1.2 1.3 2 0.25 0 2.2 2.3 3 0.5 0 3.2 3.3 4 0.75 0 4.2 4.3 5 1.0 0 5.2 5.3 egin{array}{|c|c|c|c|c|} hline hline {点索引}&{
ho}&{电子密度(1)}&{离子1密度(2)}&{离子2密度(3)}\ hline {1}&{0.0}&{0}&{1.2}&{1.3}\ hline {2}&{0.25}&{0}&{2.2}&{2.3}\ hline {3}&{0.5}&{0}&{3.2}&{3.3}\ hline {4}&{0.75}&{0}&{4.2}&{4.3}\ hline {5}&{1.0}&{0}&{5.2}&{5.3}\ hline end{array} 点索引12345ρ0.00.250.50.751.0电子密度(1)00000离子1密度(2)1.22.23.24.25.2离子2密度(3)1.32.33.34.35.3
注:由于 izeff=0
,电子密度可忽略(程序将根据电荷中性自动计算),但必须给出所有离子的密度。
📊 示例 2:izeff=1, nbulk=4, ndens=5
(模式1,4个组分,5个点):
点索引 ρ 电子密度 ( 1 ) 离子 1 密度 ( 2 ) 离子 2 密度 ( 3 ) 离子 3 密度 ( 4 ) 1 0.0 1.1 1.0 0.0 0.0 2 0.25 0.9 0.85 0.0 0.0 3 0.5 0.6 0.55 0.0 0.0 4 0.75 0.4 0.32 0.0 0.0 5 1.0 0.2 0.15 0.0 0.0 egin{array}{|c|c|c|c|c|c|} hline hline {点索引}&{
ho}&{电子密度(1)}&{离子1密度(2)}&{离子2密度(3)}&{离子3密度(4)}\ hline {1}&{0.0}&{1.1}&{1.0}&{0.0}&{0.0}\ hline {2}&{0.25}&{0.9}&{0.85}&{0.0}&{0.0}\ hline {3}&{0.5}&{0.6}&{0.55}&{0.0}&{0.0}\ hline {4}&{0.75}&{0.4}&{0.32}&{0.0}&{0.0}\ hline {5}&{1.0}&{0.2}&{0.15}&{0.0}&{0.0}\ hline end{array} 点索引12345ρ0.00.250.50.751.0电子密度(1)1.10.90.60.40.2离子1密度(2)1.00.850.550.320.15离子2密度(3)0.00.00.00.00.0离子3密度(4)0.00.00.00.00.0
注:由于 izeff=1
,最后两列(离子3 和离子4)可以任意填(程序会自动计算),只需正确填写前 nbulk1 = nbulk – 2 = 2 列。
✅/dentab/
均匀径向网格示例代码:
! 例中只有1列数据(一个组分),为仅电子的情况(`nbulk=1`),适用于 ECR 或 EBW。
&dentab
prof = 4.2000000d19,
4.1400000d19,
4.0500000d19,
3.9500000d19,
3.8900000d19,
3.8100000d19,
3.7400000d19,
3.6700000d19,
3.6100000d19,
3.5500000d19,
3.4900000d19,
3.3500000d19,
3.1900000d19,
3.0100000d19,
2.7600000d19,
2.4500000d19,
2.1400000d19,
1.8500000d19,
1.5100000d19,
1.2500000d19,
0.8500000d19
&end
/dentab_nonuniform_line/
此段用于定义非均匀径向网格上的密度分布数据,适用于 /plasma/
段参数 nonuniform_profile_mesh='enabled'
的情况。
参数名 | 描述 |
---|---|
nj_tab(nbulka) | 每个等离子体成分对应的径向点数(不超过 ndensa ) |
prof_2d(ndensa,nbulka) | 密度数据(每列对应一个组分) |
radii_2d(ndensa,nbulka) | 每个组分的径向坐标(ρ值) |
📊数据格式说明:
每一列代表一种等离子体成分(第一列为电子)
每一行对应一个径向位置(ρ值)
可以为每个组分使用不同的径向网格(非均匀)
✅/dentab_nonuniform_line/
非均匀径向网格示例配置:
! nbulk = 2
&dentab_nonuniform_line
nj_tab = 3, 4
radii_2d = 0.0d0, 0.3d0, 1.0d0, & ! 电子的径向点
0.0d0, 0.2d0, 0.6d0, 1.0d0 ! 离子的径向点
prof_2d = 1.0d19, 0.9d19, 0.8d19, &
2.0d19, 1.8d19, 1.5d19, 1.2d19
&end
! nbulk1 = 3
&dentab_nonuniform_line
nj_tab(1)=3
nj_tab(2)=5
nj_tab(3)=7
prof_2d(1,1)= 1.d19, 0.5d19, 0.001d19,
prof_2d(1,2)= 1.d19, 0.7d19, 0.5d19, 0.25d19, 0.001d19,
prof_2d(1,3)= 1.d19, 0.9d19, 0.7d19, 0.5dd19, 0.25d19, 0.12d19, 0.001d19,
radii_2d(1,1)=0.d0, 0.5d0, 1.d0,
radii_2d(1,2)=0.d0, 0.2d0, 0.5d0, 0.7d0, 1.d0,
radii_2d(1,2)=0.d0, 0.2d0, 0.3d0, 0.5d0, 0.7d0, 0.9.d0, 1.d0
&end
注:此例中,电子有 3 个径向点,离子有 4 个径向点,并分别给出了它们的密度和 ρ 值。
19. /temtab/ 温度剖面表参数
此段用于设置在均匀径向网格上(即 ρ ( i ) = ( i − 1 ) / ( n d e n s − 1 )
ho(i) = (i-1)/(ndens-1) ρ(i)=(i−1)/(ndens−1))的温度分布数据。适用于 /plasma/
段参数nonuniform_profile_mesh='disabled'
的情况。
参数名 | 描述 |
---|---|
nbulk | 等离子体组分数目(第一个为电子) |
ndens | 径向方向上的点数(从中心到边缘,ρ = 0~1) |
⭐prof(ndens,nbulk) | 温度分布(单位:keV )。每一列代表一种组分(第一列为电子),每一行代表一个径向位置。temp1(k,i) 表示第 k 个径向位置(ρ 值)下第 i 种组分的温度。 |
t e m p 1 = T ∥ + 2 ⋅ T ⊥ 3 temp1=frac{T_{parallel}+2·T_{perp}}{3} temp1=3T∥+2⋅T⊥
📊 示例配置:nbulk=3, ndens=5
(3个组分,5个点):
点索引 ρ 电子温度 ( k e V ) 离子 1 温度 ( k e V ) 离子 2 温度 ( k e V ) 1 0.0 0 1.2 1.3 2 0.25 0 2.2 2.3 3 0.5 0 3.2 3.3 4 0.75 0 4.2 4.3 5 1.0 0 5.2 5.3 egin{array}{|c|c|c|c|c|} hline hline {点索引}&{
ho}&{电子温度(keV)}&{离子1温度(keV)}&{离子2温度(keV)}\ hline {1}&{0.0}&{0}&{1.2}&{1.3}\ hline {2}&{0.25}&{0}&{2.2}&{2.3}\ hline {3}&{0.5}&{0}&{3.2}&{3.3}\ hline {4}&{0.75}&{0}&{4.2}&{4.3}\ hline {5}&{1.0}&{0}&{5.2}&{5.3}\ hline end{array} 点索引12345ρ0.00.250.50.751.0电子温度(keV)00000离子1温度(keV)1.22.23.24.25.2离子2温度(keV)1.32.33.34.35.3
&temtab
prof = 0.0, 1.2, 1.3,
0.0, 2.2, 2.3,
0.0, 3.2, 3.3,
0.0, 4.2, 4.3,
0.0, 5.2, 5.3
&end
🧠 内部映射关系(关键):
Fortran 中的 namelist 使用了一维数组 prof(nbulk, ndens)
来简化输入,但实际使用的是二维数组 temp1(ndens, nbulk)
,即:
! 若 prof(3,5) 是一个二维数组,则它对应 temp1(5,3),即第5个径向位置、第3种组分的温度。
temp1(k, i) = prof(i, k)
/temtab_nonuniform_line/
此段用于定义非均匀径向网格上的温度分布数据,适用于 /plasma/
段参数 nonuniform_profile_mesh='enabled'
的情况。
参数名 | 描述 |
---|---|
nj_tab(nbulka) | 每个等离子体成分对应的径向点数(不超过 ndensa ) |
prof_2d(ndensa,nbulka) | 每个组分的温度数据(keV) |
radii_2d(ndensa,nbulka) | 每个组分的径向坐标(ρ值) |
📊数据格式说明:
可以为每个组分设置不同的径向网格(ρ值)
prof_2d(i,j)
表示第 j 个组分在第 i 个径向点处的温度
radii_2d(i,j)
表示第 j 个组分的第 i 个径向点的 ρ 值
✅/temtab_nonuniform_line/
非均匀径向网格示例配置:
! nbulk = 3
! 第一组分(电子)有 3 个温度数据点,分布在 ρ = [0, 0.5, 1]
! 第二组分(离子1)有 5 个温度数据点,分布在 ρ = [0, 0.2, 0.5, 0.7, 1]
! 第三组分(离子2)有 7 个温度数据点,分布在 ρ = [0, 0.2, 0.3, 0.5, 0.7, 0.9, 1]
&temtab_nonuniform_line
nj_tab(1)=3
nj_tab(2)=5
nj_tab(3)=7
prof_2d(1,1)= 1.d0, 0.5d0, 0.001d0
prof_2d(1,2)= 1.d0, 0.7d0, 0.5d0, 0.25d0, 0.001d0
prof_2d(1,3)= 1.d0, 0.9d0, 0.7d0, 0.5d0, 0.25d0, 0.12d0, 0.001d0
radii_2d(1,1)=0.d0, 0.5d0, 1.d0
radii_2d(1,2)=0.d0, 0.2d0, 0.5d0, 0.7d0, 1.d0
radii_2d(1,3)=0.d0, 0.2d0, 0.3d0, 0.5d0, 0.7d0, 0.9d0, 1.d0
&end
✅ **使用建议:**数据来自实验或模拟,具有不规则径向分布或需要精确控制每种离子的温度剖面时,使用/temtab_nonuniform_line/
段。数据是线性或平滑分布,快速设置简单温度分布时,使用/temtab/
段。
20. /tpoptab/ 温度各向异性比表参数(T_perp/T_parallel)
此段用于设置在均匀径向网格上(即 ρ ( i ) = ( i − 1 ) / ( n d e n s − 1 )
ho(i) = (i-1)/(ndens-1) ρ(i)=(i−1)/(ndens−1))的各向异性温度比值(Tpop) 数据。适用于参数 nonuniform_profile_mesh='disabled'
的情况。
参数名 | 描述 |
---|---|
nbulk | 等离子体组分数目(第一个为电子) |
ndens | 径向方向上的点数(从中心到边缘,ρ=0~1) |
⭐prof(ndens, nbulk) | 各向异性温度比值(无量纲),每一列代表一种组分(第一列为电子),每一行代表一个径向位置。tpop1(k,i) 表示第 k 个径向位置(ρ 值)下第 i 种组分的T⊥/T∥ 比值。若为各向同性等离子体,则 tpop = 1.0;若垂直方向温度更高,tpop > 1.0;若平行方向温度更高,tpop < 1.0。 |
*示例配置同上。
🧠 内部映射关系(关键):
Fortran 中的 namelist 使用了一维数组 prof(nbulk, ndens)
来简化输入,但实际使用的是二维数组 tpop1(ndens, nbulk)
,即:
! 若 prof(3,5) 是一个二维数组,则它对应 tpop1(5,3),即第5个径向位置、第3种组分的温度。
tpop1(k, i) = prof(i, k)
/tpoptab_nonuniform_line/
此段用于定义非均匀径向网格上的各向异性温度比值(Tpop)分布数据,适用于 /plasma/
段参数 nonuniform_profile_mesh='enabled'
的情况。
参数名 | 描述 |
---|---|
nj_tab(nbulka) | 每个等离子体成分对应的径向点数(不超过 ndensa) |
prof_2d(ndensa,nbulka) | 每个组分的Tpop数据(无量纲) |
radii_2d(ndensa,nbulka) | 每个组分的径向坐标(ρ值) |
📊数据格式说明:
可以为每个组分设置不同的径向网格(ρ值)
prof_2d(i,j)
表示第 j 个组分在第 i 个径向点处的Tpop值
radii_2d(i,j)
表示第 j 个组分的第 i 个径向点的 ρ 值
✅/tpoptab_nonuniform_line/
非均匀径向网格示例配置:
! nbulk = 3
! 第一组分(电子)有 3 个 Tpop 数据点,分布在 ρ = [0, 0.5, 1]
! 第二组分(离子1)有 5 个 Tpop 数据点,分布在 ρ = [0, 0.2, 0.5, 0.7, 1]
! 第三组分(离子2)有 7 个 Tpop 数据点,分布在 ρ = [0, 0.2, 0.3, 0.5, 0.7, 0.9, 1]
&tpoptab_nonuniform_line
nj_tab(1)=3
nj_tab(2)=5
nj_tab(3)=7
prof_2d(1,1)=1.d0, 1.d0, 1.d0
prof_2d(1,2)=1.d0, 1.d0, 1.d0, 1.d0, 1.d0
prof_2d(1,3)=1.d0, 1.d0, 1.d0, 1.d0, 1.d0, 1.d0, 1.d0
radii_2d(1,1)=0.d0, 0.5d0, 1.d0
radii_2d(1,2)=0.d0, 0.2d0, 0.5d0, 0.7d0, 1.d0
radii_2d(1,3)=0.d0, 0.2d0, 0.3d0, 0.5d0, 0.7d0, 0.9d0, 1.d0
&end
✅ **使用建议:**数据来自实验或模拟,具有不规则径向分布或需要精确控制每种离子的各向异性温度比值时,使用/tpoptab_nonuniform_line/
段。数据是线性或平滑分布,快速设置简单温度分布时,使用/tpoptab/
段。
21. /vflowtab/ 平行磁场漂移速度剖面表参数
此段用于设置在均匀径向网格上(即 ρ ( i ) = ( i − 1 ) / ( n d e n s − 1 )
ho(i) = (i-1)/(ndens-1) ρ(i)=(i−1)/(ndens−1))的漂移速度分布数据。适用于参数 nonuniform_profile_mesh='disabled'
的情况。
参数名 | 描述 |
---|---|
nbulk | 等离子体组分数目(第一个为电子) |
ndens | 径向方向上的点数(从中心到边缘,ρ=0~1) |
⭐prof(ndens, nbulk) | 漂移速度(m/s),每一列代表一种组分(第一列为电子),每一行代表一个径向位置。vflow1(k,i) 表示第 k 个径向位置(ρ 值)下第 i 种组分的沿磁场方向的漂移速度。正值表示沿磁场方向运动,负值表示反方向运动。 |
*示例配置同上。
🧠 内部映射关系(关键):
Fortran 中的 namelist 使用了一维数组 prof(nbulk, ndens)
来简化输入,但实际使用的是二维数组 vflow1(ndens, nbulk)
,即:
! 若 prof(3,5) 是一个二维数组,则它对应 vflow1(5,3),即第5个径向位置、第3种组分的温度。
vflow1(k, i) = prof(i, k)
/vflowtab_nonuniform_line/
此段用于定义非均匀径向网格上的漂移速度分布数据,适用于 /plasma/
段参数 nonuniform_profile_mesh='enabled'
的情况。
参数名 | 描述 |
---|---|
nj_tab(nbulka) | 每个等离子体成分对应的径向点数(不超过 ndensa) |
prof_2d(ndensa,nbulka) | 每个组分的漂移速度数据(m/s) |
radii_2d(ndensa,nbulka) | 每个组分的径向坐标(ρ值) |
📊数据格式说明:
可以为每个组分设置不同的径向网格(ρ值)
prof_2d(i,j)
表示第 j 个组分在第 i 个径向点处的漂移速度
radii_2d(i,j)
表示第 j 个组分的第 i 个径向点的 ρ 值
✅/vflowtab_nonuniform_line/
非均匀径向网格示例配置:
! nbulk = 3
! 第一组分(电子)有 3 个漂移速度数据点,分布在 ρ = [0, 0.5, 1]
! 第二组分(离子1)有 5 个漂移速度数据点,分布在 ρ = [0, 0.2, 0.5, 0.7, 1]
! 第三组分(离子2)有 7 个漂移速度数据点,分布在 ρ = [0, 0.2, 0.3, 0.5, 0.7, 0.9, 1]
&vflowtab_nonuniform_line
nj_tab(1)=3
nj_tab(2)=5
nj_tab(3)=7
prof_2d(1,1)=0.d0, 0.d0, 0.d0
prof_2d(1,2)=0.d0, 0.d0, 0.d0, 0.d0, 0.d0
prof_2d(1,3)=0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 1.d0, 1.d0
radii_2d(1,1)=0.d0, 0.5d0, 1.d0
radii_2d(1,2)=0.d0, 0.2d0, 0.5d0, 0.7d0, 1.d0
radii_2d(1,3)=0.d0, 0.2d0, 0.3d0, 0.5d0, 0.7d0, 0.9d0, 1.d0
&end
✅ **使用建议:**数据来自实验或模拟,具有不规则径向分布或需要精确控制每种离子的漂移速度分布时,使用/vflowtab_nonuniform_line/
段。数据是线性或平滑分布,快速设置简单温度分布时,使用/vflowtab/
段。
22. /zeftab/ Z_eff剖面表参数
此段用于设置在均匀径向网格上(即 ρ ( i ) = ( i − 1 ) / ( n d e n s − 1 )
ho(i) = (i-1)/(ndens-1) ρ(i)=(i−1)/(ndens−1))的有效电荷数Zeff分布数据。适用于参数 nonuniform_profile_mesh='disabled'
的情况。
参数名 | 描述 |
---|---|
nbulk | 等离子体组分数目(第一个为电子) |
ndens | 径向方向上的点数(从中心到边缘,ρ=0~1) |
⭐zeff1(ndens) | 有效电荷数 Zeff 在不同径向位置的值。zeff1(k) 表示第 k 个径向位置(ρ 值)下的有效电荷数。第一个值 zeff1(1) 对应于中心(ρ=0),最后一个值 zeff1(ndens) 对应于边界(ρ=1)。通常 Zeff > 1 表示存在高电荷态杂质(如碳、钨),会增加辐射损失并影响约束性能。 |
Z e f f = ∑ j n j Z j 2 n e Z_{eff}=frac{sum_{j}{n_j}Z_j^2}{n_e} Zeff=ne∑jnjZj2
其中, n j n_j nj 是第 j 种离子密度, Z j Z_j Zj 是其电荷数, n e n_e ne是电子密度。
📊 示例配置(ndens=5
):
! 这表示使用了 Fortran 的数组重复语法:21*1.5 表示生成一个长度为 21 的数组,每个元素都是 1.5。也就是说,如果 ndens=21,则所有径向位置的 Zeff 都设为 1.5。
&zeftab
zeff1=21*1.5
&end
🧠 内部映射关系(关键):
Fortran 中的 namelist 使用了一维数组 zeff1(ndens)
来直接存储 Zeff 数据。每一行对应一个径向位置:
zeff1(1) = prof(1)
zeff1(2) = prof(2)
...
zeff1(ndens) = prof(ndens)
/zeftab_nonuniform_line/
此段用于定义非均匀径向网格上的有效电荷数Zeff分布数据,适用于 /plasma/
段参数 nonuniform_profile_mesh='enabled'
的情况。
参数名 | 描述 |
---|---|
nj_tab(1) | Zeff 数据点数(不超过 ndensa) |
prof_2d(ndensa,1) | Zeff 数据(一维数组) |
radii_2d(ndensa,1) | 对应的径向坐标(ρ值) |
📊数据格式说明:
Zeff 只有一个维度(不区分粒子种类),因此只有一列数据
prof_2d(i,1)
表示第 i 个径向点处的 Zeff 值
radii_2d(i,1)
表示对应的 ρ 值
✅/zeftab_nonuniform_line/
非均匀径向网格示例配置:
! 3个径向点
! Zeff 有 3 个数据点,分布在 ρ = [0, 0.5, 1]
! 所有位置的 Zeff 值都为 1.0
&zeftab_nonuniform_line
nj_tab(1)=3
prof_2d(1,1)= 1.d0, 1.d0, 1.d0,
radii_2d(1,1)=0.d0, 0.5d0, 1.d0,
&end
✅ **使用建议:**数据来自实验或模拟,具有不规则径向分布或需要精确控制Zeff 分布曲线时,使用/zeftab_nonuniform_line/
段。数据是线性或平滑分布,快速设置 Zeff 分布时,使用/zeftab/
段。
23. /read_diskf/ 定义电子速度分布函数的输入方式
该段用于控制如何读取或生成电子速度分布函数(velocity distribution function) f ( p , θ , ρ ) f(p, θ, ρ) f(p,θ,ρ),即等离子体中电子在动量空间中的分布情况。它决定了电子在不同动量、俯仰角和径向位置上的分布形式。
参数名 | 描述 |
---|---|
⭐i_diskf | 🧭 主要开关参数(1~5)。 = 0(默认):使用解析标准Maxwellian分布(用于常规模拟,快速启动); = 1:从 diskf 文件中读取分布数据(用于已有实验/模拟分布数据);= 2:从 NetCDF 文件(如 netcdfnm.nc )中读取分布数据(用于大规模数据导入);= 3:用解析非麦克斯韦分布模型(含尾部、热区/热电子、束流成分); = 4:使用三维样条插值的非麦克斯韦分布(连续能量范围+三种温度)(用于多温分布,需插值); = 5:快速非麦克斯韦分布,即解析速度空间 + 径向密度样条插值(与 i_diskf=4 类似,但更快)。 |
⭐netcdfnm | NetCDF文件名(如 netcdfnm.nc ) |
📊 通用参数说明(适用于多种 i_diskf 类型) |
|
⭐jx | 归一化动量网格点数 |
⭐lrz | 径向网格点数 |
⭐iym | 俯仰角(pitch-angle)网格点数 |
⭐ngen | 粒子种类数目(这里只用电子 k=1) |
⭐rtem0 | 最大归一化能量对应的实际温度(单位:KeV)。 t e m 0 = r t e m 0 ⋅ T e ( ρ = 0 ) tem0 = rtem0·T_e( ho=0) tem0=rtem0⋅Te(ρ=0) |
🔥 非麦克斯韦分布参数(i_diskf=3 ): |
|
尾部分布(Tail component) | |
r1t, r2t | 径向区间 [ρ],限定尾部分布所在的区域 |
rtail | 尾部密度占总密度的比例 |
ttail | 尾部温度(单位:KeV) |
热区分布(Hot component) | |
r1h, r2h | 热区分布所在径向范围 |
rhot | 热区密度占比 |
thotpar, thotper | 平行和垂直方向的热区温度(单位:KeV) |
hotmnpar, hotmxpar | 平行能量范围(单位:KeV) |
hotmnper, hotmxper | 垂直能量范围(单位:KeV) |
hotexp | 垂直动量的幂指数 ( p p e r m c ) h o t e x p (frac{p_{per}}{mc})^{hotexp} (mcpper)hotexp |
束流分布(Beam component) | |
r1b, r2b | 束流分布所在径向范围 |
rbeam | 束流密度占比 |
ebeam | 束流能量(单位:KeV) |
thbeam | 束流俯仰角 ∈ [0, 180](单位:度) |
tbeam | 束流温度(单位:KeV) |
📈 多温分布参数(i_diskf=4 ): |
|
rvtovte1, rvtovte2 | 定义三个动量区间的边界,相对于热速度 vte0 的倍数 |
rtemp1, rtemp2, rtemp3 | 每个动量区间内的温度比例,相对于局域温度 T_e(rho) |
📊多温分布参数(i_diskf=4
)示例说明:
v t e 0 vte0 vte0 为中心处的热速度:
v t e 0 = T e ( ρ = 0 ) m e v_{te0}=sqrt{frac{T_e(
ho=0)}{m_e}} vte0=meTe(ρ=0)
第一区间: [ 0 , r v t o v t e 1 ⋅ v t e 0 ] [0,rvtovte1·vte0] [0,rvtovte1⋅vte0],温度为 r t e m p 1 ⋅ T e ( ρ ) rtemp1·T_e(
ho) rtemp1⋅Te(ρ)
第二区间: [ r v t o v t e 1 ⋅ v t e 0 , r v t o v t e 2 ⋅ v t e 0 ] [rvtovte1·vte0,rvtovte2·vte0] [rvtovte1⋅vte0,rvtovte2⋅vte0],温度为 r t e m p 2 ⋅ T e ( ρ ) rtemp2·T_e(
ho) rtemp2⋅Te(ρ)
第三区间: [ r v t o v t e 2 ⋅ v t e 0 , ∞ ] [rvtovte2·vte0,infin] [rvtovte2⋅vte0,∞],温度为 r t e m p 3 ⋅ T e ( ρ ) rtemp3·T_e(
ho) rtemp3⋅Te(ρ)
✅ /read_diskf/ 示例配置(文档 namelist 内容):
&read_diskf
i_diskf=0
netcdfnm='netcdfnm.nc'
jx=200
lrz=20
iym=100
ngen=1
rtem0=10.d0
r1t=1.d0
r2t=0.d0
rtail=0.0d0
ttail=1.d0 !keV
r1h=1.d0
r2h=0.d0
rtail=0.0d0
thotpar=1.d0 !keV
thotper=1.d0 !keV
hotmnpar=1.d0 !keV
hotmxpar=2.d0 !keV
hotmnper=1.d0 !keV
hotmxper=2.d0 !keV
hotexp=0.d0
r1b=1.d0
r2b=2.d0
rbeam=0.d0
ebeam=1.d0 !keV
thbeam=30.d0 !degree
tbeam=1.d0 !keV
!---for i_diskf=4
rvtovte1=1.d6
rvtovte2 =1.d6
rtemp1=1.d0
rtemp1=1.d0
rtemp1=1.d0
&end
📋 当前设置分析:
i_diskf=0
:使用解析麦克斯韦分布,其他非麦克斯韦相关参数未被激活(设为 0 或无意义值)
jx=200
:动量网格点数较多,适合高精度计算
lrz=20
:20 个径向位置
iym=100
:100 个俯仰角分格,覆盖全角度
ngen=1
:仅考虑电子
rtem0=10.d0
:最大能量为 10 倍中心温度
24. /emission/ 辐射发射计算参数
此段用于设置是否进行发射(Emission)计算,并定义发射相关的物理参数,包括频率范围、能量网格点数、谐波选择、壁反射系数等。
参数名 | 描述 |
---|---|
i_emission | 🧭 控制是否开启发射计算。= 0(默认):不进行发射计算;= 1:进行发射计算。 |
tol_emis | 容差参数,用于判断是否添加新的发射射线路径,若某路径贡献大于 tol_emis·I_0 (最大强度),则保留该路径。 |
nharm1, nharm2 | 使用的电子回旋(EC)谐波范围(例如第1~3次谐波)⚠️提示:此功能目前未启用(Not work now) |
nfreq | 发射计算使用的频率数量 |
freq00, freq01 | 最小和最大发射频率相对于磁轴处电子回旋频率的比例因子,即: f m i n = f r e q 00 ⋅ f c e ( ρ = 0 ) , f m a x = f r e q 01 ⋅ f c e ( ρ = 0 ) egin{aligned}f_{min} &= freq00 · f_{ce}(ρ=0),\f_{max} &= freq01 · f_{ce}(ρ=0)end{aligned} fminfmax=freq00⋅fce(ρ=0),=freq01⋅fce(ρ=0) |
wallr | 壁面反射系数(取值范围 [0,1])。= 0,表示完全吸收;= 1,表示完全反射。 |
i_rrind | 控制如何计算射线数量 N_ray 的方法(0~2)。= 0: N_ray=N ;= 1:使用冷等离子体模型; = 2:使用热非相对论色散关系。 |
i_r_2nd_harm | 是否计算第二谐波的主要半径。 = 1:计算并使用 drawemfr.in 文件;= 0:不计算,默认使用 drawemf1.in 文件。 |
i_emission_spectrum | 是否计算发射光谱。= 0: 不计算;= 1: 计算发射光谱。 |
jx_kin | 动能网格点数(用于发射光谱计算) |
max_kin_energy_kev | 发射光谱的最大动能(单位:KeV) |
✅ /emission/ 示例配置(文档 namelist 内容):
&emission
i_emission=0
tol_emis=5.0d-3
nharm1=1
nharm2=1
nfreq=5
freq00=0.585d0
freq01=0.885d0
wallr=0.9d0
i_rrind=1
i_r_2nd_harm=0
i_emission_spectrum =0
jx_kin=100
max_kin_energy_keV=200.d0
&end
📋 当前设置分析:
i_emission=0
:不进行发射计算(关闭所有发射相关模块)
tol_emis=0.005
:只有当路径贡献大于总最大强度的 0.5% 时才被保留
nharm1=1, nharm2=1
:使用一次谐波/基波(尽管注释说这个功能目前未启用)
nfreq=5
:计算 5 个频率下的发射数据(可用于生成频谱)
freq00=0.585, freq01=0.885
:发射频率范围是磁轴处回旋频率的 58.5% ~ 88.5%
wallr=0.9
:壁面反射率为 90%
i_rrind=1
:使用冷等离子体模型来确定射线数量
i_r_2nd_harm=0
:不计算第二谐波的主要半径
i_emission_spectrum=0
:不计算发射光谱
jx_kin=100
:发射光谱将使用 100 个动能网格点
max_kin_energy_keV=200
:最大动能为 200 keV
🔍 电子回旋频率
电子在磁场中运动时会围绕磁力线做圆周运动,其角频率称为回旋频率:
ω c e = e B m e c omega_{ce}=frac{eB}{m_{e}c} ωce=meceB
换算成频率(Hz)为:
f c e = ω c e 2 π = e B 2 π m e c f_{ce}=frac{omega_{ce}}{2pi}=frac{eB}{2{pi}m_{e}c} fce=2πωce=2πmeceB
在MKSA单位制下简化为: f c e ≈ 28.0 × B f_{ce} {approx} 28.0 { imes} B fce ≈ 28.0 × B(GHz)。
25. /ox/ O-X模式转换参数优化
该段用于设置与电子回旋波(EC wave)模式转换相关的2个关键功能:
O-X 模式转换点的最优 EC 波锥顶点坐标计算
基于该锥顶点坐标的射线追踪和发射方向优化
主要用于托卡马克模拟程序(如 GENRAY)中优化 EC 波注入方向、提高模式转换效率。
参数名 | 描述 |
---|---|
i_ox | 🧭 控制是否开启优化。 = 0,不启用此优化(默认); = 1,计算最优 EC 锥顶点坐标,并输出最佳入射角度到文件 ECcone_optimal.dat(适用于寻找最优波束方向); = 2,使用计算出的 EC 锥顶点坐标进行射线追踪,并使用 O-X 模式传输过程。 ⚠️注: i_ox=1 或 i_ox=2 时,必须设置[/wave/](#3. /wave/ 波参数设置)中的 istart=1 (外部发射),表示从头开始运行;同时频率由 [/wave/](#3. /wave/ 波参数设置) 段中的 frqncy 给出。 |
theta_bot(icone), theta_top(icone) | 定义第 icone 个 EC 锥顶点对应的极角范围(单位:度)(用于搜索最优射线方向)。通常每个锥顶点定义一个 [ θ m i n , θ m a x ] [θ_{min}, θ_{max}] [θmin,θmax] 区间。 |
i_ox_poloidal_max | 在二分法中使用的最大极角数量(用于在等离子体边界(ρ=1)上找到能到达锥顶点的射线路径) |
eps_antenna | 射线终点与指定锥顶点之间的位置容差(单位:米)。若两者距离小于该值,则认为射线成功到达目标顶点。 |
eps_xe | O 模截止面附近区域的判断阈值。如果 xe < (1 - eps_xe) ,则尝试跳转至 X 模传播路径(xe 是等离子体密度归一化参数(ρ = 0~1))。 |
✅ /ox/ 示例配置(文档 namelist 内容):
&ox
i_ox=2
theta_bot(1)=0.0d0
theta_top(1)=30.d0
theta_bot(2)=0.0d0
theta_top(2)=30.d0
i_ox_poloidal_max=20
eps_antenna=1.d-4
eps_xe=1.d-2
&end
📋 当前设置分析:
i_ox=2
:启用 EC 波锥顶点计算 + 射线追踪 + O-X 模式转换传输
theta_bot(1:2)=0.0d0 ~ 30.0d0
:对两个锥顶点分别设置极角搜索范围为 [0°, 30°]
i_ox_poloidal_max=20
:最多使用 20 个极角来通过二分法找到合适射线路径
eps_antenna=1.e-4
:射线终点与目标顶点的距离误差要求小于 0.0001 米
eps_xe=0.01
:当 xe < 0.99 时(即接近 O 模截止面),尝试跳转到 X 模路径
🔍 O-X 模式转换机制简介
在等离子体中,电磁波可以以两种模式存在:
O 模(ordinary mode):电场垂直于磁力线方向
X 模(extraordinary mode):电场部分平行于磁力线方向
在特定密度条件下,O 模会“截止”,能量被反射或转换成 X 模,称为 O-X 模式转换
该转换是 EC 波加热(ECH)和非感应电流驱动(ECCD)的关键机制之一
🔍 O-X 模式转换机制简介
锥顶点是指 EC 波源的位置(天线位置)
最优锥顶点是指使得波束在 O-X 转换点具有最大 N ∥ N_{parallel} N∥(平行折射率)的方向
这个方向决定了波的最佳注入角度,影响加热效率和电流驱动效果
26. /adj_nml/ 伴随函数计算相关参数
该段用于控制伴随函数(Adjoint function)计算的相关参数,在等离子体波加热(如 EC 波)研究中广泛使用,用于快速、高效地计算:
波在不同频率下的波功率吸收分布
电流驱动效率(Current Drive, CD)
不同谐波对加热和驱动的贡献
⚠️注:由于伴随函数仅依赖于等离子体平衡(不依赖于波模式或频率),因此只需计算一次,之后可用于多个波模式和频率的分析。
参数名 | 描述 |
---|---|
i_adj | 🧭 控制是否开启伴随函数计算。 = 0,不启用(默认);= 1,启用。 |
📊网格和积分参数说明: | |
整型参数(INTEGER) | |
npsi0 | 径向积分点数(用于沿磁面线积分) |
nthp0 | 极角积分点数(用于沿磁场线积分) |
nmax_chi | 在归一化动量方向 u_0 上的网格点数(用于伴随函数) |
imax_chi | 在俯仰角(pitch angle)方向的网格点数 |
lmax_chi | Legendre 谐波展开的最大阶数。= 0: 使用静态麦克斯韦碰撞模型。通常设为 3 或 21。 |
tmax | 最大时间步数(用于伴随函数求解的时间演化) |
n_harm_adj_min, n_harm_adj_max | 功率和电流驱动计算时使用的回旋谐波范围(应满足 nmin ≤ nmax ) |
n_relt_intgr_adj | 功率和电流驱动积分中在垂直动量方向的积分点数 |
实型参数(REAL*8 / DOUBLE PRECISION) | |
t | 温度单位,通常设为 1.d0 。表示速度归一化到 T m sqrt{frac{T}{m}} mT。 |
ze | 电子电荷态,一般为 1.0d0 ;对于洛伦兹极限(离子电荷无限大),设为 0.0d0 。 |
umax | 归一化动量最大值(归一化单位) |
dt | 时间步长(用于伴随函数求解) |
alpha | 时间推进算法的加权因子( = 0: 显式算法) |
rho_ | 边界条件控制参数。= 1: 在最大动量处设置二阶导数为零;= 0: 一阶导数为零。 |
aerrmx, rerrmx | 子程序 subadj 的误差容限 |
epsi_adj | 自适应辛普森积分法的精度控制参数。仅当i_resonance_curve_integration_method_adj=4 时有效 |
i_resonance_curve_integration_method_adj | 共振曲线上的数值积分方法选择(影响功率和电流驱动计算的精度与效率)。 = 1:矩形积分(角度方向)(仅适用于椭圆情况); =2:矩形公式(垂直动量方向)(椭圆或双曲线情况); = 3:梯形公式(垂直动量方向)(椭圆或双曲线情况); = 4:自适应辛普森积分**(推荐)**(椭圆或双曲线情况,精度最高)。 |
i_calculate_or_read_adj_function | 是否计算或读取伴随函数。= 1:计算伴随函数 chi 并保存到文件 adjout ;= 0:从文件 adjout 中读取已有的伴随函数。⚠️注:因为伴随函数只依赖于等离子体平衡状态,如果等离子体没有变化,可以重复使用同一个 chi 函数,节省大量计算时间。 |
i_chi_interpolation | 插值方法选择。= 1:样条插值(默认,但边界附近可能不稳定);= 2:线性插值(更稳定,适合边界附近)。 |
✅ /adj_nml/ 示例配置(文档 namelist 内容):
&adj_nml
i_adj=0
npsi0=10 !=< npsi0a
nthp0=1000 !=< nthp0_a
nmax_chi=400
imax_chi=200
lmax_chi=3
tmax=300
t=1.d0
ze=1.d0
umax=10.d0
dt=1.d0
alpha=0.55d0
rho_= 1
aerrmx=1.d-5
rerrmx=2.d-6
n_harm_adj_min=0
n_harm_adj_max=1
n_relt_intgr_adj=200
i_resonance_curve_integration_method_adj=4
epsi_adj=1.d-5 !works for i_resonance_curve_integration_method_adj=4 case only
i_calculate_or_read_adj_function=1
i_chi_interpolation=1
&end
📋 当前设置分析:
i_adj=0
:未启用伴随函数计算
npsi0=10, nthp0=1000
:径向点较少,极角点较多,适合高精度沿场线积分
nmax_chi=400, imax_chi=200
:精细的动量和俯仰角网格
lmax_chi=3
:使用低阶 Legendre 展开
tmax=300
:最多 300 个时间步
t=1.d0
:速度归一化到热速度
ze=1.d0
:标准电子电荷
umax=10.d0
:最大归一化动量为 10
dt=1.d0, alpha=0.55d0
:时间步进参数
rho_=1
:最大动量处使用二阶导数边界条件
aerrmx=1.d-5, rerrmx=2.d-6
:子程序误差控制
n_harm_adj_min=0, n_harm_adj_max=1
:考虑第 0 和第 1 次回旋谐波
n_relt_intgr_adj=200
:积分点数较多,保证精度
i_resonance_curve_integration_method_adj=4
:使用自适应辛普森积分,精度高
`epsi_adj=1.d-5:积分精度控制
i_calculate_or_read_adj_function=1
:将重新计算并保存伴随函数
i_chi_interpolation=1
:使用样条插值
27. /edge_prof_nml/ LCFS(最后闭合磁面)外部等离子体密度/温度剖面的设置
该段用于控制LCFS(最后闭合磁面)外部(即 rho > 1 区域)的等离子体密度和温度剖面的设置。常用于托卡马克模拟程序(如 GENRAY、TORAY)中处理边界等离子体区域(SOL 和偏滤器区)的行为。
这些参数主要用于以下物理建模目的:
波在边界等离子体中的传播
自然反射(natural reflection)条件的建立(如来自真空室壁或偏滤器板)
边界密度对射线路径的影响
偏滤器几何结构与等离子体相互作用的建模
参数名 | 描述 |
---|---|
i_edge_dens_anal | 控制 LCFS 外部密度剖面的类型。 = 0: 使用常数 sigmedgn 描述密度沿径向指数衰减;= 1: 使用解析公式描述极角相关的密度衰减(高斯函数); = 2: 使用表格数据 sigmedgn_ar 描述极角相关的密度衰减。 |
📈基本物理参数 | |
sigmedgt | 温度沿径向的指数衰减长度(默认值 = 0.02,归一化到小半径 a)。 表示温度从 LCFS(ρ=1)开始呈指数下降: T ( i , r h o ) = T ( i , 1 ) ⋅ e − ( ρ − 1 ) / s i g m e d g t T(i, rho) = T(i, 1) · e^{-( ho – 1)/sigmedgt} T(i,rho)=T(i,1)⋅e−(ρ−1)/sigmedgt |
dens_min_edge | 所有粒子种类的最小边缘密度限制(单位: m − 3 m^{-3} m−3 ,MKSA) |
temp_min_edge | 所有粒子种类的最小边缘温度限制(单位:keV) |
🌀极角相关密度剖面参数 | |
> 解析,i_edge_dens_anal=1 : |
|
theta_pol_edge_1_degree, theta_pol_edge_2_degree | 两个特征极角位置(如顶部和底部)(单位:度) |
sigma_theta_pol_edge_1_degree, sigma_theta_pol_edge_2_degree | 上述极角处的宽度(标准差)(单位:度) |
sigma_edgen_0 | 远离特征极角时的密度衰减长度基准值(单位:归一化) |
sigma_edgen_1, sigma_edgen_2 | 对应两个极角附近的密度衰减长度(单位:归一化) |
> 表格,i_edge_dens_anal=2 : |
|
n_pol_edge_dens | 极角方向上的点数。 |
theta_pol_edge_dens_ar_degree(1:n_pol_edge_dens) | 极角网格数组(单位:度) |
sigmedgn_ar(1:n_pol_edge_dens) | 对应极角下的密度衰减长度值(表格数据) |
🧱真空室壁/偏滤器建模 | |
sigma_wall_n | 真空室壁和偏滤器附近密度的指数衰减长度,默认值为 3.d-3(单位:米)。(值越小则密度下降越陡峭,适合模拟自然反射) |
sigma_lim_toroidal_degree | 在垂直偏滤器边界附近的环向角度范围内的密度衰减宽度(单位:度) |
nxeqd_add, nyeqd_add | R/Z 极向网格点数 |
nxeqd_add
与 nyeqd_add
需满足:
x d i m e q d n x e q d a d d − 1 < σ w a l l , n , y d i m e q d n y e q d a d d − 1 < σ w a l l , n frac{xdimeqd}{nxeqd_add-1}<sigma_{wall,n}, frac{ydimeqd}{nyeqd_add-1}<sigma_{wall,n} nxeqdadd−1xdimeqd<σwall,n, nyeqdadd−1ydimeqd<σwall,n
✅ /edge_prof_nml/ 示例配置(文档 namelist 内容):
&edge_prof_nml
sigmedgt=0.02 !normalized to small radius
i_edge_dens_anal=2
n_pol_edge_dens=11
theta_pol_edge_dens_ar_degree=0., 36.d0, 72.d0, 108.d0, 144.d0, 180.d0,
216.d0, 252.d0, 288.d0, 324.d0, 360.d0
sigmedgn_ar=11*0.02d0
dens_min_edge=1.d11
temp_min_edge=1.d-3
sigma_wall_n=3.d-3
nxeqd_add=1000
nyeqd_add=1000
sigma_lim_toroidal_degree=1.d-3
&end
📋 当前设置分析:
i_edge_dens_anal=2
:使用表格插值方法
n_pol_edge_dens=11
:极角分为 11 个点(从 0° 到 360°,每 36° 一个点)
sigmedgn_ar=11*0.02d0
:所有点对应的密度衰减长度相同,均为 0.02,即在当前配置下,虽然使用了表格方式,但所有方向上的密度衰减行为是一致的
dens_min_edge=1.d11, temp_min_edge=1.d-3
:最小密度设为 1e11 m^-3,最小温度设为 0.001 keV
sigma_wall_n=3.d-3
:真空室壁和偏滤器附近密度衰减长度为 3 mm
nxeqd_add=1000, nyeqd_add=1000
:RZ 网格点数为 1000 x 1000,确保分辨率达到要求
sigma_lim_toroidal_degree=1.d-3
:环向密度衰减宽度为 0.001°,非常陡峭,用于局部偏滤器建模
二、./00_Genray_Regression_Tests/ 文件夹Readme说明
🔹 Test 1: ITER 中 ECE 发射
描述 | 模拟 ITER 中 Maxwellian 电子的 ECE(电子回旋辐射)发射,使用简化的频率数(nfreq=5),X模垂直观测。 |
---|---|
输入文件 | genray.dat_SS_Xmode_180_emission Scen4_bn2.57_129x129 |
来源路径 | /home/bobh/cql3d/iter_ECE_pppl_No2/SS/Xmode/180/genray_v6-0_test |
运行时间 | 在 compx1 上运行时间为 1 分 32 秒(使用版本 genray_v7-11_081007) |
验证方式 | 进入子目录 test1/ 后,可以使用命令xdraw genr (查看射线追踪图像) 与 xdraw em (查看发射强度等信息)查看输出结果并将其与历史 .ps 文件对比验证一致性(xdraw_genr_SS_Xmode_180_emission.ps 射线图和xdraw_em_SS_Xmode_180_emission.ps 发射图) |
其他工具 | 可运行 IDL 脚本 idl_emission_spectrum_colorbar.pro 查看边缘辐射谱与能量的关系。该脚本会生成一个等离子体边缘区域发射谱 vs 电子能量的图像,前提是 IDL 环境路径已正确设置。 |
🔹Test 2: HPRT 与 GENRAY 射线轨迹比较
描述 | 比较 HPRT(一种早期射线追踪代码)与 Genray 在 NSTX 上的射线轨迹。 |
---|---|
输入文件 | genray.dat_HPRT_test_case_061219 equilib.dat_HPRT_test_case_061219 |
来源路径 | /home/bobh/cql3d/genray/genray_cvs/code/inputs/NSTX_FW/one_ray_comp_HPRT |
运行时间 | 约 5 秒 |
关键参数 | 使用[/dispers/](#5. /dispers/ 色散关系和吸收模型)段定义的iabsorp=3 (Chiu et al.(修正后)的偏振与吸收模型)或 iabsorp=4 (Stix 热等离子体模型) |
验证方式 | 进入子目录 test2/ 后,可以使用命令xdraw genr (查看射线追踪图像)查看输出结果,并对比历史图像文件idl_105830p193r1.bob_GR030417.4_gr061120.ps 中的射线轨迹图 |
🔹 Test 3: NSTX EBW B-X-O 多频发射测试
描述 | 模拟 NSTX 上 EBW(电子伯恩斯坦波)通过 B-X-O 模式转换的发射过程,频率简化为 3 个(nfreq=3 )。 |
---|---|
输入文件 | genray.dat_113544.00325_mod g113544.00325_mod (EQDSK 格式磁平衡数据) |
来源路径 | bob5:/home/bobh/cql3d/genray/genray_cvs/code/inputs/NSTX_BXO_emission/result_idiskf_0/tmp_051209 |
运行时间 | 在 CompX2 上运行时间为 30.2 秒(2016 年数据) |
验证方式 | 进入子目录 test3/ 后,可以使用命令xdraw genr (查看射线追踪图像) 与 xdraw em (查看发射强度等信息)查看输出结果,并对比历史输出文件 emis.bin_113544.00325_mod (发射数据) 和 genray.bin_113544.00325_mod (射线数据)。 |
🔹Test 4 & 4.1: NSTX O-X-B 模式转换测试
描述 | Test 4: 模拟 NSTX 装置中电子伯恩斯坦波(EBW)通过 O-X 模式转换 的过程,并计算最优的 O 模发射角度,以实现高效的 O-X-B 模式转换,频率为 16.5 GHz;Test 4.1: 使用 Test4 中计算得到的最优 OX 注入角度,继续追踪 EBW 在 NSTX 中的传播路径,直至发生 X-B 模式转换。 |
---|---|
输入文件 | genray.dat_GT_PoP2005_i_ox=1.1_updtd g113544.00325_mod (EQDSK 格式的磁平衡数据) |
运行时间 | Test4:约 9 秒 Test4.1:约 27 秒 |
验证方式 | Test 4: 对比根目录下的 ECcone_optimal.dat 和测试子目录 test4/ECcone_optimal.dat 文件内容,这两个文件应包含相同的最优发射锥角信息。Test 4.1: 使用 xdraw 查看 freqelec 图像(射线电子频率图)查看射线在 frqncy = 16.5 GHz 下,fpe(电子等离子体频率,曲线 0,绿色) fx1(X 模截止频率,曲线 8,紫色) fuh(上混杂频率,曲线 2,黄色)处的位置。这些位置表示波与等离子体共振相互作用的关键区域。 |
🔹 Test 5 & 5.1: ITER EC 基准测试(与 R. Prater 合作)
描述 | ITER 上标准(Test 5)和带 Westerhof-Tokman 方法 + 相对论色散模型(Test 5.1)的EC(电子回旋)加热测试案例。 |
---|---|
输入文件 | Test 5: genray.dat_CANONICAL_2004_ITER_TEST_one_ray g521022.01000 (EQDSK 数据)Test 5.1: genray.dat_id10iabsorp1 g521022.01000 (同 Test5) |
来源路径 | Test 5: bob5:/home/bobh/cql3d/genray/genray_cvs/code/inputs/ITER_CANONICAL_EC/one_ray Test 5.1: bob5:/home/bobh/cql3d/genray/genray_cvs/code/inputs/ITER_CANONICAL_EC/one_ray/tmp_id10.2/ |
运行时间 | Test5:约 1.7 秒 Test5.1(设置 id=10 和 iabsorp = 1 ):约 17.8 秒(来自 2016 CompX2 数据)(使用 Westerhof-Tokman 方法 + Mazzucato 色散关系) |
验证方式 | 进入子目录 test5/ 后,可以使用命令xdraw genr (查看射线追踪图像) 查看输出结果与历史文件 genray.bin_CANONICAL_2004_ITER_TEST_one_ray (Test 5)/ genray.bin_id10iabsorp1 (Test 5.1)。 |
🔹 Test 6: DIII-D 多锥多射线 ECH 测试
描述 | DIII-D 上多锥多射线电子回旋加热模拟。 |
---|---|
输入文件 | genray.dat_shot106270_multi_ray_multi_cone g106270.02500 |
运行时间 | 约 17.5 秒 |
验证方式 | 对比历史输出文件 genray.bin_shot106270 。 |
🔹 Test 7 & Test7_edge_dens_rz: C-Mod LH 边缘密度模型测试
描述 | C-Mod 上低混杂波(LH)传播测试,考虑 LCFS 外的指数密度下降。 |
---|---|
输入文件 | genray.in_CMod_LH_edge |
运行时间 | 约 17.4 秒 |
特殊功能 | 支持 i_edge_dens_rz_mesh=1 (生成模板文件dens_temp_rz_out.dat ,文件记录了等离子体密度与温度在 R-Z 平面上的分布,可用于构建任意的、具有环对称性的边缘密度分布)和 =2 (读入修改后的温度/密度分布dens_temp_rz_in.dat (也可将i_edge_dens_rz_mesh=1 生成的模板重命名为dens_temp_rz_in.dat )) |
验证方式 | 对比不同边缘密度模型下的射线轨迹。 |
🔹 Test7.mpi: 并行测试
描述 | 使用 MPI 并行加速运行 Test7。 |
---|---|
运行方法 | 1. 将 Test7 的文件放入子目录 ./test7.mpi 中。 2. 使用 MPI 并行运行,脚本为 edison_batchscript_mpi.slurm ,具体使用方式见该脚本说明。 |
运行时间 | 并行版:22.45 秒 串行版:58.2 秒 |
优势 | 并行化基于射线(ray-wise ),因此总运行时间取决于耗时最长的那条射线。 |
🔹 Test 8: ITER 近轴 ECCD 测试
描述 | 模拟 ITER 上近轴 ECCD(电子回旋电流驱动),并与 Prater 等人的实验论文(Nucl. Fus. 48 (2008) 035006,共11页)中的图12进行对比。此处的 Genray 结果是通过 ADJ-QL 代码 得到的。 |
---|---|
运行时间 | 含 ADJ 计算:21 分钟 不含 ADJ:13.5 秒 |
电流结果 | test 8: ADJ+动量守恒([/adj_nml/](#26. /adj_nml/ 伴随函数计算相关参数)段 i_adj=1 , i_calculate_or_read_adj_function=1 ):25.8 kA/MW关闭 ADJ 计算(设置 i_calculate_or_read_adj_function = 0 ,但 adjout/adjinp 文件消耗181MB空间)的情况:test 8.1/8.2: Lin-Liu 模型( ieffic=4 ):25.5(ieffic_mom_cons=1 ,即动量守恒)/13.0(ieffic_mom_cons=0 ,即动量不守恒) kA/MWtest 8.3: 高速近似模型( ieffic=3 , 即 Curba(Cohen)子程序(高速近似,方势阱 B 模型)):10.1 kA/MW |
结论 | 对于此类运行,test8.1 的设置(Lin-Liu 模型 + 动量守恒)是最优选择。 |
🔹 Test 9: LSC 类 QL 阻尼测试
描述 | 比较 Maxwellian 下的 LSC 类 QL 阻尼与线性阻尼,以及加入 LH 平台效应的影响。 |
---|---|
验证方式 | 对比 genray.bin_CMod_LH_edge_LSC (包含 LSC 类 QL 计算) 与 test7/genray.bin 的输出(之前测试中的结果)。观察 LH 平台对所有射线的阻尼抑制作用。 |
🧪 结果说明 | 单次运行生成了两组图像: 第一组图像显示基于 LSC 类选项计算出的 Maxwellian 下 QL 阻尼(在 xdraw genr 中可见),其结果与 Test7 中的线性阻尼非常接近。 第二组图像展示了开启 LH 平台效应后的 QL 阻尼结果。可以看到,所有射线的阻尼都因平台效应而降低。 |
测试目的 | 验证 GENRAY 中 QL 阻尼模型在加入 LH 波平台效应后的行为是否合理,特别是在边缘区域对波吸收的影响。 |
🔹 Test 10 & 10.1: EBW O-X-B 模式转换 CD 测试
描述 | 模拟 EBW 通过 O-X-B 模式转换后产生的电流驱动。 |
---|---|
关键设置 | 使用[/eccone/](#17. /eccone/ 定义ECR 波发射锥参数)的raypatt='diskdisk' 从圆盘发射射线。O-X 模式转换发生在 LCFS(最后闭合磁面)之外的 ω = ω p e ω = ω_{pe} ω=ωpe(电子等离子体频率)层。 新增选项 istep_in_lcfs=0 (LCFS 外部的密度采用指数下降分布):直接从 LCFS 外开始追踪射线。 |
参数解释 | istep_in_lcfs=0 的含义是:直接从射线起点 {rst, zst} 开始追踪射线,即使该点位于 LCFS 之外,直到遇到 ω = ω p e ω = ω_{pe} ω=ωpe 层为止。与默认设置 istep_in_lcfs=1 不同,在后者中,射线会沿着直线路径逐步进入 LCFS 内部才开始追踪。 |
对比方式 | 与 MAST 实验相关测试对比。 对应的 CQL3D 耦合测试用例的 test4,位于 cql3d/00_Cql3d_Regression_Tests/test4 。 |
测试目的 | 验证 Genray 是否能够准确模拟 EBW 在边缘区域通过 O-X-B 模式转换传播的过程,并评估其产生的电流驱动效果。 |
三、./00_Genray_Regression_Tests/ 文件分类
文件夹名 | 文件类型 | 描述 | 文件个数 | 文件名列表 |
---|---|---|---|---|
📂 draw_in | 输入配置文件 | 包含用于绘图或数据可视化的输入配置文件。这些文件定义了如何从数据生成图形或图像,包括绘图参数、样式设置等。使用 xdraw xxxx 命令生成的 drawxxxx.in 文件。 |
6 | drawdelpwr_lsc.in drawem.in drawfreqelec.in drawgenr.in drawonet1.in drawonet2.in |
📂 eqdsk_dat | eqdsk 数据文件 |
存储与等离子体平衡相关的eqdsk格式数据文件。这些文件可能包含等离子体形状、磁场分布等关键信息。 | 9 | eqdsk_MAST-like equilib.dat equilib.dat_EC_ITER_Central_CD equilib.dat_HPRT_test_case_061219 g1060728011.01100 g106270.02500 g113544.00325_mod g521022.01000 Scen4_bn2.57_129x129 |
📂 genray_bin | 二进制文件 | 包含与GENRAY程序相关的可执行文件或库文件,用于运行GENRAY模拟或其他相关计算任务。 | 27 | delpwr.bin_test9 dens.bin emis.bin_113544.00325_mod emis.bin_SS_Xmode_180_emission emis.bin_test1 emis.bin_test3 genray.bin_105830p193r1.bob genray.bin_113544.00325_mod genray.bin_CANONICAL_2004_ITER_TEST_one_ray genray.bin_CMod_LH_edge genray.bin_id10iabsorp1 genray.bin_shot106270 genray.bin_SS_Xmode_180_emission genray.bin_test1 genray.bin_test10 genray.bin_test2 genray.bin_test3 genray.bin_test4.1 genray.bin_test5 genray.bin_test5.1 genray.bin_test6 genray.bin_test7 genray.bin_test7_edge_dens_rz genray.bin_test9 onetwo1.bin_EC_ITER_Central_CD onetwo1.bin_test7 onetwo1.bin_test7.1 |
📂 genray_in/genray.dat | 输入文件 | 包含GENRAY程序的输入文件。这些文件定义了运行GENRAY模拟所必需的参数、边界条件、初始条件等。 | 24(16+8) | ECcone_optimal.dat ECcone_optimal.dat_test10.1 genray.dat_113544.00325_mod genray.dat_CANONICAL_2004_ITER_TEST_one_ray genray.dat_EC_ITER_Central_CD genray.dat_EC_ITER_Central_CD_ieffic3 genray.dat_EC_ITER_Central_CD_ieffic4 genray.dat_EC_ITER_Central_CD_ieffic4_mom_cons genray.dat_EC_ITER_Central_CD_ieffic6 genray.dat_GT_PoP2005_id6_i_ox2_090720 genray.dat_GT_PoP2005_i_ox=1.1 genray.dat_GT_PoP2005_i_ox=1.1_updtd genray.dat_HPRT_test_case_061219 genray.dat_id10iabsorp1 genray.dat_shot106270_multi_ray_multi_cone genray.dat_SS_Xmode_180_emission genray.in_CMod_LH_edge |
📂 plot_ps | PostScript (.ps )文件 |
由GENRAY模拟结果生成的PostScript格式的绘图文件(图表、图像) | 8 | cur_den_test7.ps EC_ITER_Central_CD.ps idl_105830p193r1.bob_GR030417.4_gr061120.ps pwr_den_test7.ps xdraw_em_SS_Xmode_180_emission.ps xdraw_genr_SS_Xmode_180_emission.ps xdraw_genr_test7_rays.pdf xdraw_genr_test7_rays.ps |
genray.in/genray.dat
见前文第一章。
3.1 drawxxxx.in
文件
执行 xdraw xxxx
命令时,将读 xxxx.bin
数据和 drawxxxx.in
的绘图配置参数。
# 1. drawdelpwr_lsc.in 文件(显示功率随极向距离变化)
Type (G=Graph, C=Contour): G
filename(s)
delpwr.bin
graph title: GENRAY
# 变量索引
variable names
0 power lsc # 局域源项功率(可能与局域吸收有关)
1 poloidal dist # 极向传播距离(沿磁力线方向的距离)
# 绘图指令
# 该部分定义了不同的绘图组合,包括X轴和Y轴的变量索引以及图形的标题
# 以极向距离为横轴,画出功率随极向距离的变化情况。
ix iy title
1 0 power(s)
# ---------------------------------------------------
# 2. drawem.in 文件(显示射线强度、吸收、温度等随径向变化)
Type (G=Graph, C=Contour): G
filename(s)
emis.bin
graph title: GENRAY
# 变量索引
variable names
0 R # 径向坐标(R)
1 Z # 垂直坐标(Z)
2 Phi #
3 distance #
4 al # 吸收系数
5 j # 波强度
6 N_ray # 射线编号
7 I_n_sn/ds # 沿路径的波强变化率
8 I_n(s=0)/ds # 初始位置的波强变化率
9 Temperature # 温度
10 Rad Temp (keV) # 辐射温度(单位 keV)
11 I(s) (cgs) # 强度 I(s)(CGS 单位)
12 tau_n # 光学厚度
13 I_n(0) # 初始强度
# 绘图指令
# 该部分定义了不同的绘图组合,包括X轴和Y轴的变量索引以及图形的标题
# 以 R 为横轴,分别画出各种物理量(如吸收系数、强度、温度等)随径向分布的变化情况。
ix iy title
0 7 "I_n_sn/ds“
0 8 dI(s=0)/ds
0 11 Intensity, I(s)
0 4 al
0 5 j
0 6 N_ray
0 12 tau_n
0 9 Temperature
0 10 Local Rad Temp(R)
# ---------------------------------------------------
# 3. drawfreqelec.in 文件(显示频率、密度、归一化半径等关系)
Type (G=Graph, C=Contour): G
filename(s)
freqelec.bin
graph title: GENRAY
# 变量索引
variable names
0 R[m] # 径向坐标(单位:米)
1 freqncy[GHz] # 频率(单位:GHz)
2 rho # 归一化半径(ρ = r/a)
3 dens_e 10^13/cm^3 # 电子密度(单位:1e13 / cm³)
# 绘图指令
# 该部分定义了不同的绘图组合,包括X轴和Y轴的变量索引以及图形的标题
# 主要展示频率相关参数、归一化半径和电子密度随径向的变化。
ix iy title
0 1 fpe[0],fce[1],fuh[2],2-6*fce[3-7],fx1[8],fx2[9]
0 2 rho(R)
0 3 dens_e(R)
# ---------------------------------------------------
# 4. drawgenr.in 文件(射线追踪数据可视化(轨迹、功率、折射率等))
# 指定绘图的类型。这里选择的是“Graph”,即图形,而不是等高线(Contour)。
Type (G=Graph, C=Contour): G
filename(s)
genray.bin
graph title: GENRAY
# 变量索引
variable names
0 R (cms) # 径向坐标
1 Z (cms) # 垂直方向坐标
2 X (cms) # X 轴坐标
3 Y (cms) # Y 轴坐标
4 Poloidal dist. (cms) # 极向传播距离(沿磁力线方向的距离)。量化波在极向方向上的传播距离,反映能量耗散或吸收的位置。
5 Power (ergs sec) # 波功率(单位为尔格每秒,1 erg = 1e-7 J)。表示射线在传播过程中携带的能量,直接关联波的能量传输效率(如加热或电流驱动效果)。
6 Ez E # 电场比值(Ez是电场的垂直分量,E是总电场模量)。用于分析波的极化特性(如O模或X模),对模式转换分析至关重要。
7 rho # 归一化半径(ρ = r/a,r是径向位置,a是等离子体半径)。表示相对位置,用于比较不同装置或实验条件下的结果。
8 n_parallel # 平行折射率(波矢量与磁场方向平行的折射率分量)。影响波的传播方向。
9 n_perp # 垂直折射率(波矢量与磁场方向垂直的折射率分量)。与波的横截面传播特性相关。
10 ki_poloidal (cms**-1) # 极向波数(波在极向方向上的空间频率)。描述波的空间周期性,与等离子体不均匀性相互作用(如波导模式)。
11 y_e # 电子密度扰动参数(可能与密度梯度或不均匀性相关)。
12 y_i # 离子密度扰动参数(类似电子密度扰动,但针对离子成分)。
# 绘图指令
# 该部分定义了不同的绘图组合,包括X轴和Y轴的变量索引以及图形的标题
ix iy title
0 1 z(r) # 展示等离子体在径向(R)和垂直方向(Z)上的几何轮廓(如等离子体边界或磁力线形状)。
2 3 y(x) # 展示波在笛卡尔坐标系中的传播路径(如射线轨迹或波场分布)。
4 5 power(poloidal dist.) # 显示波功率在传播过程中的衰减或吸收情况(如功率损失区域)。
4 6 Ez E(poloidal dist.) # 分析波的极化特性随传播距离的变化(如O模 X模转换)。
4 7 rho(poloidal dist.) # 展示波传播路径的径向位置变化(如是否进入高密度区域)。
4 8 n_parallel(poloidal dist) # 分析波矢量方向与磁场的耦合关系(如折射率突变导致的反射或模式转换)。
4 9 n_perpendic(poloidal dist) # 评估波的横截面传播特性(如色散效应)。
0 10 ki_poloidal(R) # 研究波的空间周期性与等离子体半径的关系(如波导效应)。
11 5 power(y_e) # 分析电子密度不均匀性对波功率分布的影响(如湍流散射效应)。
12 5 power(y_i) # 评估离子密度扰动对波传播的影响(如波吸收或反射)。
# ---------------------------------------------------
# 5. drawonet1.in / drawonet2.in 文件(分析功率密度、电流密度与归一化半径的关系)
Type (G=Graph, C=Contour): G
filename(s)
onetwo1.bin
graph title: GENRAY
#变量索引
variable names
0 rho # 归一化半径
1 power density (egr/s*cm**3) # 功率密度
2 power (egr/s) # 总功率
3 power_e density (egr/s*cm**3) # 电子阻尼引起的功率密度
4 power_i density (erg/s*cm**3) # 离子阻尼引起的功率密度
5 power_cl density (egr/s*cm**3) # 碰撞阻尼引起的功率密度
# 6~10 不同方向上的电流密度
6 current density parallel (A/cm**2)
7 current density onetwo (A/cm**2)
8 current density toroidal (A/cm**2)
9 current density poloidal (A/cm**2)
10 current density toroidal_LL (A/sm**2)
# 绘图指令
# 该部分定义了不同的绘图组合,包括X轴和Y轴的变量索引以及图形的标题
# 主要用于分析功率沉积、电流驱动等与归一化半径的关系。
ix iy title
0 1 power density erg/(s*cm**3)(rho)
0 3 power density(electron damping)
0 4 power density(ion damping)
0 5 power density(collisional damping)
0 6 parallel current density A/cm**2(rho)
0 7 onetwo current density A/cm**2(rho)
0 8 toroidal current density A/cm**2(rho)
0 9 poloidal current density A/cm**2(rho)
0 10 toroidal LL current density A/cm**2 (rho)
# 下为 6. drawonet2.in 文件的绘图指令
# 绘图指令
# 该部分定义了不同的绘图组合,包括X轴和Y轴的变量索引以及图形的标题
ix iy title
0 1 power density erg/(s*cm**3)(rho)
0 7 onetwo current density A/cm**2(rho)
3.2 equilib.dat
文件
EQDSK格式文件,提供磁平衡数据/磁场配置信息(常用名: equilib.dat
,或用 g+案例id+时间点
命名)。文件格式如下:
文件生成工具 时间 m m / d d / y y 实验编号或案例 i d 时间点 模式号 网格尺寸 ( n x × n y ) egin{array}{|c|c|c|c|c|c|} hlinehline {文件生成工具}&{时间mm/dd/yy}&{实验编号或案例 id}&{时间点}&{模式号}&{网格尺寸(nx imes ny)}\ hline hline end{array} 文件生成工具时间mm/dd/yy实验编号或案例 id时间点模式号网格尺寸(nx×ny)
文件生成工具:不同的前缀如pyEquilibrium
, EFITD
, 和 ITERB
表明了不同的生成工具或方法。
时间和日期:每个文件都记录了其生成的具体日期,这对于追踪历史数据特别有用。
运行编号或案例ID:如#------
, #113544
, #521022
,这些编号有助于识别和管理不同的模拟或实验结果。
时间点:如325ms
, 1000ms
,指示了所记录的数据对应于模拟开始后的具体时刻。
网格尺寸:65 × 65,101 × 101或129 × 129。
数据行:
数据类型 | 描述 |
---|---|
1.基本参数 | 磁轴位置、参考半径、参考磁场、总电流、边界极向通量等 |
2.网格坐标 | R 和 Z 方向的网格点坐标 |
3.极向通量 PSIRZ |
每个网格点上的极向通量值(构成一个二维数组) |
4.F 函数 FPOL |
F = R ⋅ B ϕ F=R·B_phi F=R⋅Bϕ,代表环向磁场乘以半径 |
5. 压力分布 PRES |
等离子体压强随极向通量的变化 |
6. 安全因子 QPSI |
安全因子随极向通量的变化 |
7. 边界和X点信息 | 描述等离子体边界的 R-Z 坐标及 X 点位置 |
✅ 示例文件:g113544.00325_mod
第一行数据说明:
EFITD 01/23/2002 #113544 325ms 3 65 65
EFITD
: EFIT 平衡拟合代码的一个版本。
#113544
: 实验编号(shot number)
325ms
: 时间点为 325 毫秒时的平衡状态
65 65
: 使用了 65 × 65 的网格点
暂无评论内容