加速计算

Porous Media 在运输中运用物理信息深度学习

仿真在科学和工程的各个领域都很普遍,但它们往往受到计算时间长、计算资源有限、繁琐的手动设置工作以及对技术专业知识需求的限制 NVIDIA SimNet 是一个模拟工具箱,它将人工智能和物理结合起来解决这些挑战。

SimNet 应用的一个成功例子是在多孔介质中的流动和传输建模。这项努力是由斯坦福大学的博士生 Cedric Frances 领导的。

用例研究

Cedric 正在研究利用物理信息神经网络( PINNs )进行无网格油藏模拟的适用性和局限性。他对多孔介质中的流动和输运问题(质量守恒和达西流)非常感兴趣。 Cedric 的应用程序是一个基于 Python 的油藏模拟器,它可以计算多孔介质中各种流体的压力和浓度,并进行通常会影响大型工业能源项目的预测。这包括生产碳氢化合物、储存二氧化碳、水处理、空气储存、废物管理等等。

研究人员以前试图使用 PINNs 方法来捕捉一个具有非凸通量项的双曲问题( Riemann 问题)的正解,除了初始条件和边界条件之外没有其他数据。不幸的是,这些尝试是 unsuccessful

在试用 SimNet 之前, Cedric 使用 Python 和 TensorFlow 和 Keras 等深度学习框架开发了自己的 pinn 实现。他使用了各种网络结构,如残差、 GAN 、周期激活、 CNN 、 PDE 网络等。然而,很难实现所有这些目标,以找出哪一个效果最好或根本不起作用。 GitHub 上开源代码的出现使得测试这些实现变得很容易。每一个新的实现都涉及到很高的开销,比如环境设置、硬件配置、修改代码来测试自己的问题等等,这些都是不高效的。

Cedric 希望有一个由专业软件开发人员团队维护的良好、统一的框架来解决问题,使他能够专注于问题的物理性,并广泛测试最近发布的方法。当他偶然发现 SimNet 时,他对这样一个框架的探索就结束了。

塞德里克下载了 SimNet 并开始使用具有 tanh 激活函数和损失函数空间加权的全连接网络。他发现 SimNet 的通用框架(包含多种体系结构和文档丰富的示例)是一个很好的起点。它能够模拟具有剧烈冲击的解决方案,引入熵和速度等新的动态约束,为他节省了数周的开发时间。更重要的是,它提供了测试方法的快速转变,以确定它们的有用性。

本文提出的问题是多孔介质中两相不可压缩、不互溶的位移问题。这也被称为运输问题,多年来以各种形式加以描述。半个多世纪以来,它一直应用于油藏注水开发中的水驱油问题。最近,它被应用于 CO 驱盐水2在碳封存应用中。有关详细信息,请参阅 砂土流体驱替机理注气过程理论

假设润湿相( w )正在取代非润湿相( n )。润湿性是一种流体与被另一种流体包围的固体接触的倾向性;例如,与空气相比,水在大多数表面是湿润的。质量守恒适用于两相。对于湿润阶段:

\phi \frac{\partial S_w}{\partial t} + \nabla q_w = 0(1)

在这个公式中,\phi 是孔隙度,\ S_w 是润湿相的饱和度(或浓度),是非润湿相的饱和度。润湿相的流速\ q_w可写为:

q_w = - \frac{kk_{rw}(S_w)}{\mu_w}\nabla p(2)

在这个公式中,\ k是绝对渗透率,它量化了材料允许液体或气体流过的倾向性。\ k_{rw}(S_w)是润湿相的相对渗透率,它是饱和度的函数,表征给定相在存在或不存在时的有效渗透率。一个阶段优先通过它已经存在的路径。想象一下,一滴水从窗户滴落下来,沿着现有的小径流下。

你可以算出润湿相的相通量\ q_w作为总通量的函数q = q_w+q_n使用简单的均匀化规则:

q = -k\left[\frac{k_{rw}(S_w)}{\mu_w} + \frac{k_{rn}(S_n)}{\mu_n}\right]\nabla p(3)

你可以把这个方程改写成总通量的函数。由此产生分流:

f_w = \frac{q_w}{q} = \frac{1}{1+\frac{k_{rn}\mu_w}{k_{rw}\mu_n}}(4)

守恒方程现在可以写成:

\frac{\partial S_w}{\partial t} + \frac{q}{\phi}\nabla f_w = 0(5)

对于一维情况,假设总通量等于每个时间步注入的一个孔隙体积 (\ q = \phi) ,可以得到:

\frac{\partial S_w}{\partial t} + \frac{\partial f(S_w)}{\partial x} = 0(6)

在这个公式中,分数流是一个非线性方程,定义如下:

f_w(S) = \frac{(S - S_{wc})^2}{(S - S_{wc})^2 + (1 - S - S_{nr})^2/M}(7)

在这个公式中,S_{wc}andS_{nr}润湿和非润湿的残余(不可还原)饱和度是由捕集机制和M是终点流动率,定义为两相的终点相对渗透率和粘度之比。我们使用 Corey 和 Brooks 相对渗透率关系。有关详细信息,请参阅 多孔介质的水力特性

这里解的偏微分方程是一阶双曲型的,分数流项是非凸的。它属于黎曼守恒问题的一类,通常用有限体积法求解。有关详细信息,请参阅 双曲守恒律组与冲击波的数学理论

在均匀 Dirichlet 边界条件下:

S(x=0,t) = S_{inj}(8)

S(x,t=0) = S_{wc}(9)

你可以应用特征线法( MOC )来建立这个方程的解析解。为了使 MOC 或任何有限体积法保持保守,必须修改图 1 所示的分数流项。

图 1 .对于 Swc = Sor = 0 的情况,分数流量曲线(蓝色)和 Welge 结构(黑色虚线)。来源: 多孔介质流动和输运的物理基础

到目前为止,还没有其他已知的方法使用抽样方法来解决这样的问题,因此这仍然是一个悬而未决的问题。 Fuks 和 Tchelepi 先前的一次尝试得出结论,物理信息方法不适合所描述的问题(图 2 )。

图 2 .根据双曲问题的弱形式,使用 PINN 方法(红色虚线)计算的饱和推断结果。使用 MOC 的对照溶液用蓝色标绘。资料来源: 多孔介质流动和输运的物理基础
图 3 .在速度约束和熵条件下,使用 PINN (红色虚线)和 MOC (蓝色虚线)进行饱和度推断的结果。采用分数流量曲线的凸壳来模拟位移。资料来源: 多孔介质流动和输运的物理基础

塞德里克关于这个主题的研究已经发表了: 多孔介质流动和输运的物理基础

重要的理论里程碑正在简单而富有挑战性的一维例子中实现。 Cedric 计划将他的研究扩展到更大的维度( 2D 和 3D ),在这里,代码的可伸缩性和在更大阵列上的轻松部署将受到考验。他预计会遇到类似的问题,并期待着 SimNet 从 2D 到 3D 带来的好处。

塞德里克详细阐述了他在 SimNet 的经历。” SimNet 清晰的 API 、干净且易于导航的代码、使用 Docker 容器良好处理的环境和硬件配置、可扩展性、易部署性以及称职的支持团队使其易于采用,并提供了一些非常有前景的结果。到目前为止,这非常好,我们期待着在更大维度的问题上使用 SimNet 。”

要查看 GTC ‘ 21 会话,请参阅 基于物理信息的多孔介质流动与输运神经网络 。有关功能和下载工具包的更多信息,请参见 NVIDIA 模拟网络 型。

Tags