流场加速收敛论文


Extrapolation-Based Acceleration of Iterative Solvers: Application to Simulation of 3D Flows

要做什么

  1. 获得一个新的初始状态($u{ap}$),让解算器可以加速收敛。(如果初始状态与精确解越接近,越容易收敛);传统的做法是把上一个时间步的解作为初始状态($u{n}$),可以计算$u{n+1}$的近似解,如果|$u{ap}$ - $u{n}$| 远小于 |$u{n}$ - $u_{n}$|,可以大大减少迭代次数。
  2. 论文使用了两个方法来获取这个新的初始状态: POD和谱方法

方法1 POD

总结:用过去的几个时间步数据及模态来预测下一个时间步的数据;也就是外推一步

这篇论文里面提到的pod可以称为时间相关pod,与传统的pod有些区别,先简单说下两者的区别:
传统POD:

  • 主要关注于空间上的数据降维。
  • 通过构造协方差矩阵并提取其主要成分,找到数据集的主要变异方向。
  • 适用于静态数据集或单一时间点的数据分析。

时间相关POD:

  • 不仅处理空间上的降维,还考虑时间维度的变化。
  • 构造关联矩阵不仅基于空间关系,还包括时间序列的动态特性。
  • 特别适用于连续时间步的数据,如流体动力学中的流场数据,其中状态随时间变化。
  • 引入外推技术(${\boldsymbol{\beta}}_{k}$),以预测未来状态。

下面讲解下步骤:

步骤1: 构建关联矩阵C
在时间相关的POD中,首先需要构建一个称为关联矩阵(或协方差矩阵)的结构。这个矩阵是通过计算不同时间步之间的状态向量的内积来构建的。

$C(t,t^{\prime})=\int_{\Omega}{\bf u}(t,{\bf x}){\bf u}(t^{\prime},{\bf x})d{\bf x}$

假设你正在分析一个流体的流动,其中 $u(t,x)$ 代表在时间t和空间x的速度场,如果有5个连续时间步的数据$t_n$, $t_{n-1}$, $\ldots$, $t_{n-4}$ , 关联矩阵 C 将是一个 5x5 矩阵,其中每个元素$C_(i,j)$是时间步 $t^{n+1-i}$ 和 $t^{n+1-j}$ 之间的积分内积。

构建关联矩阵的方法能够有效降低计算负担。比如原始矩阵是M N, 那么关联矩阵就是 N N。如果空间维度M远大于时间步数N,那马就会显著减少计算成本

步骤2: 计算特征值和特征向量

$\int_{T}C(t,t^{\prime})a_{q}(t^{\prime})d t^{\prime}=\lambda_{q}a_{q}(t)$

继续使用流体流动的例子,我们求解关联矩阵 C 的特征值和特征向量。特征值 $\lambda_{q}$ 越大,对应的特征向量 $a_{q}(t)$ 描述的流动模式越重要。选择最大的几个特征值及其对应的特征向量进行下一步分析。

步骤3: 时间系数外推

$a_{q}(t^{n+1})=\sum_{k=0}^{Q_{R}-1}\beta_{k}a_{q}(t^{n-k})$

$\beta_{k}$为外推系数

q=1,…, $Q_R$

如果你决定使用前三个主要模式( $Q_R$ =3)来预测下一个时间步的流动状态,你会根据历史数据中的这些模式的活动来计算 $a_{q}(t^{n+1})$ 。

$a_{q}(t^{n+1})$ 表示过去K个时间步的第q模态的时间系数。
每个时间系数 $a_{q}(t^{n+1})$ 对应一个特定的模态 $\Psi_{q}({\bf x})$。这个系数描述了该模态随时间的变化。当提到步骤3的时候,我们应该明确每个系数的计算都是独立进行的,针对每一个q。

而$Q_R$就是保留的模态(特征向量)。既可以选择数量(具有最大特征值的前$Q_R$个模态)或者可以通过一个阈值(如某个能量百分比或特征值大小)来动态确定。

q的变化就是从1到$Q_R$

步骤4: 计算近似解

${\bf u}_{a p}=\sum_{q=1}^{Q_{R}}a_{q}(t^{n+1})\Psi_{q}({\bf x})$

其中:$\Psi_{q}({\bf x})=\int_{T}a_{q}(t){\bf u}(t,{\bf x})d t$

最终的流体流动的近似速度场将通过将时间系数
$a_{q}(t^{n+1})$ 乘以对应的空间模态 ​$\Psi_{q}({\bf x})$ 来构建,这些模态是从特征向量 $a_{q}(t^{n})$ 派生的。

疑问

  1. 整体流程不清楚。优化的过程是只调用一次,还是调用多次,即更新一个初始状态还是多个

INITIAL GUESSES FOR SEQUENCES OF LINEAR SYSTEMS IN A GPU-ACCELERATED INCOMPRESSIBLE FLOW SOLVER

文章做了什么

迭代求解线性系统时,initial guesses可以在gpu加速的解算器中实现

提出了基于稳定多项式外推法的新初始猜测方法,并于Fischer的投影法相比,存储只需要一半,执行更少的数据移动和通信。

背景知识

  • 产生initial guesses的两个方法:
    • 合并前几个时间步的解,形成一个更好的initial guesses。带入当前时间步的线性系统,最小化残差的范数(Fishcher)
    • 多项式外推。

AI-enhanced iterative solvers for accelerating the solution of large-scale parametrized systems

  • 做的什么方向
    • 构建高效的数值求解器
  • 做了什么事情
    • 使用标准有限元方法进行一组简化的模型评估,并使用相应的解决方案,使用深度前馈神经网络和卷积自编码器的组合建立从问题的参数空间到其解空间的近似映射。这种映射的成本忽略不计,而且精度比较高
    • 基于代数多重网格法结合本征正交分解( POD )开发了迭代求解器POD - 2G,将代理模型的初始预测逐次精化到精确解。
  • 解决了什么问题

    • 传统方法可能需要较高的计算资源,占用较高的内存;神经网络推理出来的解不满足任何物理规律
  • 创新点出发

    • 将传统方法和神经网络的优势结合起来,用机器学习算法来增强线性代数求解器;例如,POD已成功地用于截断增广的Krylov子空间,仅保留高能量模式63,以有效地求解具有右端变化和对称正定矩阵特征的线性方程组序列。

Mode Multigrid - A novel convergence acceleration method

《非结构网格高阶数值格式与加速收敛方法》

这篇论文是上面这篇博士论文里面的内容,实验部分都是一样的。

  • 做的什么方向
    • 流场加速收敛
  • 解决了什么问题

    • 多重网格在非结构网格上面因为非结构网格随机存储的原因,难以实现,而且不便并行计算。
  • 方法步骤

    • 收集流场快照,进行DMD分解,然后重构流场(论文没直接说预测外推,只说了结合向量外插类方法,那么认为是重构的未来一个时间步的流场)。然后基于重构的结果续算,达到加速收敛的目的。DMD的公式步骤和代码实现可以看博客。

Improved Mode Multigrid Method for Accelerating Turbulence Flows

这篇论文是在上一篇论文《Mode Multigrid - A novel convergence acceleration method》的基础上进行调整的,实验的对比对象也是上一篇论文提到的方法

  • 做的什么方向
    • 流场加速收敛
  • 解决了什么问题

    • 消除模态多重网格方法(上一篇论文提出的)出现的不规则残差跳跃问题
  • 方法步骤

    • 在DMD重构的时候,保留“零频移动模态”(zero-frequency shift modes),可以加速收敛

文章作者: Jason Lin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 reprint policy. If reproduced, please indicate source Jason Lin !
  目录