用于流体模拟的交错网格的数据结构

问题描述

我一直使用 GPU Gems articlethis paper 作为在虚幻引擎中创建流体模拟器的参考。我已经能够实现 GPU Gems 文章中提到的所有主要功能,并尝试继续实现 MAC 交错网格,但我很难理解我将如何表示。

Visualization of a staggered grid:
.-- u -- . -- u -- .
|        |         |
u   p    u    p    u
|        |         |
.-- u -- . -- u -- .
|        |         |
u   p    u    p    u
|        |         |
.-- u -- . -- u -- .

我可以理解速度 u 是否放在角落里,因为在这种情况下,我可以通过 n+ 将速度保存在 n+1 中1 纹理和 n by n 纹理中的 p 压力。但是根据我对交错网格的理解,这不起作用,因为每行中 u数量不等。在链接论文的第 10 页的顶部,它提到将速度的每个分量存储在单独的数组中,其中一个维度比其余元素大一个元素,但我不明白这是如何工作的,也不明白我将如何使用它们对于我拥有的 computePressure() 或 minusPressureGradient() 函数(请参阅 GPU Gems 文章中的第 38-3 节)。如果您能帮助我克服这些障碍,我将不胜感激!

请注意,我无法访问流体动力学中的数值模拟:实用介绍,引用其中包含有关网格交错的更深入解释。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)