400-0698-860

新闻中心

洞悉超擎数智品牌力与AI变革

利用 NVIDIA Modulus 进行复杂物理系统的模拟与分析

时间:2024-07-01
来源:超擎数智
阅读量:540
分享:

NVIDIA Modulus 是一个用于物理建模和仿真的深度学习框架,旨在通过结合物理学和机器学习来解决复杂的多物理场问题。它能够利用 NVIDIA 的 GPU 加速器和 CUDA 深度学习库来加速模型的训练和推理过程,从而显著提高计算效率。Modulus框架,用于使用最先进的物理-ML 方法构建、训练和微调深度学习模型。无论是在探索使用神经算子(如傅立叶神经算子),还是对物理学相关的神经网络感兴趣,或者两者之间的混合方法,Modulus 都能提供优化的堆栈,能够在现实世界的规模上训练您的模型。

 

 

Modulus 以模块化方式打包成两个存储库 Modulus Core 和 Modulus Sym:

 

Modulus Core 为那些精通 Python 进行 AI 的人提供了类似 Pytorch 的体验。它包括所有核心算法、网络架构和实用程序,以涵盖广泛的物理约束和数据驱动的工作流程,以适应科学和工程学科中用例的多样性。

 

Modulus Symbolic(Modulus Sym)提供与 Modulus core 一起使用的 Pythonic API、算法和实用程序,以明确物理信息指导模型训练。这包括用于 PDE、域采样和基于 PDE 的残差的符号 API。它还提供了更高级别的抽象,可以使用简单的符号 API 从几何规范、PDE 和边界条件等约束中组成训练循环。

 

核心特性

 

多物理场建模:

流体力学:模拟流体的运动,包括气体和液体的流动。

结构力学:模拟固体材料在外力作用下的变形和应力。

电磁学:模拟电磁场的传播和相互作用。

传热:模拟热量在不同介质中的传导和扩散。

 

基于物理的神经网络(Physics-Informed Neural Networks, PINNs):

物理约束:在模型中引入物理方程(如微分方程)作为约束条件,使得模型能够更准确地模拟物理现象。

数据融合:结合实验数据和物理模型,提高预测精度。

 

高效的训练和推理:

GPU 加速:利用 NVIDIA GPU 和 CUDA 库显著加速训练和推理过程。

多 GPU 和分布式训练:支持多 GPU 和分布式训练,适合处理大规模数据和复杂模型。

 

可扩展性和灵活性:

模块化设计:框架采用模块化设计,用户可以根据需要灵活组合和扩展不同的模块。

易于集成:可以与其他深度学习框架(如 TensorFlow 和 PyTorch)以及数值计算工具(如 NumPy 和 SciPy)无缝集成。

 

主要组件

Sym(符号计算模块):

用于定义物理方程和边界条件,支持符号计算和自动微分。

Graph(图计算模块):

用于定义神经网络结构和计算图,支持复杂的计算图操作和自定义层。

Solver(求解器模块):

用于求解物理方程和训练神经网络,提供多种优化算法和训练策略。

 

应用领域

 

计算流体动力学 (CFD)

 

CFD 涉及流体流动及其与固体表面的相互作用的模拟,广泛应用于空气动力学、水动力学和传热等工程领域。

 

 

Gray-Scott 模型是描述化学反应和扩散过程的非线性方程组。它展示了复杂的时空模式,例如斑点、条纹和螺旋结构。该模型使用卷积 GRU 层进行 RNN 传播,并使用 ResNet 类型架构进行空间编码。此示例使用 Modulus 中 RNN 模型的一对多变体。

 

天气

 

天气模拟包括中长期天气预报和次季节预报,涉及全球范围的大气数据处理。

 

用于天气预报的自适应傅立叶神经算子 (AFNO)。FourCastNet 是傅立叶预测神经网络的缩写,是一种全球数据驱动的天气预报模型,可提供 0.25∘ 分辨率的准确短期到中期全球预测。

 
 

 

医疗

 

医疗模拟涵盖心血管仿真和脑部异常检测等应用。

 

分子动力学

 

分子动力学模拟用于预测分子系统中的力和行为。

 

生成模型

 

生成模型用于大气下采样等任务,帮助改进和生成新的数据集。

 

使用案例

 

 

使用MeshGraphNet模型进行瞬态涡旋脱落分析

 

瞬态涡旋脱落是一种复杂的流体现象,通常出现在流体绕过障碍物时。模拟这种现象对于理解和预测流体行为至关重要。MeshGraphNet 利用图神经网络(GNN)来模拟这种复杂的流动,能够处理不规则网格,并捕捉瞬态动态。

 

基于网格的模拟在各种科学和工程学科的复杂物理系统建模中发挥着核心作用。它们提供强大的数值积分方法,并允许自适应分辨率以在准确性和效率之间取得平衡。机器学习替代模型已成为降低设计优化、设计空间探索和假设分析等任务成本的强大工具,这些任务涉及重复的高维科学模拟。

 

然而,一些现有的机器学习替代模型,如 CNN(卷积神经网络) 型模型,受到结构化网格的限制,使其不太适合复杂的几何形状或外壳。CNN 的同质保真度是许多复杂物理系统的重大限制,这些系统需要自适应网格表示来解决多尺度物理问题。

 

图神经网络 (GNN) 为科学和工程中的替代建模提供了一种可行的方法。它们是数据驱动的,能够处理复杂的物理。GNN 是基于网格的,可以处理几何不规则性和多尺度物理,使其非常适合广泛的应用。

 

案例数据集

 

我们依靠 DeepMind 的涡旋脱落数据集来举例。该数据集包括 1000 个训练样本、100 个验证样本和 100 个测试样本,这些样本使用 COMSOL 模拟,具有不规则三角形二维网格,每个网格有 600 个时间步长,时间步长为 0.01 秒。这些样本的大小和圆柱体的位置各不相同。由于样本之间的几何形状不同,每个样本都有一个独特的网格,网格平均有 1885 个节点。请注意,该模型可以处理具有不同数量的节点和边的不同网格作为输入。

 

测试环境

 

  • 服务器:超擎数智擎天系列L20 8卡GPU服务器集群平台

  • 网络设备:NDR网络
  • 软件平台:NVIDIA Modulus,NVIDIA AIE支持的深度学习框架

 

测试参数

编码器、处理器和解码器的隐藏维度为 128。编码器和解码器由两个隐藏层组成,处理器包含 15 个消息传递层。每个 GPU 的Batch Size设置为 1。处理器使用求和聚合进行消息聚合。使用的学习率为 0.0001,以 0.9999991 的速率呈指数衰减。利用数据并行性进行 25 个epoch。

 

测试记录

模型训练

推理测试

 

测试结果

流体的水平速度分量(u)变化,Modulus预测和实际情况对比

 

流体的垂直速度分量(v)变化,Modulus预测和实际情况对比

 

流体的压力分布(p)变化,Modulus预测和实际情况对比

 

 

在这个例子中,流体力学环境涉及一个二维的不可压缩流体流经不同尺寸和位置的圆柱体,这会导致旋涡脱落现象。这种现象的模拟通常在以下环境中进行:

 

二维不规则三角网格:流体区域被划分为不规则的三角形网格,能够更灵活地适应复杂的几何形状。

 

瞬态模拟:模拟时间步长为0.01秒,总共模拟600个时间步长(即总模拟时间为6秒)。这种模拟方式捕捉了流体在不同时间步长下的动态行为。

圆柱体的多样化几何形状:每个样本中的圆柱体大小和位置各不相同,使得每个样本有独特的网格布局。这增加了模拟的多样性和复杂性。

 

流体特性:
  • 速度分量:模拟过程中记录了流体在水平方向(u)和垂直方向(v)上的速度分量。

  • 压力分布:同时记录了流体的压力(p)分布情况。

     

模型使用MeshGraphNet,通过初始条件输入预测第一个时间步长的解,然后逐步使用前一个时间步长的预测值来预测下一个时间步长的解。模型的输入包括节点特征和边特征:

 

节点特征(共6个):
  • 时间步长t的速度分量(u_t, v_t)
  • 一维独热编码的节点类型(内部节点、无滑动节点、入口节点、出口节点)

     

边特征(共3个):
  • 两个端节点之间的相对x和y距离
  • 相对距离向量的L2范数

     

模型的输出是时间步长t+1的速度分量(u_t+1, v_t+1)和压力(p)。

 

总结

NVIDIA Modulus 结合物理模型和机器学习技术,推动科学研究和工程实践的进步。这些应用展示了 NVIDIA Modulus 在处理复杂物理模型和大规模数据方面的强大能力,不仅提升了预测精度和效率,还为解决现实世界中的复杂问题提供了新的方法和工具,突显了其在科学研究和工程实践中的深远影响。随着技术的不断演进和应用领域的扩展,NVIDIA Modulus 在促进科学创新和社会进步方面将继续发挥关键作用。