跳转至

谱与物理导向指标

这些指标用于判断代理模型是否保留重要物理结构,而不仅仅是降低逐点误差。

谱相对误差

设 \(\mathcal F\) 为空间 Fourier 变换:

\[ E_{\mathrm{spec}}= \frac{\|\,|\mathcal F(\hat y)|-|\mathcal F(y)|\,\|_2} {\|\,|\mathcal F(y)|\,\|_2+\varepsilon}. \]

它衡量整体 Fourier 幅值差异,但不能定位具体频段中的误差。

分频段谱 MSE

对波数区间 \(B\):

\[ \mathrm{SMSE}(B)= \frac{1}{N} \sum_{\boldsymbol\omega\in B} \left|\mathcal F(\hat y-y)(\boldsymbol\omega)\right|^2. \]

NAVIER-CFD 默认使用正交归一化 FFT 和径向低/中/高频段。当所有频段覆盖完整频谱时,其总和在数值精度范围内等于空间域 MSE。

Fourier RMSE(fRMSE)

按照 RealPDEBench 的解释,变换可以同时包含时间和空间。对频段 \(B\):

\[ \mathrm{fRMSE}(B)= \sqrt{ \frac{1}{K|B|} \sum_{k=1}^{K} \sum_{\boldsymbol\omega\in B} \left\|\hat{\mathbf Y}_k(\boldsymbol\omega)-\mathbf Y_k(\boldsymbol\omega)\right\|_2^2 }. \]
  • 分别报告低频、中频和高频误差;
  • 越低越好,\(0\) 为理想值;
  • 必须记录 FFT 轴、归一化方式和频段边界。

时间频率误差

定义空间积分后的时间信号:

\[ s_k(t)=\sum_i y_k(t,\mathbf x_i). \]

则:

\[ \mathrm{FE}= \frac{1}{KT} \sum_{k=1}^{K} \sum_{\omega} \left| \mathcal F_t(s_k)(\omega)- \mathcal F_t(\hat s_k)(\omega) \right|. \]

FE 适用于涡脱落、周期反应器以及其他振荡动力学。

散度误差

对速度 \(\mathbf u=(u_1,\ldots,u_d)\):

\[ \nabla\cdot\mathbf u= \sum_{j=1}^{d}\frac{\partial u_j}{\partial x_j}, \qquad D_{\mathrm{RMS}}= \sqrt{\mathbb E[(\nabla\cdot\mathbf u)^2]}. \]

NAVIER-CFD 报告:

\[ E_{\mathrm{div}}= \left|D_{\mathrm{RMS}}(\hat{\mathbf u})- D_{\mathrm{RMS}}(\mathbf u)\right|. \]

该指标需要速度通道和网格间距信息,不能替代局部散度场或离散守恒检查。

动能相对误差

恒密度流动:

\[ e_k=\frac{1}{2}\sum_{j=1}^{d}u_j^2. \]

变密度流动:

\[ e_k=\frac{1}{2}\rho\sum_{j=1}^{d}u_j^2. \]

相对误差为:

\[ E_{\mathrm{KE}}= \frac{\|\hat e_k-e_k\|_2}{\|e_k\|_2+\varepsilon}. \]

湍动能误差

二维速度脉动的湍动能:

\[ k=\frac{1}{2} \left( \overline{(u-\bar u)^2}+ \overline{(v-\bar v)^2} \right). \]

NAVIER-CFD 计算预测与真实脉动动能场之间的平均绝对误差,对应 RealPDEBench 的长期统计一致性思想。

平均速度剖面误差

在探针点 \(\mathbf x_j\) 上:

\[ \mathrm{MVPE}= \frac{1}{KN_p} \sum_{k=1}^{K}\sum_{j=1}^{N_p} \left| \bar u_k(\mathbf x_j)- \bar{\hat u}_k(\mathbf x_j) \right|. \]

如果没有给出探针,NAVIER-CFD 可以对非剖面方向进行平均并比较完整平均剖面。必须报告剖面轴和探针坐标。

涡量 RMSE

二维流动中:

\[ \omega=\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y}, \qquad E_\omega= \sqrt{\mathbb E[(\hat\omega-\omega)^2]}. \]

该指标对梯度和小尺度旋转结构较为敏感。

必需上下文

context = MetricContext(
    time_axis=1,
    spatial_axes=(2, 3),
    channel_axis=-1,
    velocity_channels=(0, 1),
    spacing=(dx, dy),
    profile_axis=2,
    evaluation_space="physical",
)

当输入信息不足时,指标返回 valid=False 和原因,而不会生成没有物理意义的数值。