数值抛物型方程的间断有限元方法
间断有限元方法是求解偏微分方程的一类重要数值方法,它结合了有限元法和有限体积法的思想。与传统的连续有限元法不同,间断有限元法允许在单元边界上解函数存在间断,并通过数值通量来耦合相邻单元。这种方法特别适合处理具有间断解或复杂区域的问题。
1. 基本思想:从连续到间断
传统的有限元法要求解在单元边界上是连续的,这限制了其处理强间断(如激波)的能力。间断有限元法放弃了这一连续性要求,在每个单元上独立地构造局部近似解(通常是多项式),这些局部解在单元边界上可以不连续。为了保持整体解的正确物理行为,单元间的信息交换通过引入“数值通量”来实现,该通量是相邻单元边界值的函数,其设计依赖于原偏微分方程的性质。
2. 方法构建:以一维模型方程为例
考虑一个简单的一维线性抛物型方程作为模型:
\[ u_t + a u_x = \nu u_{xx}, \quad x \in [L, R], t > 0 \]
其中 \(a\) 是常数(对流速度),\(\nu > 0\) 是常数(扩散系数)。
-
步骤一:区域离散与局部近似
将计算区域 \([L, R]\) 划分为 \(N\) 个单元 \(I_j = [x_{j-1/2}, x_{j+1/2}]\), \(j=1,...,N\)。在每个单元 \(I_j\) 上,我们寻求解的局部近似 \(u_h(x,t)\),它属于某个有限维函数空间(通常是次数不超过 \(k\) 的多项式空间 \(P^k(I_j)\))。 -
步骤二:弱形式推导
将模型方程在单元 \(I_j\) 上乘以一个光滑的试验函数 \(v(x)\)(通常与近似解属于同一空间),并积分:
\[ \int_{I_j} (u_t + a u_x - \nu u_{xx}) v \, dx = 0 \]
对高阶导数项 \(-\nu u_{xx} v\) 进行分部积分两次(这是为了降低对解光滑性的要求,并自然引入边界项):
\[ \int_{I_j} u_t v \, dx + \int_{I_j} a u_x v \, dx + \int_{I_j} \nu u_x v_x \, dx - [\nu u_x v]_{x_{j-1/2}}^{x_{j+1/2}} = 0 \]
由于 \(u_h\) 在单元边界处可能间断,项如 \(u_x\), \(u\) 在边界上的值是不明确的。因此,我们用“数值通量”来替代这些边界值。
- 步骤三:引入数值通量
我们用 \(\hat{f}(u_h^-, u_h^+)\) 表示对流项 \(a u\) 在边界上的数值通量,用 \(\hat{g}(u_h^-, (\nabla u_h)^-, u_h^+, (\nabla u_h)^+)\) 表示扩散项 \(-\nu u_x\) 在边界上的数值通量。上标 “-” 和 “+” 分别表示从当前单元内部和相邻单元外部趋近边界得到的值。
常用的对流数值通量有迎风通量、Lax-Friedrichs通量等。对于扩散项,常用的有交替通量或内惩罚通量。经过替换,我们得到单元 \(I_j\) 上的离散方程:
\[ \int_{I_j} (u_h)_t v \, dx + \int_{I_j} a (u_h)_x v \, dx + \int_{I_j} \nu (u_h)_x v_x \, dx + [\hat{f}(u_h^-, u_h^+) v]_{x_{j-1/2}}^{x_{j+1/2}} - [\hat{g} v]_{x_{j-1/2}}^{x_{j+1/2}} = 0 \]
这个方程定义了每个单元上的局部解如何随时间演化,并通过数值通量与邻居耦合。
3. 核心特点与优势
- 局部性:每个单元上的计算主要依赖于自身和直接邻居的信息,这使得方法具有高度的并行性。
- 高精度:通过提高局部多项式的次数 \(k\),可以轻松实现高阶精度。
- 灵活性:易于处理复杂几何区域(通过非结构网格)和具有间断解的问题。
- hp-自适应:可以方便地结合 h-自适应(加密网格)和 p-自适应(改变局部多项式次数)策略。
4. 时间离散化
空间离散后,我们得到一组关于时间的常微分方程组。通常采用强稳定性保持的龙格-库塔方法进行时间积分,以保证计算的稳定性,特别是对于对流占优的问题。
5. 应用
间断有限元法被广泛应用于计算流体力学、波传播、等离子体物理等领域,特别是对于同时包含对流和扩散效应的抛物型或对流扩散方程,它能有效平衡激波捕捉的锐利性和光滑区域的高精度。