解决不可压缩的Navier-Stokes方程的最简单方法是什么?


9

“最简单的”是指从头开始学习和实施的最简单的方法。我希望我的问题或多或少能够得到回答。


1
什么几何形状?
Rhys Ulerich

@Rhys Ulerich我猜最简单的?
詹姆斯

@ user2697246具有统一初始条件的无限域?不重要的。这并不是要成为一个不屑一顾的问题。
Rhys Ulerich 2014年

1
要开始使用NS模拟,请查看以下内容:lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes
Subodh

Answers:


10

在两个维度上,速度-涡度公式化是最简单的实施方法,因为变量是并置的,但是边界条件可能很复杂,并且不是问题的直接陈述。对于原始变量公式,Harlow和Welch(1965)的交错网格有限差分法是一个很好的起点。


2
Pozrikidis给出了带有边界条件的对该算法的非常清晰的描述。
John Stockie 2013年

10

您可以在此处找到完整记录的非常简单但非常有效的解决方法(Chorin的拆分方法)的实现。

要选择其他流行的方法,请看本书第21章。

免责声明:我是演示程序和本书的共同作者。这本书可以免费下载。


5

最简单的总是与您的特定兴趣和需求相关。我同意安德斯(Anders)的观点,对于具有简单几何形状的区域上不可压缩的流动,如果同时兼顾易用性和准确性,您将很难击败投影方法(即Chorin的分裂方法)。

为了更详细一点,该方法是在[1]中介绍的问题。在[2]中很好地解释了更现代的二阶近似投影方法。这样做的动机是要求解完整的不可压缩的Navier-Stokes方程,需要同时求解速度场和压力,并且所得线性系统的状态相当恶劣。投影方法通过使用之前时间步长中的压力将每个时间步分为速度求解,然后进行压力更新,从而消除了这个问题,该压力更新实质上使速度场保持不可压缩。

要实现这一点,您将需要一些其他组件,但是可以很容易地学习和编程所有组件。

  1. 对于压力求解,假设您对恒定密度的系统感兴趣,则需要求解泊松方程。当然,有数十种算法可以解决此问题,但是到目前为止,最容易实现的算法(如果可能无法完全理解)是共轭梯度(CG)算法。我读过的关于CG的最好的解释之一是乔纳森•舒丘克(Jonathan Shewchuk)撰写的,可以在这里找到。当然,您不必阅读整篇文章,就可以简单地实现该算法。

  2. 您将需要另一种算法来处理Navier-Stokes中的对流项。在几个方面,对最灵活的方法(例如Godunov)的鲁棒性实现进行编程可能非常具有挑战性。但是,如果您对雷诺数相对适中的流量(即粘度不可忽略)感兴趣,那么从本质上来说,一种非振荡(ENO)方法很容易实现。[3]中对理论和实现都有很好的概述。

  3. 您需要使用隐式方法(通常是Crank-Nicolson)处理粘性项。投影方法文件中对此进行了详细说明,如果粘度恒定,则可以轻松地将CG用于基质求解。

[1] AJ Chorin,Navier-Stokes方程的数值解, J。Math 。计算(22)(1968),第745-762页。

[2] A. Almgren,JB Bell和W. Szymczak,基于近似投影的不可压缩Navier-Stokes方程的数值方法,SIAM J. Sci。计算 17(1996),第258-369页。

[3] S. Osher和R. Fedkiw,水平集方法和动态隐式曲面。纽约Springer-Verlag ,。应用数学科学,2002年,第153页


对于这个很好的答案,让我补充一点,是对(时间离散)投影方法中压力性质的最新了解,请参见:J.-G。Liu,J。Liu,RL Pego,关于不稳定的不可压缩粘性流的稳定且精确的压力逼近,J。Comp。物理 229(2010)3428-3453。
Bob Pego

4

近年来,计算机图形学和游戏对流体模拟的兴趣激增。 是Jos Stam的一篇出色论文,讨论了实时应用求解器的实现。它带有非常容易理解的源代码。我不知道它的准确性如何,但这可能正是您想要的。


1

另一个非常好的简单方法是使用元胞自动机进行离散化。有很多这样的模型,包括LBA,FHP等。这些功能非常好,因为它们可以在现代计算机上提供实时仿真,还可以很好地并行化并在GPU上运行。它们也有一些缺点,其结果在很大程度上取决于所施加晶格的形状。正方形晶格不足,因为它缺乏旋转自由度,也就是说,von kaarman涡旋将变成正方形,这是不好的:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.