Visual Simulation of Smoke 笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012685679/article/details/82757619

有了上一篇的详细分析后,这里其实没有太多的新东西,主要是提出了温度的影响,加了两个力,提出mac网格,提出共轭梯度法求解。大概列一下

一、力

1、浮力与重力

烟雾会由于重力下沉,由于浮力上升,对于这两个力本文建立了一个模型,令:

α、β是正常量,z是向上的单位向量( 0 , 0 , 1 ),Tamb是空气温度。顺带一提,这里的温度场也遵循advection流动。

2、旋转力

另一个力是控制旋涡,在本文之前有一些方法是随机地添加一个无散度的速度场来制造一些细节,刚好看过一个图拿过来:

本文研究的是物理正确的细节。首先旋度 w = ∇ × u,单位化向量 η= ∇ |w|,N = η / |η|,最后

其中 ε>0 ,控制细节的数量;h是离散化体元(cell)的间距。最后在算NS方程的时候吧这两个力加进去即可。

二、占用体

类似上一篇的情况,之前是把标量和矢量场都放在网格中心,现在把标量放中心,矢量放在cell的每个边界面的中心,减少数值耗散。这就是mac网格。

讨论流体时,模拟空间内可能存在一些障碍物,与这些障碍物相交的cell被标记为占用。这里分别讨论一些情况:

1、advection:对于水平对流来说,可能有时候会让流体进入到占用体里,那么就采用半拉格朗日法同样的线性回溯到占用体的外表面。

2、边界状态:边界也是类似,对于占用体,其速度等于障碍物速度,温度等于障碍物温度,密度显然等于0,这里讨论的是流体的密度。对于其边界,密度取与之最近的一个未占用cell的密度,以免密度突变为0。

三、共轭梯度法

上一篇是用高斯-赛德尔迭代来求解泊松方程,这里换个更好的方法,先贴个过程后面再慢慢研究。说完了。

猜你喜欢

转载自blog.csdn.net/u012685679/article/details/82757619