SVM
Spectral Volume Method (SVM)
Spectral Volume Method (SVM) 是一种高阶数值计算方法,主要用于求解偏微分方程(PDEs),例如流体力学中的守恒律方程. SVM 是一种基于有限体积法(Finite Volume Method, FVM)的高精度方法,同时结合了谱方法的思想.
核心思想
SVM 将计算域划分为多个控制体积(control volumes),每个控制体积再进一步划分为多个子单元(subcells). 在每个控制体积内,解函数以一组高阶多项式表示,其系数通过光谱逼近的方式进行确定。这种局部高阶近似可以显著提高计算精度.
工作原理
1. 域划分:
- 将计算区域分割为多个不重叠的光谱体积(Spectral Volumes, SVs)
- 它可以是规则的形状(如正方形或三角形),也可以是不规则形状,取决于计算域的划分
- 每个光谱体积进一步划分为若干个子单元(subcells)
- 子单元用于采样解的值,以构建光谱逼近的高阶多项式
2. 局部多项式逼近:
- 在每个光谱体积内,用一个高阶多项式来表示解函数. 这种多项式能够捕捉局部解的变化
- 多项式的系数通过拟合子单元上的解值来确定,从而保证局部的高阶逼近
- 构造的多项式 P(x) 是解函数 u(x) 在光谱体积内的高阶逼近
a. 多项式表示
- 假设解函数 u(x) 在光谱体积 Ω 内可以用一个高阶多项式 P(x) 来表示
- $\phi_i(x)$是一组基函数(通常选择正交多项式,如 Legendre 多项式或 Chebyshev 多项式)
- $a_i$ 是待确定的多项式系数
- M 是多项式的阶数,与子单元数 N 相关
b. 子单元上的解值采样
在每个子单元 $\Omega_j$,定义某种方式采样解值
- 直接使用子单元中心或其他特定点的解值 $u_j$
- 或者在子单元内计算解的加权平均值 $\bar{u}_j$
其中 $ | \Omega_j | $ 是子单元 $\Omega_j$ 的体积 |
c. 拟合高阶多项式
利用子单元上的解值,构造多项式 P(x) 的系数 $a_i$
- 通过 插值法:
- 确保多项式 P(x) 在子单元采样点上与解值 uj 一致,即满足以下方程组:
- 根据采样点的数量和多项式阶数,利用线性代数方法(如 Lagrange 插值或 Vandermonde 矩阵)求解 $a_i$
- 通过 最小二乘拟合法:
- 如果采样点数量超过多项式阶数,可以使用最小二乘方法拟合多项式系数:
- 通过 积分法(正交点拟合):
- 使用数值积分方法(如 Gaussian Quadrature)在子单元内计算积分
通过这一方式得到 $a_i$ 系数
3. 守恒律的离散化 / 数值通量计算
- 在每个子单元上计算守恒量的通量,并利用数值通量函数(例如 Roe 通量或 Lax-Friedrichs 通量)处理相邻体积间的交界面
- 在光谱体积的边界上计算数值通量,用于与相邻体积进行信息交换
- 光谱体积之间的通量计算确保了整体解的守恒性
- 时间推进可以使用显式或隐式方法,如 Runge-Kutta 方法
Enjoy Reading This Article?
Here are some more articles you might like to read next: