学习周报:文献阅读+Fluent案例+有限体积法理论学习

news2024/11/25 5:02:54

目录

摘要

Abstract

文献阅读:基于物理信息神经网络的稀疏数据油藏模拟

文献摘要

文章讨论|结论

各方程和原理简介

PINN简介

域分解

实验设置

单相油藏问题

油水两相问题

Fluent实例:Y型弯管中的流体混合分析

几何建模部分

网格划分

求解器设置:

有限体积法学习

总结

摘要

  在本周中,通过阅读文献,发现了一种基于域分解来模拟稀疏数据油藏模拟的新PINN架构(PINN-DD),结果表明,在处理有限数据的大规模油藏模拟时,PINN-DD具有优势,并且在这种情况下,它有可能优于传统的pinn。在Fluent中,选用明Y型弯管中的流体混合分析,进行几何划分和设置求解。理论学习方面,对有限体积法的基本原理进行了学习。

Abstract

  This week, I read the literature and discovered a new PINN architecture (PINN-DD) for sparse data reservoir simulation based on domain decomposition, which shows that PINN-DD has advantages when dealing with large-scale reservoir simulations with limited data, and in this case, it has the potential to outperform traditional PINs. In Fluent, I used the fluid mix analysis in the open Y-bend to do the geometry and setup solution. In terms of theoretical study, I learned the basic principles of the finite volume method.

文献阅读:基于物理信息神经网络的稀疏数据油藏模拟

Physics-informed neural network-based petroleum reservoir simulation with sparse data using domain decomposition

文献摘要

    本研究引入了一种名为基于域分解的物理信息神经网络(PINN-DD)的新架构,旨在有效利用井的稀疏生产数据进行大规模系统的油藏模拟。为了利用物理信息神经网络(pinn)处理小规模时空域的能力,同时解决具有稀疏标记数据的大规模系统的挑战,计算域分为两个不同的子域:包含井和无井子域。此外,两个子域和接口受到控制方程、数据匹配和边界条件的严格约束。结果表明,在处理有限数据的大规模油藏模拟时,PINN-DD具有优势,并且在这种情况下,它有可能优于传统的pinn。

文章讨论|结论

  文章提出了一种基于域分解的物理信息神经网络(PINN-DD),即在有限的数据中进行更为精确的大尺度模拟(当培训真实油藏数据缺乏时),通过利用PINN在解决小尺度时空问题中的优势,解决大规模计算领域所带来的挑战。

  这项工作的新颖之处在于:首次将区域分解方法的思想引入到基于物理信息的大规模油藏模拟中。它充分考虑了稀疏数据带来的挑战以及PINN模型擅长求解小尺度时空域的事实。在计算域上,它保持了近井区(梯度最大)的物理连续性,子域和界面都受到控制方程、数据匹配和边界条件的严格约束。

  由于传统的PINN模型不能准确地求解具有源汇项的偏微分方程除非时空场很小或有大量标记数据来指导训练过程,所以采用域分解的方法可以很好的使用这些数据来提高准确性。

  文献中通过使用简化的多孔介质油水两相达西流模型作为控制方程,利用自动微分和域分解的方式进行计算,充分考虑了稀疏数据带来的挑战以及PINN模型擅长求解小尺度时空域的优势。

  在t=10d和t=30 d的单相和两相情况下,与标准的PINN模型相比:

  PINN- dd始终能够获得更低的绝对压力场误差。领域分解技术有助于减少误差积累,尽管PINN- dd和标准PINN模型都受到误差积累的影响,但PINN- dd的误差增长速度较慢。

该研究存在以下局限:

  1. 虽然PINN-DD方法可以在有限的数据下捕获大型油藏的压力动态系统,但其缺点是计算量大,耗时长。
  2. 尽管该方法只需要稀疏的生产数据,但本研究中使用的数据是通过数值方法获得的。因此,缺乏校正地质静态参数的历史匹配过程是本研究的另一个局限性。

各方程和原理简介

  多孔介质的一般油水两相达西流模型,该模型可以进一步简化为单相模型。该模型假定流体具有轻微的可压缩性和不可混溶性,并且两相之间没有传质。控制方程表示为:

  水饱和度和油饱和度分别为Sw和S0;Qw、qo为油水相源汇项,φ为孔隙度,ρ为密度,μ为油和水的速度;K为油和水的相对渗透系数

其井眼(即最难捕捉的区域附近)可用peaceman方程描述:

Pwell为含井网格压力,PWF为井底流量压力,re是等效半径,S是集肤效应,S=0

  两相流的控制方程描述了压力和饱和度之间的耦合关系,使用二维BuckleyeLeverett两相方程来进行油水两相混合的探讨:

Sw为含水饱和度;Fw为水分流;R为距注水井的距离;A(r)为横截面积;φ为多孔介质孔隙度。

PINN简介

  文中除了基本的自动微分(AD)的原理介绍,即将函数表示为初等运算图,然后使用链式法则在图中传播导数,其输出函数为:

  u通常表示状态变量,如储层内的压力或饱和度。我们假设它可以用全连接神经网络表示为uθ:

  其中σ为激活函数,W为权重;b为偏差。

  PINN中的损失函数由控制方程的残差、初始条件和边界条件以及数据匹配,在理论上,任何数据集都必须满足控制方程,这意味着控制方程的残差应该接近于零,故控制方程的残差可以表示为:

  同样,初始条件、边界条件和数据匹配相关的均方误差可以表示为:

  将上述的均方差函数乘以一个权重系数λ再相加,获得PINN的损失函数:

  其PINN-DD的框架如图所示:

  利用决定系数R2和相对误差L2来评价精度,如下:

uθi为pinn的解;N为评价点个数;UI为评价点的数值解;U是数值解U的平均值。

域分解

  同上面说过的,PINN不能精确的求解源项(压力梯度最大的区域)附近的值,可使用域分解将计算域被划分为两个不同的子域:小的含井子域1和大的无井子域2。在划分界面处状态变量分布的连续性假设连接了不同的域。该接口的时空数据包含在两个子域中并同时进行训练,使得该接口同时受到两个子域的控制方程和边界条件的约束。因此,无需在接口上附加约束,即可隐式地满足连续性条件,域分解如图所示:

  大尺寸界面对于无井域计算是有利的,因为它有效地覆盖了更广泛的区域,但无法以所需的精度捕获靠近井筒的快速变化的梯度。

  相反,较小的界面可以模拟严重的梯度变化,减少井筒和含井区域之间的尺度不匹配,但代价是增加了无井区域的计算复杂性。

  如图10所示,计算域可以根据是否存在生产井、注水井或两者都不存在的情况划分为三个子域:

实验设置

单相油藏问题

  基于计算效率和对并置点数据采样的考虑,选择了10 m的界面尺寸进行研究,计算域为500 m的无流边界正方形。生产井位于溶液区域的中心,以50 m3 /d的恒定速率作业;压力为300 bar,渗透率、孔隙度和Cf分别为100 mD、0.2和0.00045 bar-1采用softplus激活函数,构建一个包含15个隐藏层的神经网络,每层包含100个神经元。采用学习率衰减策略的Adam优化器对网络进行训练。

  图中分别为t=10 d和t=30 d时PINN- dd和PINN的解压力场:

  由图可以看出,PINN-DD再10d和30d的绝对误差都保持再4bar以下,而pinn的误差为12和18bar,从图4和图5可以看出,PINN-DD的近井区分布模式与参考值更加接近,证实了区域分解提高了近井区的模拟效果。从图6中,我们可以看到PINN-dd和PINN的相对误差L2的对比:

  值得注意的是,虽然两种方法都达到了相当水平的相对误差L2,但pinn- dd显示出更高的精度。

  与PINN模型一样,pindd也存在误差积累的问题,但我们可以看到,PINN- dd误差随时间的斜率明显小于PINN,证明了其更稳定的泛化能力。

  图7中显示了以沿计算域对角线使用PINNDD和PINN获得的压力结果,可以看出,在压力梯度最大的区域中,PINN- dd的结果都优于PINN。

  PINN-DD方法中熟练应用的区域分解强调了井附近状态变量的连续性。相反,PINN模型试图将整个计算域作为一个整体来解决,因此,它很难精确捕获近井区内出现的复杂压力波动。(近井区压力的不准确性也会传播并影响远井区,从而加剧了传统PINN方法固有的局限性。)

油水两相问题

  假设流体既不可压缩又不可混相符合二维BuckleyeLeverett两相问题。基于这些基本假设,我们可以基于BuckleyeLeverett理论,利用pinn构造一个swi -net来求解,然后结合基本的两相控制方程,利用PINN-DD来求解压力。

  在本研究中,我们使用Sw-net来求解二维BuckleyeLeverett方程,并将其预训练模型作为辅助模型在pin - dd求解压力场的过程中。预训练模型提供了每个时间步长各时空点的饱和值,进一步方便了压力项系数值的确定。

  待求解的物理模型是一个面积为100 m ×100m的二维域,具有四种无流边界条件。注采井分别位于(97.5,97.5)和(2.5,2.5),初始压力为250bar,初始含水饱和度为0.2,不可还原水饱和度和剩余油饱和度均为0.2,渗透率为100 mD,水粘度为0.3 mPa s,油粘度为3 mPa s。注水井和生产井分别以30 m3 /d的恒定液量和150 bar的恒定井底压力运行。神经网络由20个隐藏层组成,每个隐藏层有50个神经元(其他网络参数同上个实验)。

  图11(b)、图12(b)、图11(d)和图12(d)分别显示了在t=10 d和t=30 d时,PINN- dd和PINN解算的压力场。PINN- dd的绝对误差保持在8 bar以下,而PINN的绝对误差达到22 bar。结果表明,PINN-DD在注水井附近误差较小,表明区域分解可以提高生产数据稀疏的大规模计算域问题的精度:

  图13比较了PINN- dd和PINN模型在30 d内的相对误差L2。结果证实,区域分解有效地缓解了误差积累。预计PINN-DD模型在后期可能会出现误差增大的趋势。然而,对于当前30天的模拟,pin - dd中的误差累积效应并不显著。因此,区域分解提高了PINN模型在求解两相问题时的精度和稳定性。

    图14显示了在t=10 d和t=30 d沿对角线使用PINN- dd和PINN获得的压力结果:

  结果表明,PINN- dd曲线与真值曲线非常接近,而标准PINN模型存在显著差异。这是由于:PINN模型收敛性差的原因是饱和场中存在不连续的冲击锋面,井筒附近压力梯度变化剧烈,导致注水井附近压力场解不准确。

Fluent实例:Y型弯管中的流体混合分析

几何建模部分

  在Design modeler中建立出模型,调整单位为mm,在XY平面中绘制出一个宽10mm,长50mm的矩形,在顶点处绘制出一条50mm的线,使用对称、等长命令使得生成一条关于Y轴对称的线;再在线上方绘制出50mm与第一条线平行的斜线,重复操作后生成草图:

  后使用长度约束两条线间距为10mm,在上方的线顶点处绘制垂直于X轴的线,修剪后如下:

  挤出模型10mm,并使用混合中的固定半径命令,使其外围12边变成圆边,绘制完成的模型如下:

网格划分

  先在尺寸调整中关闭自适应尺寸划分网格的命令,插入“划分方法”,改变网格类型为四面体网格:

  插入尺寸调整命令,关闭“捕获曲率”,使用硬解的方式,将最小单元尺寸改为0.001m,后进行边界名称划分:

求解器设置:

  采用8核双精度,进入求解器设置,打开重力设置,在Y轴上-9.81m/s2,打开能量模型,计算模型为层流,具体设置如下:

添加液体水为流体材料,将流体域材料更改为水,设置初始边界条件,初始温度设置为325k和275k:

将残差调整为1e-06,获得更精确的数据,采用标准初始化,计算参考区域为all zone,参数保持默认(其中温度与设置的初始条件有关,为两个入口出的温度加权平均值):

迭代步数为1000次,结果如下所示:

残差:

原案例:

  可见在450次收敛左右获得远超于设置值的结果,与原案例中趋向相符,且出口处速度为两倍入口处速度,且出口温度为两个入口处的加权平均:

速度流线图:

温度云图:

压力云图:

速度云图:

有限体积法学习

总结

这一周主要聚焦在补习有限体积法中的数学定理,由于之前的记录中有相关内容,所以没有进行重复的记录。而在文献阅读的过程中,发现域分解的相关文献又需要这一部分的知识,故会先对其进行补充学习,拓展自己的思维。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

举个栗子!Tableau 技巧(272):学做曲线面积图(Sigmoid area charts)

曲线面积图(Sigmoid area charts)是区域图的一种创新变形,呈现数据随时间变化的情况,也可用于对数据总值趋势的洞察。 如何在 Tableau 中具体实现呢?今天的栗子,一睹为快吧! 本期《举个栗子》…

相关运算及实现

本文介绍相关运算及实现。 相关运算在相关检测及数字锁相放大中经常用到,其与卷积运算又有一定的联系,本文简要介绍其基本运算及与卷积运算的联系,并给出实现。 1.定义 这里以长度为N的离散时间序列x(n),y(n)为例,相关运算定义如…

2024 年 6 款最佳高清屏幕录像机,用于录制和共享

为了获得令人惊叹和详细的视频,一个优秀的高清屏幕 录像机是必不可少的。高清录像机广泛用于录制研讨会、会议、培训课程,甚至视频游戏。顶屏摄像头通常包含视频编辑、动画和 4K 录制等尖端功能和高端效果。 市场上有大量适用于 Windows 和 Mac 的屏幕录…

冯喜运:4.29黄金原油多空争夺,今日操作建议走势分析

【黄金消息面分析】:周一(4月29日)亚市早盘,现货黄金窄幅震荡,目前交投于2328美元/盎司。金价上周五反弹受阻,收报2337.36美元/盎司,此前数据显示美国物价升幅符合预期;随着中东危机…

认识及创建线程(Thread)

1 概念 1.1线程是什么 线程是CPU调度的基本单位,它是在进程内部运行的执行流,线程比进程粒度更细,调度成本更低 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多…

git 命令怎么回退到指定的某个提交 commit hash 并推送远程分支?

问题 如下图,我要回退到 【002】Babel 的编译流程 这一次提交 解决 1、先执行下面命令,输出日志,主要就是拿到提交 commit 的 hash,上图红框即可 git log或者 vscode 里面直接右击,copy sha 2、执行下面命令回退 g…

AOMEI Partition Assistant傲梅分区助手技术员版:专业级的硬盘分区利器

在数字化时代,数据存储和管理变得愈发重要。对于电脑技术员而言,一款功能强大、操作简便的分区工具无疑是提高工作效率的得力助手。而傲梅分区助手技术员版(AOMEI Partition Assistant)正是这样一款备受赞誉的专业级硬盘分区软件。…

9种单片机常用的软件架构

长文预警,加代码5000多字,写了4个多小时,盘软件架构,这篇文章就够了! 可能很多工程师,工作了很多年,都不会有软件架构的概念。 因为我在做研发工程师的第6年,才开始意识到这个东西,在…

【Linux】对信号产生的内核级理解

一、键盘产生信号 键盘产生信号这里就要涉及一个重要的概念了,叫硬件中断。我这里会粗粒度地说一下键盘产生信号,以及信号被上层软件读到的过程,只是说一下我自己的理解。 1.1、硬件中断 硬件中断是计算机中的一种机制,它允许硬件…

Python 自定义日志输出

Python 有着内置的日志输出模块:logging 使用也很方便,但我们今天不说这个,我们用文件读写模块,实现自己的日志输出模块;这样在项目中,可以存在更高的自由度及更高的扩展性; 先来看看日志输出…

道路积水检查与报警

文章目录 模型训练积水图像数据集yolo训练流程 图像采集图像预处理模型训练参数设置积水检测与分类数据存储界面制作 模型训练 积水图像数据集 收集积水图像,制作数据集。每张图像对应的标注信息,通常包括目标的类别、边界框坐标等。标注数据可以通过标…

SAP的生成式AI

这是一篇openSAP中关于SAP生成式AI课程的笔记,原地址https://open.sap.com/courses/genai1/ 文章目录 Unit 1: Approaches to artificial intelligence概念三种范式监督学习非监督学习强化学习 Unit 2: Introduction to generative AI生成式AI基础模型关系基础模型有…

软件物料清单(SBOM)生成指南 .pdf

如今软件安全攻击技术手段不断升级,攻击数量显著增长。尤其是针对软件供应链的安全攻击,具有高隐秘性、追溯难的特点,对企业软件安全威胁极大。 同时,软件本身也在不断地更新迭代,软件内部成分安全性在持续变化浮动。…

报错:测试报错postman(测试接口)

报错如下 c.e.exception.GlobalExceptionHandler : 异常信息: Content type multipart/form-data;boundary--------------------------952399813172082093419475;charsetUTF-8 not supported 解决: 异常信息 Content type multipart/form-data;boundary…

STM32使用PWM控制舵机

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 舵机简介 2. 硬件连接 3. 代码实现 3.1 PWM.c 3.2 PWM.h 3.3 Servo.c 3.4 Servo.h 3.5 main.c 3.6 完整工程文件 PWM和OC输出详解: STM32定时器的OC比较和PWM​​​​​​​ 1. …

树莓派学习笔记--树莓派终端基本操作与系统备份(全卡备份,压缩备份)

树莓派终端基本操作 sudo su #切换为超级用户身份 su lyh #切换回普通用户lyh(用户名)#目录切换命令 pwd #显示当前所在目录 cd ~ #切换到主目录(/home/用户名),~也可省略不写 cd dir …

python程序设计语言超详细知识总结

Python 首先 python 并不是简单,什么语言都有基础和高级之分,要想掌握一门语言,必须把高级部分掌握才行。 HelloWorld helloWorld.py print(hello, world)数据类型与变量 变量的数据类型数据类型描述变量的定义方式整数型 (int)整数&…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统: Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…

微软最新季度业绩结果充分说明了云和AI的增长、谷歌和AWS的竞争

微软最新的季度业绩超出了华尔街的各种预期,但对其服务合作伙伴来说,最重要的是这家科技巨头的预期:人工智能不仅能够增长,而且其云产品尚未达到稳定状态——人工智能是云的潜在增长加速器。 周五的一份分析师报告称,…

实现堆的各种基本运算的算法(数据结构)

以小堆为例,大堆就举一反三了。 堆的物理结构就是普通的数组,但是逻辑结构看成了一颗完全二叉树。 小堆,就是树的每一个父节点都小于他的孩子节点。如图中第一排的a与b。大堆,就是树的每一个父节点都大于他的孩子节点。如图中第…