论文部分内容阅读
翻涌的流水,缭绕的烟雾,摇曳的烛火,这些都是人们平时眼熟能详的流体现象。但是流体的运动机理较为复杂,若要在计算机上模拟流体的运动并呈现其精美的视觉效果,最有效的手段就是追溯流体的物理本源,去求解控制流动系统的物理模型——纳维-斯托克斯方程。然而,单纯的求解控制方程并不能得到令人满意的结果,因为任何流体都不能隔离对待,它会与各种环境介质彼此影响,所以正确的求解需要在控制方程的基础上设计满足要求的算法模型。此外,精良的视觉效果要求精度较高的解,这些目标要依靠有效的细节策略来辅助达成。
在基于物理的流体模拟这个研究方向上,本文对几个相关问题进行了深入的研究与探讨,给出了有效的解决方案,旨在对几种流体与环境介质的耦合现象进行数学建模,并以此为依据设计高效可行的数值方法来解算流场以得到稳定、收敛且保持精度的结果,同时结合精良的细节策略来为流体的渲染过程提供细致、可信赖的数据。
本文的研究工作是基于欧拉流体框架的,在此之上提出了几种算法来改进模拟的效率与效果。本文的主要贡献有几下几个方面:
在求解对流方程时,为了增强无粘流关键区域的细节并保持全局的求解效率,本文设计了一种适应性锐化流场的FLIP/SLA混合模型。该算法模型的核心思想是在细节密集的流域内以FLIP方式来抑制数值耗散,同时在其他区域以半拉格朗日的方式进行高效率的对流。在算法的具体实现中,本文制定了精致的区域速度场融合机制及并提出了一种新的插值模板OB-box,达到了在不同对流方式的区域间以尖锐的方式交换信息的目的,在降低关键区域数值耗散的同时保证了全局的计算效率。
在求解流体的压力方程时,本文通过设计等价泛函模型的方法来隐式处理各种边界条件,解决了两大类问题。第一,针对无粘流Dirichlet边界条件与Neumann边界条件的处理,本文先利用两个等价模型有效修正了固体边界处的体素化错误和自由边界处的压力跳变。接着,为了正确模拟液体与气体之间的两相耦合作用,本文将等价模型与幽灵流体方法相结合,通过求解变系数的泊松方程来解算液体和其自由表面外部的一定带宽的气体流场,实现了对自由界面拓扑特征有重要影响的张力效果。第二,为了模拟粘性流体丰富的形变过程,本文通过一种等价的能量模型将耗散过程与投影过程耦合入一个线性系统中,使粘性项以全隐式的离散形式解算,同时使最终的速度场既保持无散性,又满足了对粘性形变至关重要的零应力条件,从而避免了显式近似该边界应力条件而导致的精度损失。该算法可以模拟蜷曲、翻滚、盘绕等粘性形变,并有效地支持可变粘性。
为了进一步提高压力方程求解的精度,本文提出一种将Neumann边界条件嵌入到泊松系统的投影算法。该方法基于有限体积法和守恒律的理论基础,在不改变之前算法框架的前提上,通过给散度算子的简单加权实现了近二阶精度的压力求解。该方法可以充分体现子网格信息,使流体可以在小于网格单元的狭窄路径中正确流动。接着,基于这种改进的算法本文实现了有效的二路流-固耦合的模拟,即通过使用修改梯度算子矩阵的方法保持流体和刚体系统的动量守恒。接着,本文将该投影算法扩展到了非结构化网格上,在针对八叉树网格时,通过改进压力梯度的离散方式实现了二阶精度的压力求解,并给出了基于八叉树的更简单高效的二路流-固耦合算法。在针对泰森多边形网格时,本文基于自由界面的拓扑特征来分布压力采样,以精确解析液体表面的稀薄细节。此外,在自由界面追踪与重构的问题上,本文提出了一种半隐式算法。该算法根据界面的显式描述来动态生成八叉树网格并进行精确的几何计算;而在更新界面时使用隐式描述,通过结合半拉格朗日对流与辅助粒子的方式求解LevelSet方程来完成这一过程,从而避免了显式界面面临的复杂拓扑问题。
针对每种算法,本文都给出了实验结果来证明算法的特性和优势,并根据模拟的效果和运行效率对算法的有效性、稳定性、收敛精度等方面作出了细致的分析,同时也指出了算法的局限性和下一步的改进策略。