DiFVM把非结构网格有限体积求解器搬上GPU:单卡快过32核OpenFOAM,还能端到端求梯度
核心概要
DiFVM把非结构多面体网格上的完整有限体积/PISO求解流程改写成静态图上的向量化散射与聚集运算,在JAX/XLA上实现GPU原生执行和端到端自动微分。此前可微CFD平台多依赖笛卡尔或结构化网格,难以直接处理贴体复杂几何。在单个NVIDIA L40 GPU上,DiFVM在所有测试算例中都快于32核并行OpenFOAM,最大算例约106个控制体;可微性则通过反演空腔盖板速度和同时推断六个Windkessel参数得到演示。
深度剖析
非结构多面体网格上的不可压缩流动现在可以在GPU上完成端到端可微的有限体积求解,网格单元与面之间的不规则连接不再需要逐单元循环遍历。 此前的可微CFD框架,包括JAX-CFD、JAX-Fluids、WaterLily、PICT和Diff-FlowFSI,空间离散主要采用笛卡尔或结构化表示,网格连接可以用规则张量索引和固定模板编码,因此不直接支持贴体非结构网格。 在网格、边界条件和数值设置完全一致的条件下,DiFVM与OpenFOAM的对比覆盖三维泊松问题、二维被动标量对流、顶盖驱动方腔、圆柱绕流和患者特异性主动脉几何;在单个NVIDIA L40 GPU上,DiFVM在所有算例中都快于32核并行OpenFOAM,中等至大型瞬态问题相对单核约快25至33倍,相对32核约快2倍。
求解器的全部有限体积算子被写成网格连接图上的消息传递原语:单元是节点,单元界面是边,通量计算是并行的节点到边聚集,守恒累加是边到节点的散射求和。 这种改写只是重新组织有限体积离散的计算与组装方式,并不引入额外的数值近似,守恒性、相容性和空间精度都继承自原有的有限体积格式。 验证包括解析泊松问题的收敛阶拟合、与Ghia等发表基准及多个独立求解器结果的对比、网格质量与时间步敏感性分析,以及与SimVascular在搏动性主动脉流动上的独立交叉比较;反演演示中,六个Windkessel参数在梯度穿过6000个时间步后全部收敛到真值1%以内。
启示与展望
演示范围是不可压缩牛顿流体、刚性壁面域上的非结构多面体网格,包含心血管应用中可微的三元件Windkessel出口边界条件;性能数据仅来自单个NVIDIA L40 GPU,最大基准约106个控制体。
反向模式灵敏度在长时间跨度上可能衰减或放大,这取决于流动动力学、时间离散、参数化和模拟时长,图改写并不改变这一条件数。反演示例的观测由与推断相同的控制模型生成,因此未刻画模型失配、本构假设不确定或边界条件部分错误带来的误差;可微性提供梯度,但不保证参数能从有限观测中唯一辨识。多GPU与多节点扩展尚未实现或评估。
