使用迭代求解器的稳态和瞬态二维热方程

计算科学 有限差分 迭代法
2021-12-02 02:27:17

使用 Jacobi、Gauss seidel、SOR 等迭代求解器求解稳态和瞬态的二维热方程。答案是否应该,我的意思是 2D 表面上温度轮廓的收敛结果是否相同?

由于使用某些时间步长来解决瞬态以达到稳态。那么这是否意味着我在瞬态收敛后的结果应该等于我在稳态中得到的结果?

1个回答

如果你求解瞬态热方程

utk2u=0

很长一段时间,然后你求解泊松方程

k2u=0

在相同的边界条件下,您应该得到大致相同的结果但是我们必须定义什么是“非常长”的时间。

您可以将时间相关问题的解决方案写为

u(t)=kekλntϕn,u(0)ϕn+u()

在哪里ϕn,λn是域上拉普拉斯算子的特征函数和特征值,u(0)是初始值,并且u()是稳态值。对于 0 阶,您只关心最小的特征模态,因为所有其他特征模态衰减得更快。如果R是你可以在域内内接的最大圆的半径,那么

λ1π2/R2.

(请参阅这些注释,这是 Cheeger 不等式的结果。)所以如果π2kt/R2大于 5 或​​ 10,您应该非常接近稳定状态。

现在,您提到了 Jacobi、Gauss-Seidel 和 SOR 方法。这些迭代方法最终会收敛到线性系统的实际解。 但它们本身的速度是出了名的慢,对于最小的本征模,它们的收敛速度最慢 ϕ1,当您正在寻找放松到稳定状态时,这是最重要的一个。所以如果你发现你的数值解u(t)u()即使对于大t,它实际上可能是使用缓慢收敛的迭代方法的结果。在那种情况下,我会考虑使用稀疏直接求解器。