Jos Stam 的稳定流体——为什么时间步长乘以网格单元的数量?

计算科学 流体动力学 时间积分
2021-12-20 04:39:15

关于Jos Stam 关于稳定流体的 GDC 教程的另一个问题:在第 8 页的平流步骤中,每个维度的时间步长被实现为dt * N,其中N是网格的高度或宽度。这对应于位置更新:

xprev=xΔthvx

在哪里h=1/N.

但为什么是h参与速度的回溯?我以为时间演化只是由x=xprev+Δtvx不涉及网格大小。

1个回答

Stam 的代码以这样一种方式编写,即单元中心的坐标对应于整数。这样,粒子结束的单元格可以很容易地通过四舍五入确定(例如 i0 = (int)x;)同样,回溯的起点简单地由 (i,j) 给出(参见例如 x = i - dt0 * u [IX(i,j)])。因此,计算问题被缩放,使得计算更简单/更容易理解。