在现代工程领域,创新速度与执行模拟分析的效率密切相关。计算机辅助工程(CAE)在验证产品性能与安全性方面发挥着关键作用,助力开发高效且可靠的工程设计方案。传统数值模拟虽然能够提供精确的结果,但往往需要数小时、数天甚至更长时间才能完成。漫长的计算周期使得多方案探索变得困难,也阻碍了设计与分析之间高效反馈循环的建立。
为缩短模拟时间,工程师越来越多地采用基于物理原理的 AI 模型作为代理模型。这些模型利用传统模拟数据进行训练,能够以更快的速度预测结果,通常仅需几秒到几分钟。这种快速生成的近似解使工程师能够高效探索更广泛的设计方案。
这种方法并非要取代传统求解器,而是对其形成补充。替代模型适用于初步探索,有助于识别具有潜力的设计方案,随后再通过更精确、更可靠的求解器进行验证。
本文介绍了一个面向汽车空气动力学的端到端参考工作流,旨在帮助软件开发者和工程师充分发挥AI驱动仿真的优势。它是模块化的,适应性不仅限于外部空气动力学,并且建立在NVIDIA技术之上。以下各节将指导您通过工作流中的每个阶段和工具:
- 使用 NVIDIA PhysicsNeMo Curator 进行数据预处理 NVIDIA PhysicsNeMo Curator: 此库是 PhysicsNeMo 的子模块,可帮助组织和处理工程和科学数据集,从而更轻松、更快速地设置 AI 模型训练工作流程。
- 使用 NVIDIA PhysicsNeMo 训练 AI 物理模型 NVIDIA PhysicsNeMo: PhysicsNeMo 是一个利用先进架构构建和训练物理 AI 模型的框架。
- 使用 NVIDIA NIM 微服务进行部署和推理 NVIDIA NIM 微服务: 用于部署预训练模型的精简且可扩展的解决方案,可通过简单的标准 API 访问 AI 驱动的预测。
- 借助 NVIDIA Omniverse 和 Kit-CAE 实现实时交互式可视化 NVIDIA Omniverse 和 Kit-CAE: 作为用于构建数字孪生的新开发平台,Kit-CAE 使工程师能够在逼真的 3D 环境中探索大型 CAE 仿真数据集。利用 Kit 数据委托和 API,它将强大的数据处理与协作式逼真可视化相结合。
为展示完整的端到端工作流程,我们采用了一个轻量级但富有洞察力的数据集。该数据集包含多种Ahmed车身设计,并在一系列进气管雷诺数下进行了仿真。数据集涵盖了3D几何结构、压力分布以及壁面剪切应力场,非常适合用于空气动力学模拟。其紧凑的规模支持快速实验,无需大量存储空间或高计算资源,便于教学应用、原型开发和快速迭代。如需了解更多详情,欢迎下载该数据集。若您希望将自有的专有CAE数据投入实际应用,可立即开始使用PhysicsNeMo平台。

使用 NVIDIA PhysicsNeMo Curator 进行数据预处理
PhysicsNeMo 是一个开源的深度学习框架,旨在为基于物理的仿真构建、训练和微调 AI 模型。该框架支持多种模型架构,包括神经算子和图神经网络(GNN)。其中,DoMINO(可分解的多尺度迭代神经算子)是一种先进的多尺度神经算子,能够高效预测大规模物理仿真中的流场,例如汽车空气动力学场景。X-MeshGraphNet 则是一种增强型图神经网络,通过直接从几何文件构建图结构,有效解决了传统方法在可扩展性和网格依赖性方面的挑战,从而显著提升物理仿真的效率与适用性。
PhysicsNeMo Curator 是 DoMINO 数据预处理的核心引擎,能够利用 GPU 加速科学与工程数据集的 ETL(提取、转换和加载)流程。其专为 DoMINO 设计的 ETL 工作流可将原始 VTK(.vtu、.vtp)和 STL 文件高效转换为支持机器学习的格式,如 Zarr 或 NumPy。该工具支持处理几何体、体积网格和曲面网格,能够提取压力、壁面切应力等物理场数据并进行无量纲化处理,同时计算衍生变量,并可选地对网格进行抽样。输出数据经过压缩、分块处理,并保留完整元数据,确保结果的可复现性。
对于 X-MeshGraphNet,预处理阶段通过 preprocessing.py 将 3D 网格数据转换为分区图结构,其中节点用于存储表面变量,边则用于刻画变量间的关系。该流程结合使用 VTK、PyVista 和 DGL 进行处理,并将生成的数据保存为 *.bin 文件,供后续训练使用。此工作流后续将被集成至 PhysicsNeMo Curator 中。
使用 NVIDIA PhysicsNeMo 训练 AI 物理模型
PhysicsNeMo 支持训练用于复杂工程仿真的 AI 代理模型,提供 DoMINO 和 X-MeshGraphNet 等可扩展架构,助力加速 CFD 工作流程。
DoMINO 模型架构
传统的机器学习(ML)模型通常难以满足复杂工程模拟在准确性、可扩展性和泛化能力方面的要求。 DoMINO 架构通过采用多尺度迭代神经算子,能够有效模拟大规模物理问题,从而应对这一挑战。该架构以几何图形(STL 文件)作为输入,可预测表面压力、壁面切应力以及体积速度场。
DoMINO 架构包含三个主要阶段:
- 全局几何表示:模型从激光点云学习多尺度编码,捕获短距和远程依赖项,并使用有符号距离场 (SDF) 和位置编码进行丰富。
- 局部几何表示:模型对离散点进行采样以评估解,构建局部次区域,并使用动态点卷积内核提取局部编码。
- 聚合网络:通过对次区域中的相邻节点进行采样,围绕每个点创建计算模板,并聚合本地编码以预测每个点的解。
DoMINO 可作为快速、准确且可扩展的大规模模拟的替代方案。

如何训练 DoMINO
DoMINO 的训练与测试分为三个步骤,均通过 Hydra 支持的 YAML 配置文件进行管理。
- 第 1 步:配置设置
- 首先,导航至
src/conf
目录并修改config.yaml
文件。此文件允许您指定数据、训练和测试的关键参数。 - 在“data” (数据) 部分中,定义训练和验证数据的路径,以及模拟域的边界框大小。
- 在训练部分中,您可以设置训练参数,例如训练次数和批量大小。
- 如果您使用的是缓存数据,则应使用
conf/cached.yaml
而非conf/config.yaml
。
- 首先,导航至
- 第 2 步:训练模型
- 要开始训练,只需运行
train.py
脚本即可。 - DoMINO 模型支持单 GPU 和多 GPU 训练。对于分布式训练,您可以使用
torchrun
或 MPI。 - 如果训练进程因显存不足 (OOO) 错误而崩溃,您可以调整配置文件中体积和表面字段采样的点数量,以管理 GPU 的显存需求。
- 该模型还支持自动检查点,允许在中断时从最新的检查点恢复。
- 要开始训练,只需运行
- 第 3 步:测试模型并可视化结果
- 训练后,运行
test.py
脚本,在原始模拟文件 (例如 .vtp 或 .vtu) 上测试模型。 - 请务必修改配置文件中的 eval 键,以指定检查点、输入和输出目录。需要注意的是,测试数据应采用原始模拟格式,不得处理为 .npy 文件。
- 预测将写入相同的测试文件。然后,您可以下载这些验证结果,并在 Paraview 等工具中进行可视化,以评估模型的性能。
- 训练后,运行
X-MeshGraphNet 模型架构
GNN 可作为传统 CFD 求解器的快速替代方案,但在高分辨率网格上往往可扩展性较差,依赖成本较高的预生成网格,且难以有效支持多尺度模拟。

X-MeshGraphNet 通过三项创新实现了良好的可扩展性:
- 带光晕区域的分区图形:将大型图形分解为较小的重叠子图形,以在保持准确性的同时减少内存和计算量
- 无网格图形构建:直接从 3D 几何图形构建图形
- 多尺度图形优化:捕捉不同尺度的交互。光环区域和梯度聚合可确保分区上的训练与完整图形相匹配。
如何训练 X-MeshGraphNet
- 第 1 步:配置模型 – 导航至 surface 文件夹,并在
conf/config.yaml
文件中指定您的配置,确保数据集路径正确。 - 第 2 步:准备数据 – 数据集中的 STL 文件必须组合成一个实体。运行
combine_stl_solids.py
以创建可用于生成表面点云的单一实体。 - 第 3 步:对图形进行预处理 – 运行
preprocessing.py
以准备分区图形并保存。 - 第 4 步:设置验证 – 创建 partitions_validation 文件夹,并将要用于验证的样本移入其中。
- 第 5 步:计算统计数据 – 运行
compute_stats.py
以计算训练样本的全局均值和标准差。 - 第 6 步:开始训练 – 最后,运行
train.py
以开始训练过程。
如何使用 NVIDIA NIM 部署和执行推理
替代模型完成训练后,下一步是将其部署到工程工作流中。 NVIDIA NIM 微服务通过标准 API 提供预训练的 AI 模型,能够无缝集成到现有流程,从而简化部署过程。这些 NIM 微服务可运行于本地、云端或边缘设备。本参考工作流采用 DoMINO-Automotive-Aero NIM,该服务接收 STL 格式的 3D 几何模型,并输出预测的表面与体积场。
尽管预训练的 DoMINO 模型已表现出良好的性能,但大多数应用仍可从中获益。相比从零开始训练,微调所需的训练数据极少,且能轻松提升模型准确性。通过利用预训练模型中蕴含的物理知识,微调可使模型适应新的条件与几何结构,从而提升其准确性、效率和鲁棒性。因此,DoMINO-Automotive-Aero NIM 具备从汽车领域拓展至其他物理相关应用的潜力。
运行 DoMINO-Automotive-Aero NIM
DoMINO-Automotive-Aero NIM 是一款强大的车辆空气动力学仿真工具。为了取得最佳效果,必须充分理解模型的输入与输出。
输入
该模型需要特定的输入才能运行模拟并生成预测结果。
- 车辆 STL: 您必须将车辆的几何图形作为水密、定向正确的 STL 文件提供。
- 速度入口: 指定车辆前方的流入速度。为获得最佳精度,这应该在 20 到 60 米/ 秒之间。
- 模板大小: 此参数控制模型的准确性。模板尺寸越大,结果越准确,计算成本和运行时间也越高。
- 体积采样点: 您选择在车辆周围体积中采样的点数量决定了预测流场的保真度。点数越多,结果越详细,但计算成本会增加。
以下代码示例展示了如何将 STL 文件及其他参数发送至推理 API:
import httpx
import io
import numpy as np
# Define the URL for the inference API
url = "http://localhost:8000/v1/infer"
# Define the parameters for the inference request
data = {
"stream_velocity": "30.0",
"stencil_size": "1",
"point_cloud_size": "500000",
}
# Open the STL file and send it to the NIM
with open("your_vehicle.stl", "rb") as stl_file:
files = {"design_stl": ("your_vehicle.stl", stl_file)}
r = httpx.post(url, files=files, data=data, timeout=120.0)
输出
NIM 提供多种输出,帮助您分析模拟结果。
- 表面流量参数: 该模型可直接预测车辆表面上的压力分布和近壁量,例如壁面剪切应力。
- 体积流场: 您将在车辆周围体积的采样点获得流体动力学参数的预测,例如速度、压力和流参数。
- 其他属性: 输出还包括有符号距离场 (SDF) ,这有助于可视化相对于流的几何图形,以及定义计算域的边界框详细信息。
API 的响应是一个经过压缩的 NumPy 数组。以下代码示例展示了如何加载并检查该输出:
# Load the response content into a NumPy array
with np.load(io.BytesIO(r.content)) as output_data:
output_dict = {key: output_data[key] for key in output_data.keys()}
print(output_dict.keys())
借助 NVIDIA Omniverse API 实现实时交互式可视化
NVIDIA Omniverse 是一个基于 OpenUSD 和 RTX 技术构建的平台,用于开发、连接和运行 3D 应用。它支持实时协作与高保真虚拟世界的创建,广泛应用于产品设计、机器人、自动驾驶汽车以及设施仿真等领域。
在 CAE 中,AI 代理模型的预测结果可通过 Kit-CAE(Omniverse 中用于数据处理与可视化的示例工具)进行可视化。Kit-CAE 支持多种科学数据格式,如 HDF5、CGNS、VTK 和 NumPy,可直接在 Omniverse 中使用。该工具的扩展功能支持通过流线、体渲染和字形等方式实现数据可视化,开发者还可根据需要自定义扩展,以集成新的工作流程。
要从 Omniverse 中的相应 STL 文件可视化 DoMINO-Automotive-Aero NIM 及其在汽车几何图形中的预测结果,请按以下步骤操作:
- 第 1 步:运行推理 – 如上一节所述,使用给定 STL 文件调用 NIM,并将推理结果保存为 NumPy 存档 (.npz) 。
- 第 2 步:安装 Kit-CAE – 克隆 GitHub 存储库,并按照其 README 中的说明构建和启动 Kit – CAE 示例应用。
- 第 3 步:导入文件 – 使用导入菜单将 STL 和 NPZ 文件转换为 OpenUSD,并将其导入 3D 场景。应将 NumPy 文件导入为激光点云数据集。
- 第 4 步:可视化结果 – 右键单击导入的 NumPy 数据集基元,然后使用上下文菜单运行预定义 CAE 算法之一,用于数据处理和可视化。您可能需要根据所选的方法指定感兴趣的字段数组。

将模拟结果集成至Omniverse,可支持面向CAE的高级3D应用。通过Omniverse SDK、API及微服务,实时数字孪生能够融合高保真资产与Kit-CAE的模拟数据。借助具备低延迟特性的AI代理模型,用户可交互式地探索大规模设计空间,并获得即时的3D反馈。
为打造更全面的交互式体验,用户可将 Omniverse Blueprint 应用于实时计算机辅助工程的数字孪生,从而获得更高级的参考工作流。深入了解虚拟风洞体验并在 GitHub 上获取其源代码。
开始使用 AI 驱动的仿真
本文以汽车空气动力学为例,展示了AI驱动的仿真工作流,该框架可广泛适用于各类仿真驱动的行业。通过利用高保真仿真数据训练高效的AI模型,实现快速、实时的交互式分析,有效解决了传统仿真中耗时长、成本高、设计迭代缓慢以及反馈延迟等问题。建议首先学习NVIDIA DLI课程,使用 PhysicsNeMo 加速 CAE 仿真。
应用包括:
- 航空航天: 加速翼型和飞机优化;分析重返大气层期间的风热影响。NVIDIA 合作伙伴 Luminary Cloud 用于训练 Shift Wing,这是一个用于跨音速翼设计的基于物理的 AI 模型。
- 能源: 优化涡轮机械流量、热交换器和风电场布局。
- 制造业: 加速注射模具分析和工具设计。
- 土木工程: 快速评估隧道或地铁系统中的风荷载和气流。
- 电子产品: 对数据中心、服务器和电池组进行实时热分析。
该GPU加速平台是推动仿真与工程设计流程发展的关键技术。