这对我来说是正确的,我研究了一维的代数并确认了它。但似乎没有人提到它,所以也许我错过了一些东西......
我正在使用 Bridson 的SIGGRAPH 2007 course notes。[5MB pdf],p。21(pdf 中的第 33 页)。
半拉格朗日:反推速度场,找到最终会出现在这里的“粒子” (),然后线性插值得到那个粒子的值(压力或其他),这将成为这里的值()。
在这里,我假设速度(向右)和(所以粒子的先前位置位于区间内)。
反推:
插:
逆风欧拉 选择前向或后向欧拉,取决于信息来自的方向,即“逆风”。这是稳定的,我的速度限制。
重复使用上述速度限制(向右;在一个时间步中移动小于一个单元格宽度)。
这与上面的半拉格朗日相同。(我不会在这里介绍所有代数,但我首先将半拉格朗日展开为一行并使用)。
它们也相同,只需使用右侧的单元格,即和代替和.
半拉格朗日平流允许跳跃多个细胞(我用速度限制排除了它),唯一的区别似乎是通过确定粒子所在的细胞间隔来处理速度方向。
我错过了什么?也许高阶“半拉格朗日”方案与逆风方案不对应?
或者,有时跳跃多个单元格非常有用?(就我而言,无论如何我都需要速度限制)。
我更喜欢逆风欧拉,因为它更容易计算,不太复杂,更容易理解。但我之前因“改进”计划而陷入困境:我的信心超出了我的能力。所以我这次检查。