计算流体动力学 CFD 是什么?用计算机模拟空气和水怎么流动
计算流体动力学(Computational Fluid Dynamics,CFD)是利用计算机和数值方法,来模拟和分析流体流动以及相关物理现象的学科。这里的流体包括空气、水、油等各种气体和液体。它是流体力学、数学和计算机科学的交叉领域。
为什么需要计算流体动力学
流体的运动遵循一组基本的物理方程,最核心的是纳维-斯托克斯方程,它描述了流体的速度、压力、密度等随时间和空间的变化。但这组方程非常复杂,除了少数极其简单的情况,几乎无法用数学公式直接求出精确的解。纳维-斯托克斯方程解的存在性和光滑性问题,甚至是美国克雷数学研究所悬赏一百万美元的七个“千禧年大奖难题”之一。
在计算机出现之前,工程师主要靠理论近似和实验来研究流体,比如把飞机模型放进风洞中吹风,测量它受到的力。风洞实验成本高、周期长,而且很难测量到流场中每一个位置的细节。计算流体动力学提供了另一种方法:在计算机中建立一个“虚拟风洞”,通过数值计算来模拟流动。
它是怎么做的
计算流体动力学的基本思路是“化整为零”:首先建立要研究的物体和周围空间的几何模型;然后把这个空间划分成数百万甚至数十亿个小网格,这一步叫网格划分;在每一个小网格上,把复杂的流体方程近似成简单的代数方程,常用的方法有有限体积法、有限差分法、有限元法;设定边界条件,比如来流的速度、物体表面的情况;再用计算机迭代地求解所有网格上的方程,得到整个流场中每一处的速度、压力和温度;最后把结果可视化,比如用彩色的图像显示压力的分布、用流线显示气流的走向。
一个特别的难点是湍流:大多数实际的流动都是湍流,充满了大大小小的不规则漩涡。直接精确地模拟所有尺度的漩涡,计算量大得惊人,所以工程中通常使用各种湍流模型来进行近似。
应用
航空航天:设计飞机的机翼和外形,减少阻力、提高升力,模拟发动机内部的燃烧和气流。汽车:优化车身的空气动力学外形以降低油耗或提升电动车的续航,F1 赛车的设计也大量依赖它。天气预报和气候模拟:本质上是对大气这种流体的大规模模拟。能源:设计风力发电机的叶片、优化燃气轮机。建筑:分析建筑周围的风环境和室内的通风。医学:模拟血管中的血液流动。此外还用于船舶设计、化工设备、电子设备的散热设计等。
与 AI 的结合
计算流体动力学是超级计算机最主要的应用之一,一次高精度的模拟可能需要运行数天甚至数周。近年来,研究者开始用 AI 来加速:用模拟数据训练神经网络作为“代理模型”,在几秒钟内给出近似的结果,便于快速地比较大量的设计方案;把物理方程融入神经网络的物理信息神经网络;以及用 AI 改进湍流模型。在天气预报领域,谷歌 DeepMind 的 GraphCast、华为的盘古气象等 AI 模型已经能在几分钟内给出与传统数值预报相当甚至更好的中期天气预报。