论文摘要
耐维-斯托克斯(Navier-Stokes)方程是早在18世纪就已经发展完善起来的一套对流体行为进行精确建模的偏微分方程组,描述了流体内部速度和压力的变化及其相互关系。本文以此为基础,通过对该方程组的离散化求解,实现对流体的真实感实时仿真。这种基于物理模型的仿真能够更加真实的反映流体的细节信息,并且可以方便的实现一些复杂场景的仿真,如流体与固体的实时交互、两相流、火焰效果、气泡效果、爆炸效果、天气效果等。本文第二章首先从数学角度对N-S方程进行了介绍和分析,为了加深理解,还简要的介绍了其相关的推导。在此基础上进一步分析了如何离散化的处理N-S方程,引入了网格的方法,介绍了有限差分的运算。接下来重点分析了如何求解N-S方程,为之后的具体实现打下基础。这里简单介绍了如何用特征线法求解偏微分方程,并以Helmholtz-Hodge分解定理为基础,将复杂的偏微分方程分解为多个易于求解的步骤,并分析了逆向处理与隐式积分的方法。第三章系统而全面的介绍了N-S方程的求解流程,给出了详细的算法说明。对于扩散项,本文参考了偏微分方程求解与数值计算方面相关的书籍,深入探讨了各种不同解决方案的数学原理。对于移流项,作为方程最复杂的部分,我们对前向、逆向移流算法以及BFECC法都进行了分析和讨论。最后还对数值耗散问题进行了深入研究和实际处理。本文介绍的求解流程不同于一般的稳定流体解决方案,除了对速度项外,对压力项、温度项、密度项都进行了扩散和移流的处理,而在最后的压力映射步骤也做了改变。对移流的项处理更结合了前向、逆向移流算法。同时本文定义了大量的可控制变量,可以在对比模式下进行显示以观察不同参数对应的不同效果,便于分析和处理。第四章从障碍物的数据结构,到不同类型的障碍物的定义和实现方法,再到实际仿真时所要处理的问题,都进行了自己的分析和处理。其中在做碰撞检测时引入了Cohen-Sutherland算法,以此为基础进行了深入而有趣的讨论。这里的实现还有很多不足,需要我们进一步学习和钻研。