Journal

Building a Virtual Weakly-Compressible Wind Tunnel Testing Facility

Chaoyang Lyu, Kai Bai, Yiheng Wu, Mathieu Desbrun, Changxi Zheng, Xiaopei Liu

ShanghaiTech University

一句话总结

本文基于格子玻尔兹曼方法(LBM)构建了一套跑在 GPU 上的虚拟亚音速弱可压缩风洞系统,通过改进碰撞模型、边界处理与自动多分辨率网格,在雷诺数高达 \(10^7 \sim 10^8\) 的非定常湍流仿真中同时达到工业级精度与远超现有商业软件的效率。

研究背景

  • 领域现状:汽车、航空与建筑设计都依赖风洞测试来评估升阻力系数、压力分布等气动量。传统虚拟风洞多用有限体积/有限元求解不可压 Navier-Stokes 方程,但需要人工构造贴体网格、单步可达数小时,非定常湍流几乎不可行;商业软件(如 StarCCM+、PowerFLOW)多跑在昂贵的 CPU 集群上。
  • 核心痛点:图形学里的 LBM 方案(如中心矩碰撞模型)虽快,但在高雷诺数下精度不足甚至发散,边界层与小尺度湍流结构解析不了,无法满足工业界要求的阻力系数误差小于 3%~5%。而 CFD 界的高精度 LBM 又忽视了自动网格构造、复杂几何处理等系统性工程环节。
  • 本文 idea:把 CG 与 CFD 的最新进展融合,针对 LBM 的几个关键短板——碰撞建模、固壁边界处理、多分辨率网格与 GPU 性能——逐一改进,弥合”视觉特效流体”与”工业气动仿真”之间的鸿沟。

方法

整体框架是一个标准 LBM 主循环(流(streaming)→ 边界处理 → 碰撞(collision)→ 力评估),作者在其中的四个环节各注入一项改进,使其既能保持显式局部更新的 GPU 友好性,又能把可解析的雷诺数推到 \(10^8\) 量级。

flowchart LR
  A["自动多分辨率网格构造"] --> B["预计算 link-mesh 相交"]
  B --> C["熵优化累积量碰撞"]
  C --> D["单节点插值反弹边界处理"]
  D --> E["动量交换法评估表面力"]
  E --> C

关键设计分为四点:

1) 熵驱动的累积量碰撞模型(entropy-based cumulant collision)。 累积量(cumulant)相比中心矩是统计独立、伽利略不变的量,允许各阶用独立松弛率,稳定性与精度更好。低阶松弛率由物理约束(守恒密度、动量、由粘度决定的动量通量)确定,三阶可用已有的优化率,而高阶率此前只能凭经验取 1。作者的做法是让高阶松弛率去最大化(伪)熵 \[\tilde{H}(\boldsymbol{f}) = -\sum_i \left( \frac{f_i^2}{\omega_i} - f_i \right) = \rho - \sum_i \frac{f_i^2}{\omega_i}\] 利用累积量与中心矩在三阶以内恒等、高阶间呈线性关系这一性质,把最优性条件化为一个可解析求解的线性系统 \((\boldsymbol{I}+\boldsymbol{L})\boldsymbol{k} = -(\boldsymbol{D}^T\boldsymbol{W}^{-1}\boldsymbol{T}_h)^{-1}\boldsymbol{D}^T\boldsymbol{W}^{-1}\boldsymbol{T}_l\boldsymbol{k}_l - \boldsymbol{n}\),对 D3Q27 格子只需一次闭式线性解,几乎不损失效率(整体仿真仅慢不到 5%)。

2) 单节点插值反弹边界处理。 在改进 Tao 等人(2018)单节点方案的基础上,对边界节点未知分布函数的平衡态与非平衡态分别做二阶近似:非平衡态用同点反弹 \(f^{neq}_i(\boldsymbol{x}_b, t{+}1) = f^{neq}_{\bar{\imath}}(\boldsymbol{x}_b, t)\),平衡态则借助近壁面近不可压时 \(f^{eq}_i(\boldsymbol{x}_a, t{+}1) \approx f^{*}_i(\boldsymbol{x}_b, t)\) 直接由碰撞后分布流入,最终合成 \[f_i(\boldsymbol{x}_b, t{+}1) = \frac{1}{1+q} f^{eq}_i(\boldsymbol{u}_w, \rho_b) + \frac{q}{1+q} f^{*}_i(\boldsymbol{x}_b, t) + f^{neq}_{\bar{\imath}}(\boldsymbol{x}_b, t)\] 其中 \(q\) 是边界节点沿链方向到固壁的归一化距离。该方案保持单节点局部性(利于并行、可处理窄缝),同时更好解析高雷诺数下的薄边界层。方法还统一处理了旋转轮子等有限动态耦合、域壁滑移、以及基于壁面模型的地面处理。

3) 自动块状多分辨率网格。 不用八叉树,而是构造一组相互部分重叠、逐级二倍加密的轴对齐块状网格:在纯流区按来流方向加密(偏向下游以解析尾流),在模型附近的薄壳区 \(\Omega_n\) 内再按到模型的距离场加密。对非封闭模型(进气格栅、建筑通道)用广度优先 flooding 标记与外流连通的有效流体节点。块状而非树状结构让 GPU 实现大为简化,又避免连续尺度方案的高内存开销。

4) GPU 实现优化。 用一种”按网格面元并行”的 spreading 式 link-mesh 相交替代 BVH 树遍历(每个面元只测试其跨越单元内的候选节点),对约千万面元、4mm 分辨率的模型可比树方法快约 10 倍;数据布局采用为每节点建索引映射、指向按 x-y-z 打包的全局线性数组,兼顾内存合并访问与实现简洁。

实验结果

主验证实验是三种后端造型的 DrivAer 基准车模(Fastback / Notchback / Estateback)的阻力系数 \(C_d\) 预测,分”无地面模拟”(固定地面、车轮不转)与”有地面模拟(GS)”(传送带模拟路面移动、车轮旋转)两种工况,与真实风洞实测对比:

车型配置 预测 \(C_d\) 实测 \(C_d\) 相对误差
Fastback 无 GS 0.2849 0.284 0.32%
Notchback 无 GS 0.2851 0.286 -0.31%
Estateback 无 GS 0.316 0.318 -0.63%
Fastback 有 GS 0.2811 0.275 2.22%
Notchback 有 GS 0.283 0.277 2.17%
Estateback 有 GS 0.3089 0.319 -3.17%

无地面模拟时平均误差仅 0.4%,有地面模拟时最大误差 3.17%,均安全落在汽车工业标准(分别约 3% 与 5%)之内。效率方面,DrivAer Fastback 无地面仿真在单张 NVIDIA A100 上约 3 小时完成,而文献报道 PowerFLOW(96 CPU)与 StarCCM+(128 CPU)分别需约 80 与 13 小时。其余验证(光滑球的阻力危机、高尔夫球飞行、以及消融——熵优化碰撞 vs. 原累积量、新边界 vs. 简单反弹、多分辨率 vs. 单分辨率)都以文字与曲线佐证了精度提升;例如在 \(Re=400{,}000\) 的阻力危机下,新碰撞模型收敛更快、力波动更小,新边界处理能捕捉更靠后的分离点与更窄的尾流。

亮点与局限

  • 亮点:
    • 把 LBM 可解析雷诺数推到 \(10^8\),在真实车模上达到工业级阻力预测精度(无 GS 误差 0.4%),且单 GPU 效率显著优于跑在 CPU 集群上的商业软件。
    • 熵最大化给高阶松弛率提供了闭式解析解,几乎零额外开销地解决了”高阶率靠拍脑袋”的老问题。
    • 自动块状多分辨率网格 + flooding 让复杂、非封闭几何(车、飞机、含内部通道的建筑、带喷口的管道)都能免去繁琐人工网格准备。
    • 一套系统同时服务工业气动设计与 VFX 湍流特效。
  • 局限:
    • 动态工况(有 GS、旋转轮子)的预测误差明显大于静态工况,动态边界条件的一致精度仍待改进。
    • 不规则域的数据结构尚未最优,性能仍有提升空间。
    • LBM 相比同精度 NS 求解器内存占用更高;目前也不支持动态网格重构。
    • 仅支持单向、受限(旋转/平移)的动态耦合,未做双向耦合。

延伸思考

  • 该工作是把图形学 LBM”反哺”到工业 CFD 的少见案例,其价值不仅在数值方法本身,更在于把自动网格、几何处理、可视化等系统性工程环节补齐——这提示流体仿真研究要落地,求解器精度之外的工程链条同样关键。
  • 熵/伪熵作为约束来确定缺乏物理解释的高阶自由度,是一种通用思路,或可迁移到其他多松弛率数值格式的参数标定。
  • 地面-车身窄通道内的湍流、以及动态耦合的一致精度是明确的后续方向;作者也提到可基于其近期工作拓展到”虚拟水洞”以及双向耦合,从而覆盖更复杂的大尺度或特写镜头仿真。
  • 值得追问的是:有 GS 工况依赖 mean-shift 校准来补偿分辨率不足带来的系统偏差,若换到未标定的新几何,其误差边界的可迁移性有多强?这关系到能否真正”取代”实体风洞。