VEQ 手册 固定边界平衡位形
产品中心 ← 返回工作台

固定边界 / 参数化建模

VEQ 手册:先建立可比较的案例,再讨论物理含义

VEQ 用参数化的固定边界模型快速生成 Grad–Shafranov 平衡、磁通面和剖面。本手册把 VEQ Studio 的界面解释为一个有限维参数化 PDE 求解器,而不是一组彼此独立的输入框:先讲模型在数学上"求什么",再讲字段、操作与诊断判读。

阅读目标:读完后,应能沿着下面的因果链解释 VEQ 的输入、求解和输出:

固定 LCFS 与源项
        |
        v
MXH 边界值 + 径向 Chebyshev 拓扑
        |
        v
内部系数打包为未知向量 x
        |
        v
AᵀWg(x) = 0 的非线性投影系统
        |
        v
求解状态、投影残差、逐点诊断与几何诊断

本手册重点回答一个常见但容易混淆的问题:"LCFS 角映射系数"与"内部 profile 优化系数数量"有什么联系,又为什么它们绝不是同一种参数?


第一部分:用途与模型原理

1. 用途与边界

1.1 适合回答的问题

1.2 不能由 VEQ 单独回答

判读原则:"已收敛"表示本次数值迭代满足其收敛条件;"平衡方程一致性"描述网格上的方程残余。两者都不是实验真实性或工程可行性的证明。


2. VEQ 究竟在求什么?

2.1 固定边界 Grad–Shafranov 问题

在轴对称近似下,托卡马克横截面上的平衡可写为 Grad–Shafranov(GS)方程

$$ \Delta^*\psi \equiv R\frac{\partial}{\partial R} \left(\frac{1}{R}\frac{\partial\psi}{\partial R}\right) +\frac{\partial^2\psi}{\partial Z^2} = -\mu_0 R J_\phi(R,Z;\psi). $$

这里 $(R,Z)$ 是截面的柱坐标,$\psi$ 是极向磁通函数。右端的电流密度通常由关于磁通的若干一维源 profile 构成,因此这是一个带特定非线性结构的椭圆型 PDE。

VEQ 处理的是固定边界版本:最外层闭合磁面(last closed flux surface, LCFS)的形状先给定;求解器在这个边界内寻找嵌套磁面与通量 profile,使它们满足平衡关系。可以把任务概括为:

给定 LCFS 的几何形状和源项描述,寻找一族内部磁面及其 profile,使得到的二维构型与 GS 平衡相容。

2.2 传统离散的未知量与 VEQ 的未知量

若直接在 $(R,Z)$ 网格上离散,未知量自然是很多节点上的 $\psi$ 值;非线性迭代围绕一个高维离散场进行。VEQ 采用不同的未知量选择:先假定内部存在一族可由紧凑参数描述的嵌套磁面,再把未知量限制为这族表示中的内部径向 profile 系数

这不是说几何被固定不动。相反,源项或输入边界改变时,求解器仍会找到另一组系数,内部磁面也会随之改变。所谓"紧凑"是指:

因此,问题的关键变成:怎样选一套既能保持 LCFS、又能以少量系数描述内部磁面的参数化?


3. 紧凑表示:MXH 角映射加径向 Chebyshev profile

3.1 从物理平面到磁面坐标

VEQ 使用 $(\rho,\theta)$ 描述嵌套磁面:

在这种组织下,磁通面上的 $\psi$ 只随径向标签变化,而二维几何的复杂性被放入 $R(\rho,\theta)$、$Z(\rho,\theta)$ 的参数化中。VEQ 的紧凑性来自对这张映射的结构化选择。

3.2 MXH:展开畸变角,不直接展开边界坐标

首先定义畸变极向角

$$ \bar\theta(\rho,\theta) = \theta+c_0(\rho) +\sum_{m=1}^{M}c_m(\rho)\cos(m\theta) +\sum_{n=1}^{N}s_n(\rho)\sin(n\theta). $$

再以它构造磁面:

$$ R(\rho,\theta) =R_0+a\left[h(\rho)+\rho\cos\bar\theta(\rho,\theta)\right], $$

$$ Z(\rho,\theta) =Z_0+a\left[v(\rho)-\rho\kappa(\rho)\sin\theta\right]. $$

其中 $R_0,Z_0,a$ 是 LCFS 参数化所用的参考中心和长度尺度;$h,v,\kappa,c_m,s_n$ 是随 $\rho$ 演化的 profile。注意 $Z$ 式中的负号:它遵循当前 VEQ/VEQPy 参数化的极向角约定,不能随意替换为正号。

这解释了一个术语问题。$c_m,s_n$ 虽然乘在 $\cos(m\theta),\sin(n\theta)$ 上,数学形式上属于三角展开,但它们不应被产品语义地称为"直接 Fourier 边界坐标系数":

直观地说,直接 Fourier 表示是在一张不动的坐标纸上叠加许多波形来画曲线;MXH 则先扭曲角坐标,再在扭曲后的坐标中画一个简单的基准形状。它改变的是展开的对象,而不仅是"少用了几个 Fourier 项"。

3.3 径向 Chebyshev:把固定边界写进基函数

所有径向 profile 都使用以 $\rho^2$ 为变量的移位 Chebyshev 基。令

$$ \xi=2\rho^2-1, \qquad \nu_l(\rho)=(1-\rho^2)T_l(\xi), $$

其中 $T_l$ 是第一类 Chebyshev 多项式。最重要的性质是

$$ \nu_l(1)=0. $$

也就是说,任意由 $\nu_l$ 组成的内部修正项在 LCFS 自动消失。典型 profile 可写成

$$ f(\rho)=f_a+\sum_{l=0}^{N_f-1} f_l\nu_l(\rho), $$

其中 $f_a$ 是边界 offset,$N_f$ 是该 profile 所使用的内部系数数量。于是无论 $f_l$ 如何变化,始终有 $f(1)=f_a$。

真实的 MXH family 还加入了各自的边界与轴正则结构。例如

$$ h(\rho)=(1-\rho^2)\sum_l h_lT_l(\xi), \qquad v(\rho)=(1-\rho^2)\sum_l v_lT_l(\xi), $$

$$ \kappa(\rho)=\kappa_a+(1-\rho^2)\sum_l\kappa_lT_l(\xi), $$

$$ c_m(\rho)=\rho^{K_m} \left[c_{ma}+(1-\rho^2)\sum_lc_{ml}T_l(\xi)\right], \qquad s_n(\rho)=\rho^{K_n} \left[s_{na}+(1-\rho^2)\sum_ls_{nl}T_l(\xi)\right] \quad(m,n\ge1). $$

其中 $c_{ma},s_{na}$ 是 imposed LCFS values;$\rho^{K_m},\rho^{K_n}$ 使高阶谐波向磁轴规则衰减。当前 VEQ 的默认正则幂取 $K_m=m,K_n=n$。

这套构造带来两件对理解网页十分重要的事:

  1. 内部系数不能改动 LCFS。因子 $(1-\rho^2)$ 已经把这一点编码进表示。
  2. "没有内部系数"不等于"该 profile 处处为零"。如果 profile 有边界 offset,例如 $\kappa_a,c_{ma},s_{na}$,即使不让它拥有可优化的内部修正,它仍保留由 offset 和正则延拓确定的基线。

关于 count 与论文记号:网站的 count 是系数向量长度 $N_f$,对应 $l=0,\ldots,N_f-1$。若论文用 $L_f$ 表示最高多项式编号,则 $N_f=L_f+1$。因此 count 不是"多项式的最高阶数"。

3.4 十七条径向 profile

径向 profile 是一个以 $\rho\in[0,1]$ 为自变量的一维函数,描述某个几何量从磁轴($\rho=0$)到 LCFS($\rho=1$)的连续变化。$\rho$ 是径向标签——它不是物理长度,而是标记"你正在看哪一层嵌套磁面"。VEQ 不是直接离散二维 $(R,Z)$ 平面上的几万个网格点,而是把整个等离子体截面表示为一族嵌套闭合曲线;要画出整族曲线,需要知道每个 $\rho$ 处的曲线形状——这正是径向 profile 的作用。

磁面构造公式中共有 17 个径向 profile,每个都是 $\rho$ 的函数:

Profile含义控制什么
$h(\rho)$径向偏移整族磁面在 $R$ 方向的整体平移随 $\rho$ 的变化
$v(\rho)$垂直偏移整族磁面在 $Z$ 方向的整体平移随 $\rho$ 的变化
$\kappa(\rho)$拉长比截面在 $Z$ 方向被拉伸的程度随 $\rho$ 的变化
$c_0(\rho)$零阶角偏移极向角映射的基准相位随 $\rho$ 的变化
$c_m(\rho)$,$m=1,\dots,6$余弦角映射第 $m$ 阶极向角扭曲随 $\rho$ 的变化
$s_n(\rho)$,$n=1,\dots,6$正弦角映射第 $n$ 阶极向角扭曲随 $\rho$ 的变化
psin$(\rho)$通量-标签映射归一化极向磁通 $\hat\psi$ 与 $\rho$ 之间的单调映射

具体例子:$\kappa(\rho)$。假设 LCFS 的拉长比 $\kappa_a = 2.0$,即 $\kappa(1)=2.0$ 是固定的。如果 $\kappa(\rho)$ 从磁轴到边界一直等于 $2.0$,所有内部磁面的拉长比都和边界相同;如果 $\kappa(\rho)$ 在磁轴附近接近 $1.0$,然后向外逐渐增大到 $2.0$,说明截面从中心的近圆形逐渐被拉长。$\kappa(\rho)$ 这条曲线就描述了这种"从圆到椭圆"的过渡方式——它是一条完整的函数,不是单个数字。


4. 一个表示,两个参数层:边界值与内部拓扑

VEQ Studio 的核心输入设计可以从上面的公式直接推出。它将参数分成两类,因为它们在数学上承担的角色不同。

4.1 第一层:LCFS MXH 角映射系数是边界

界面中的 c0ac6as0as6a 是 $\rho=1$ 上的浮点边界数据,单位为 rad。a 表示 LCFS 处的实际值,例如

$$ \bar\theta(1,\theta) =\theta+c_{0a} +\sum_{m=1}^{6}c_{ma}\cos(m\theta) +\sum_{n=1}^{6}s_{na}\sin(n\theta). $$

在 $h(1)=v(1)=0$ 的约定下,LCFS 简化为

$$ R_{\rm lcfs}(\theta)=R_0+a\cos\bar\theta(1,\theta), \qquad Z_{\rm lcfs}(\theta)=Z_0-a\kappa_a\sin\theta. $$

因此这些输入是固定边界条件:它们在一次非线性求解中不会作为内部未知量被改写。服务端将其传入 Boundary(c_offsets, s_offsets)。有七个余弦槽和七个正弦槽;但 s0a 固定为零,因为 $\sin(0\theta)=0$,它没有可表示的几何作用。

4.2 第二层:内部 profile count 是模型拓扑

界面中的 Nh、Nv、Nκ、Nc0–Nc6、Ns1–Ns6(导入/导出 JSON 中对应的键为 hvkc0c6s1s6)与隐藏但必需的 psin 都是整数 count。它们不填某个系数的数值,而是回答:

"这个径向 profile 要分配几个可优化的 Chebyshev 系数?"

一条函数曲线包含无穷多个点。VEQ 用 Chebyshev 展开将每条 profile 压缩为有限个系数(见第 3.3 节):

$$ f(\rho) = f_a + \sum_{l=0}^{N_f-1} f_l \cdot \underbrace{(1-\rho^2)\,T_l(2\rho^2-1)}_{\nu_l(\rho)}. $$

这里 $f_a$ 是 $\rho=1$ 处的固定边界值(来自 LCFS 输入区),$f_0, f_1, \dots, f_{N_f-1}$ 是 $N_f$ 个可优化的 Chebyshev 系数,$(1-\rho^2)$ 因子使所有内部修正在边界自动归零。count 就是 $N_f$——用来表示这条曲线的可调系数个数。

以 $\kappa$ 为例,若 Nκ = 4(Compact 预设):边界值 $\kappa_a$ 来自基本几何输入,是固定的;内部变化由 $\kappa_0, \kappa_1, \kappa_2, \kappa_3$ 四个系数描述;求解器在非线性迭代中寻找这四个数的最优值。若 Nκ = 0:$\kappa(\rho)$ 没有任何可优化的内部系数,整条曲线退化为仅由边界值和轴正则规则决定的基线延拓——用户不能主动调整它。

"count = 0"不是"该 profile 处处为零"。$h$ 和 $v$ 的边界 offset 本身就是零($h(1)=v(1)=0$),所以 count = 0 意味着 $h(\rho)\equiv 0$、$v(\rho)\equiv 0$。但 $\kappa$ 不同——即使 Nκ = 0,$\kappa(1)=\kappa_a$ 仍然存在,内部磁面仍有一条非平凡的 $\kappa(\rho)$ 基线,只是这条基线不由用户通过 count 控制,而是由表示家族的正则延拓自动确定。

完整物理图像:

         rho = 1 (LCFS, boundary fixed)
    +-------------------------------------
    |  kappa(1) = kappa_a  <-- from basic geometry
    |  c_m(1) = c_{ma}    <-- from LCFS angular mapping coefficients
    |  s_n(1) = s_{na}    <-- from LCFS angular mapping coefficients
    |  h(1) = v(1) = 0    <-- by representation convention
    |
    |  <-- interior: Chebyshev coefficients of each profile
    |      optimized during solve, cannot change rho=1 values
    |
    rho = 0 (magnetic axis)

换个说法:LCFS 区定义了每条曲线的右端点值;count 区决定每条曲线在到达右端点之前,允许用几个"调节旋钮"来改变它的内部走向。

回到实现层面——若某 profile 的 count 为 $N_f>0$,服务端创建一个长度为 $N_f$、初值为零的系数数组;这些元素会进入非线性未知向量并在求解中更新。若 count 为零,服务端构造 Profile(coeff=None),它成为 passive profile:没有可调的内部修正系数,也不占未知向量(packed vector)的位置。这是一种拓扑或模型复杂度选择,而不是对某个物理量的直接赋值。一个最有用的类比是:

4.3 两层的联系与区别

维度LCFS MXH 映射系数内部 profile 优化系数数量
数学对象边界调和系数的径向 Chebyshev 系数的数量
界面例子c2a=-0.1, s1a=0.52c2=2, s1=3
数据类型浮点数,单位 rad整数
作用位置固定在 $\rho=1$决定 $0\le\rho<1$ 的可调修正空间
求解角色固定输入,不进入未知向量元参数,决定未知向量的块和长度
求解后原值应由 provenance 回显count 不变;同名内部系数的值被求解

因此,s1a=0.52s1=3 虽然名字相似,却回答两个完全不同的问题:前者说"LCFS 的一阶正弦角映射值是多少",后者说"内部 $s_1(\rho)$ profile 允许用几个系数调整"。混淆它们,就像把"多项式系数是 0.52"与"多项式保留 3 个未知系数"混为一谈。

4.4 为什么 hv 没有 LCFS 输入,而 s0 也没有内部 count?

由第 3 节公式可知 $h(1)=v(1)=0$。LCFS 的平移基准已经由 $R_0,Z_0$ 与 $R_0+a\cos\bar\theta$ 的边界定义承担,因此 $h,v$ 只描述内部磁面的径向/垂直偏移,网站只为它们提供内部 count。相反,$\kappa,c_m,s_n$ 可以同时有边界 offset 和内部修正:k 的边界值来自基本几何输入中的 $\kappa_a$;c0ac6as1as6a 给定 MXH family 的边界值;无 s0 count,因为这一 sine mode 在恒等式上为零。

4.5 count 的现实约束和预设

当前 Studio 对 17 个 profile 使用以下约束:

三个预设的 packed count 为:

预设active profilepacked count
Compactpsin(4), h(2), k(4), s1(2)12
Standardpsin(6), h(3), k(6), s1(3)18
Full全部 17 个 profile 按当前预设启用36

Standard 与 VEQPy 的 minimal_equilibrium 示例一致:除 psin 外还给 $h,\kappa,s_1$ 分配内部系数,使内部磁面能形成 Shafranov 位移和径向形状演化;其余 profile 没有可调内部修正,但带有边界 offset 的 $\kappa$、$c/s$ family 仍按其基线与轴正则规则延拓。


5. δ 与 s1a:一个输入如何跨越多个语义层

delta/s1a 是最适合展示上述分层的例子。它包含至少四种不应混为一谈的量:

用户几何输入 delta
        |
        | delta mode: s1a = asin(delta)
        v
有效 LCFS MXH 系数 s1a
        |
        | 与其他 c/s 边界项共同定义映射;内部 profile 另行求解
        v
求解得到的内部 Chebyshev 系数
        |
        | 后处理实际磁面
        v
诊断量 delta_top, delta_bottom, delta_average

5.1 两种界面模式

这个关系只是在简化 Miller-like 情形下的方便转换:当其他 LCFS $c/s$ harmonics 不起作用时,可以把 $\delta$ 与 $s_{1a}$ 联系起来。它不是在一般高阶 MXH 边界下都成立的几何恒等式。特别是,当高阶谐波非零时,由最终磁面极值计算的 delta_topdelta_bottomdelta_average 可以与起初输入的 delta 不同。

5.2 COO 文件拟合的实际边界

网页允许导入 COO 格式离散边界点。此功能完全在浏览器中执行:它在给定 $R_0,Z_0,a,\kappa$ 的条件下,用 Gauss–Newton 型迭代拟合 7 个 $c$ 与 6 个非零阶 $s$,随后切换为 explicit 模式。当前前端的目标函数针对 $R$ 坐标残差构造,最多迭代 10 次,并以小对角正则化求解正规方程。

因此它应理解为"将上传曲线转换为当前 MXH 边界输入的一种本地便利工具",而不是完整的二维边界反演,也不是对 GS 平衡精度的独立认证。坐标文件不会被发送到后端。


6. 从表单到有限维非线性系统

6.1 打包未知量:count 如何决定方程维数

用户提交 JSON 时,LCFS 系数作为边界数组进入 Boundary,而 topology counts 决定哪些 Profile 是 active。所有 active profile 的内部 Chebyshev 系数顺次拼成

$$ \mathbf{x}\in\mathbb{R}^{n}, \qquad n=\sum_f N_f, $$

其中 $n$ 正是 provenance 中的 packed_count。在每次残差评估中,求解器大致执行:

  1. 将 $\mathbf{x}$ 解包成各 profile 的 Chebyshev 系数;
  2. 在求解网格上评价 profile、二维几何、度量和源项;
  3. 组装变换后的 GS 残差密度;
  4. 将残差投影回 $n$ 个测试方向。

可以用下图理解数据流:

form payload
    -> validated topology counts
    -> Boundary offsets + active/passive Profiles
    -> Problem(route="PF", coordinate="psin")
    -> Operator on solve grid
    -> Solver for packed vector x
    -> solution, provenance, residual and shape diagnostics

前端还会比较请求的 topology/boundary 与响应中的 provenance;不一致的响应不会被当作当前输入的结果接受。

6.2 Petrov–Galerkin 投影:为什么会得到方形系统

设求解网格有 $N$ 个采样点,把每个点上的变换残差密度堆叠为 $\mathbf{g}(\mathbf{x})\in\mathbb{R}^{N}$。VEQ 的主问题不是要求每个采样点都满足 $\mathbf{g}=0$,而是构造测试矩阵 $A\in\mathbb{R}^{N\times n}$ 和积分权重 $W$,求解

$$ \boxed{A^T W\mathbf{g}(\mathbf{x})=0.} $$

即 Petrov–Galerkin 投影方程 AᵀWg = 0。结果是 $n$ 个非线性方程对应 $n$ 个 packed unknowns。拓扑 count 因而不只是页面上的"高级设置":它同时改变

6.3 全文最重要的残差区分

必须把下式当作解释结果的底线:

$$ \boxed{A^T W\mathbf{g}=0\ \not\Rightarrow\ \mathbf{g}=0.} $$

线性代数上,投影条件只说明 $\mathbf{g}$ 在 $A$ 的测试子空间中的加权分量为零;在其正交补中的分量并没有被这个条件直接约束。因此:

Studio 输出的逐点一致性诊断使用

$$ G_{\rm std}=\frac{R}{J}G, $$

其中 $G$ 是变换残差密度,$J$ 是坐标映射的 Jacobian。磁轴处坐标退化,故该统计会排除磁轴行,并只使用有限且 Jacobian 非零的样本。它是 VEQPy 内部归一化的诊断量,不应直接当成与其他代码可无条件比较的物理单位误差。


第二部分:使用指南

7. 快速使用:先从可运行基线开始

本节只回答"怎样操作工作台"。字段背后的数学含义已在第一部分说明,避免把操作步骤与模型定义混在一起。

  1. 选择预设案例。从页面顶部选择 D 形演示或紧凑托卡马克,先确认边界预览、单位与量级符合预期。
  2. 采用 Standard 拓扑作为基线。展开"高级参数拓扑",初次使用建议保留 Standard:它与 VEQPy 示例一致,内部磁面能形成 Shafranov 位移和径向形状演化。
  3. 一次只改变一类变量。先锁定边界几何,再改变 Iₚ、压力份额或峰化;每个基线都保存输入 JSON,避免把多种变化混在一次比较中。
  4. 运行并依次查看结果。先确认磁通面闭合、平滑且无自交;再看压力、q、环向电流和形状剖面;最后结合收敛状态与逐点诊断。
  5. 保留可复现证据。保存输入参数;仅在收敛后使用"查看报告"生成带有效输入、图表、诊断与时间戳的独立 HTML 报告。

7.1 最小比较单元

一次只记录一个明确问题,例如"在不变 LCFS 下提高 αₚ 的影响"。同时保存输入 JSON、版本/provenance、收敛状态与报告。

7.2 不要跳过的检查

绿色状态之后仍应检查有效 LCFS 数组、s1 模式、active profiles、packed count、磁面图和强形式误差空间图。


8. 参数与界面参考

本节是操作字段参考;"LCFS 值"和"内部 count"在界面中相邻,但属于不同层次,不能互相替代(见第 4 节)。

组别关键输入操作含义与提示
基本几何R₀ [m]、a [m]、Z₀ [m]、B₀ [T]、κ、δR₀、a 设定位形尺度,Z₀ 是垂直偏移,κ 是拉长比。通常先通过 κ 和 δ 调整基础截面;高阶形状留给确认需要时再使用。
LCFS 映射c0a–c6a、s0a–s6a [rad]MXH 畸变极向角映射的边界系数。s0a 固定为 0。它们定义最外层曲线,不能用下方 N_c/N_s 来"设置"其值。
s1a 来源几何 δ 或显式 s1aδ 模式以 s1a=asin(δ) 构造简化边界;显式模式以用户输入 s1a 为有效值,δ 不参与求解或 LCFS 预览。
COO 边界每行 R Z 或 R,Z浏览器本地拟合离散 LCFS(16–10,000 点、≤2 MB),最多 10 次 Gauss–Newton 迭代;拟合后转为显式 s1a 模式。坐标不会发送到后端。
源项与约束Iₚ [MA]、压力份额、αₚ、αᶠ、质量档峰化指数越大,profile 通常越偏芯。先在同一质量档、同一基线下扫参;Interactive 适合快速探索,标准档用更细网格进行复核。
内部拓扑N_psin、N_h、N_v、N_κ、N_cm、N_sn整数 count 选择每个内部径向 profile 的可调 Chebyshev 系数数量。0 表示该 profile 没有可调系数:曲线仍参与平衡计算,内部形状保持基线;count 不是该物理量的数值,也不改变 LCFS 系数。

8.1 选择内部自由度

策略预设适合的第一步
默认基线Standard(与 VEQPy 示例一致)h/κ/s1 分配了可调系数,内部磁面才有 Shafranov 位移和径向形状演化。
适度调整Compact:N_psin=4、N_h=2、N_κ=4、N_s1=2允许内部径向偏移、拉长和一阶 shaping 的径向演化。
最大灵活Full:17 个 profile,packed count=36需要更高表示自由度时;求解时间和不收敛风险都会增加。

调整 count 的经验法则:若误差集中在芯部,先考察 N_psin;若 κ(ψₙ) 的径向形态不符合目标,再考察 N_κ;边缘误差也可能来自边界截断、源项或网格,不能机械地持续增加 N_cm/N_sn。每增加一个 count 都会增大 packed vector。


9. 结果、保存与报告

9.1 建议的查看顺序

provenance:核对有效边界数组、s1_mode、active profiles 与 packed count;求解状态:确认投影系统是否收敛;磁通面:检查闭合、平滑、无自交;剖面:在模型假设与目标工况下阅读压力、q、jφ 以及 κ/δavg/ΔR 的径向演化。

9.2 保存、加载与报告

"保存输入参数"导出边界、源项和拓扑 JSON;"加载输入参数"恢复该基线。收敛后,"查看报告"会打开独立 HTML,包含提交与有效输入、求解摘要、图表、警告、方程一致性诊断、规则型数值提示和 Markdown 导出。

关于 δ:δ 模式中的输入 δ 不必等于结果中的 delta_top、delta_bottom 或 delta_average。后者是由实际磁面极值后处理得到;高阶 LCFS harmonics 非零时,这种差异是预期现象。


第三部分:诊断与判读

10. 把"完成"与"可信"分开阅读

HTTP 成功、存在结果、求解器收敛、投影残差小、逐点一致性良好、几何满足任务目标,是不同层次的事实。它们必须并列检查。将返回结果分为几个层次更安全:

  1. HTTP 请求成功:服务接受并处理了请求,不等于数学求解成功。
  2. 存在结果与诊断:即便求解器未报告完全收敛,服务器仍可能返回有限状态和诊断,前端会显示警告。
  3. solver success / convergence:指定的有限维求解过程满足其返回判据。完整报告受 isConverged() 门禁控制。
  4. 表示和物理适用性:还需要综合查看投影残差、逐点强形式统计、磁面几何、profile 与 warning,判断当前 topology 是否足够表达所需平衡。

10.1 诊断指标

指标定义或计算方式应如何使用
残差范数(projected_residual_norm)求解器内部有限维投影方程的收敛残差。判断迭代状态;小值不自动意味着截面每一点的误差都小。
平衡方程一致性在有效求解网格计算逐点诊断 e=(R/J)G;等价实现中也记作 G_std=(R/J)G。它采用 VEQPy 内部归一化,并非 SI 量。用于同类案例之间的比较和误差定位,不能用作跨模型的绝对物理阈值。
整体 RMS / 最大误差sqrt(mean(e²)) / max(|e|),在有效样本上计算。RMS 概括典型幅度;最大值揭示可能被平均掩盖的局部峰值。
芯部 / 边缘 RMS分别在 ψₙ<0.8 与 ψₙ≥0.8 计算 RMS。ψₙ=0.8 是诊断分界,不是新物理边界;用来判断误差主要落点。
空间分解e_source=(R/J)α₁Gₙ₁;e_geometry=(R/J)α₂Gₙ₂;e_total=e_source+e_geometry。通过总项、源项和几何项的正负及相消关系定位数值现象,不直接判定物理可接受性。
未平衡比例总误差 RMS /(源项贡献 RMS + 几何贡献 RMS)。比例低表示两个较大分量抵消更强;不是通过/失败评分。
shape_diagnosticsκ、delta_top、delta_bottom、delta_average、Shafranov shift 等由实际磁面计算的量。不要将输入 δ 自动当作输出几何诊断的 delta_average。

10.2 当前服务的求解与采样层次

当前 Studio 服务使用 SciPy hybr 作为主变分求解方法;VEQPy 的默认配置允许在主方法失败时尝试 LM fallback。因此不应把每个返回结果都简化描述为"HYBRD 成功"。服务有两类网格:

用途Interactive非 interactive 质量档
solve grid16×1624×24
plot grid64×12896×192

求解网格用于主残差与汇总强形式诊断;较细的绘图网格用于展示磁面、profile 和空间误差场。服务返回 $\hat\psi=0.1,\ldots,1.0$ 的十条磁面,并在空间图中把误差组织为 total = source + geometry。空间图的磁轴正则化行不参与绘图,蓝色为负、红色为正,色标按当前分量绝对值第 95 百分位对称缩放。

10.3 推荐的阅读顺序

面对一次结果,建议按下面顺序判断,而不是只看一个绿色状态或一个很小的数:

  1. 先核对 provenance。有效 c/s 数组是否正是自己提交的边界?delta 模式是否确实转换成预期 s1a?topology 与 packed count 是否符合预期?
  2. 再看求解状态和 projected residual。它们回答"选定的有限维投影问题是否被求解器良好处理"。
  3. 查看强形式与空间诊断。它们回答"未被投影条件直接控制的逐点残差在何处较大"。
  4. 查看几何与 profile。尤其不要将输入 δ 自动当作输出几何诊断的 delta_average。
  5. 最后做任务相关判断。若要更细的内部形变,可增加对应 profile count;若增加后强形式/几何诊断仍不理想,需要判断是表示截断、源项设定、坐标可容许性,还是求解失败,而不是只把 count 继续调大。

11. 用三个小例子串起输入和输出

11.1 例 1:Standard topology

Standard 预设为 psin(6), h(3), k(6), s1(3),packed vector 共 18 个分量,其余 count 全为零。此时:

11.2 例 2:Compact topology

Compact preset 使用 psin(4), h(2), k(4), s1(2),所以 packed count 为 12。这意味着除了径向通量映射外,求解器还可调:

但这些修正因 $(1-\rho^2)$ 在 LCFS 消失,不能推翻已给定的 LCFS 值。

11.3 例 3:显式 s1a 与高阶边界 harmonics

切换到 explicit 模式,直接输入 s1a,并设定某些高阶 c/s 边界项。此时:

这正是边界值、内部自由度、适配层派生值和诊断输出必须分开理解的原因。


12. 常见问题与下一步

现象可能原因建议操作
求解器不收敛参数组合不适合当前表示,或一次改变太多变量。先用 D 形演示确认流程;从 Standard 基线开始,每次只改一项,并检查求解警告。
packed count 超限手动设置的 count 总和超过 64。减少部分 profile 的 count;以 Full 预设的 36 作为复杂度参考,而不是盲目接近上限。
磁通面交叉或扭曲内部自由度过高、边界/源项不兼容,或求解未可靠收敛。退回 Standard 或 Compact;确认边界预览,再逐项增加自由度。
输入 δ 与 delta_average 不同高阶 LCFS c/s 系数改变实际磁面极值。检查高阶系数;若需要直接控制角映射,改用显式 s1a。不要把该差异自动视为错误。
COO 拟合 RMS 较大R₀、Z₀、a、κ 与坐标文件的基础尺度不匹配,或曲线不适合当前截断。先由坐标估算基础几何后重试;拟合仅是转换为当前 MXH 输入的本地便利工具,不是完整边界反演。
加载后结果不同输入版本不兼容、后端版本变化或 provenance 不匹配。确认使用同一 VEQ Studio 版本;保存报告并核对 provenance 中的版本、边界、模式和 topology。

13. 总结:四条可迁移的计算数学原则

  1. 将边界条件编码进表示。$(1-\rho^2)$ 使内部修正在 $\rho=1$ 消失,因此固定 LCFS 不依赖于迭代时反复强加。
  2. 将 topology 与 coefficient values 分开。count 是离散模型选择;真正的 Chebyshev 系数是连续未知量;LCFS MXH 系数则是固定边界数据。
  3. 区分弱/投影条件与逐点强形式。$A^TWg=0$ 是所选有限维问题的方程,不能替代对 $G_{\rm std}$ 的检查。
  4. 把诊断当作解释工具,而不是单一证书。HTTP 成功、solver convergence、projected residual 小、强形式残差可接受、几何满足目标,是不同层次的事实。

如果只记住一句话:VEQ Studio 上方的 LCFS MXH 输入定义"边界长什么样";下方的内部 profile counts 决定"允许用多少个内部自由度去求解它";求解后的 residual 与 shape diagnostics 则回答"这种有限表示是否足以支撑当前结论"。


14. 理论与建模参考

界面字段、报告指标和本手册以当前 VEQ 实现为准;以下文献提供 Grad–Shafranov 平衡、托卡马克平衡、参数化位形和实验重建的理论背景。引用或比较结果时,应同时写明边界条件、归一化、topology 与数值假设。

  1. Grad, H.; Rubin, H. Hydromagnetic Equilibria and Force-Free Fields. Proceedings of the 2nd United Nations International Conference on the Peaceful Uses of Atomic Energy, 1958, Vol. 31, pp. 190–197.
  2. Shafranov, V. D. Plasma Equilibrium in a Magnetic Field. Reviews of Plasma Physics, Vol. 2, 1966, pp. 103–151.
  3. Freidberg, J. P. Ideal MHD. Cambridge University Press, 2014. Chapters on axisymmetric equilibrium and stability.
  4. Wesson, J. Tokamaks. 4th ed., Oxford University Press, 2011. Chapters 3–4.
  5. Lao, L. L. et al. "Reconstruction of Current Profile Parameters and Plasma Shapes in Tokamaks." Nuclear Fusion 25 (1985): 1611–1622. DOI: 10.1088/0029-5515/25/11/007.
  6. Miller, R. L. et al. "Noncircular, Finite Aspect Ratio, Local Equilibrium Model." Physics of Plasmas 5 (1998): 973–978. DOI: 10.1063/1.872666.
  7. Arseniev, A. A.; Bateev, S. V.; Kornev, V. A. "Equilibrium Configuration of Tokamaks." Plasma Physics and Controlled Fusion 40 (1998): 1045–1056. DOI: 10.1088/0741-3335/40/9/002.
  8. Lu, H. et al. "A Generalized Miller Equilibrium Model for Tokamak Plasma." Physics of Plasmas 31 (2024).
  9. Zhang et al. VEQ: a fast parametric Grad–Shafranov solver. arXiv:2606.11821 (2026).
  10. Xie & Li. What Is the Minimum Number of Parameters Required to Represent Solutions of the Grad–Shafranov Equation? arXiv:2601.02942 (2026).

实现层面的对应代码:products/veq-studio/veq_service/topology.pysolver_adapter.pyweb/veq.js