我正在使用涡旋粒子/“涡旋”进行2D流体模拟,如《视频游戏的流体模拟》中所述。我认为与“离散涡旋法”相同。基本上,您用定义好的涡度的粒子集合来表示流体,并使用比奥特-萨伐定律(例如:,其中p2-p1是在样本点和vorton之间位置的差,瓦特是涡(在三维的矢量),和- [R是vorton和采样点之间的欧几里德距离) 。
我试图在流体中引入一个盒子,让它来回移动并影响流体。这意味着要考虑盒子的防滑和不贯通边界条件。(也就是说,在盒子的边界处,相对流体速度为0)。
现在,我正在采样盒子和流体在盒子周围80个点的相对速度。我还在盒子周围放置了80个vorton,但向外偏移了一点。我形成一个大矩阵,并求解涡度所需的涡度值,以抵消采样点处的流体速度(使用线性最小二乘法)。
这几乎可行,但是我注意到,我得到的解决方案高度依赖于采样点和涡流的确切布局。
有时,我会得到交替旋转的方向不同的沃尔顿模式(蓝色点是逆时针旋转的沃尔顿,红色点是顺时针旋转的沃尔顿):
其他时候,我将所有vorton放在框的左侧以一种方式旋转,而所有vorton则以另一种方式旋转,如该图所示:
我认为第二张照片是我真正想要的。我还认为这两种不同的解决方案意味着我正在使用的方程组太受约束。添加其他采样点有时会有所帮助,有时却没有帮助。
我是否可以添加其他边界条件以帮助我获得所需的结果?凭直觉,我没有采取任何措施来考虑在距包装盒一定距离处流体受到多大的干扰。我在想也许我可以添加边界层限制的条件。但是我不确定到底会是什么样。
另外,我是否可以参考任何相关文献来研究基于涡旋粒子的流体模拟如何处理这类边界条件?