使用单相层流的有限差分法求解二维 Navier-Stokes 方程(纳维-斯托克斯方程),并使用基准盖腔测试验证结果。
这段代码是在两个非常有用的参考资料的帮助下编写的——Lorena Barba 教授的“Navier Stokes 的 12 个步骤”和 Mark Owkes 教授的“编写第一个 CFD 求解器的指南”。
介绍
在许多自然现象中都可以观察到流体流动,从舒缓的瀑布到计算机键盘上令人恼火的咖啡飞溅。 看到损坏的键盘上的咖啡后,您的第一个想法可能不是“多有趣!” 但另一方面,从悬崖上流出的水流的宁静而动态的性质肯定会唤起一种惊奇的感觉。 在这些情况下,我们能理解流体流动吗? 我们能否预测流体在特定条件下的运动方式? 更重要的是,我们可以防止未来的咖啡飞溅吗?
回答这些问题的一种方法是在实验室中使用实际流体进行实验,并使用各种成像仪器研究其流动特性,这是实验方法。 另一种方法包括编写一组可以描述流体流动的方程,应用一组简化的假设和条件,执行一些数学魔术,并推导出一个控制方程——在你插入正确的值之后——可以为你提供能力 预测流动的动态,这是分析方法。
然而,随着计算能力的提高,出现了第三种方法来回答这些问题——数值方法。 虽然描述流体流动的方程组对于任何任意一组条件都无法解析解(尚),但如果您有足够强大的计算机,当然可以计算它们的输出。 使用这种方法在计算机上研究流体流动的动力学通常称为计算流体动力学 (CFD)。
控制方程
数值方法
Python 代码结构
Python 仿真代码
仿真用户界面
可视化工具
结果显示
源代码