Deep learning of free boundary and Stefan problems论文阅读复现

news2025/1/11 2:40:54

Deep learning of free boundary and Stefan problems论文阅读复现

  • 摘要
  • 1. 一维一相Stefan问题
    • 1.1 Direct Stefan problem
    • 1.2 Inverse Type I
    • 1.3 Inverse Type II
  • 2. 一维二相Stefan问题
    • 2.1 Direct Stefan problem
    • 2.2 Inverse Type I
    • 2.3 Inverse Type II
  • 3. 二维一相Stefan问题
  • 参考

摘要

在这项工作中,作者提出了一个基于物理信息神经网络的多网络模型,来解决一类一般的正和逆自由边界问题,称为Stefan问题。具体地说,用两个深度神经网络来近似未知解以及任何移动边界。作者提供了三个案例研究(一维一相Stefan问题,一维二相Stefan问题,二维一相Stefan问题),每个案例分别研究了正问题和两个逆问题,相关代码可以在https://github.com/PredictiveIntelligenceLab/DeepStefan获得。

复现代码环境:

conda create -n tensorflow1x python=3.6
conda activate tensorflow1x
pip install tensorflow==1.15.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

1. 一维一相Stefan问题

在这里插入图片描述

  1. Direct Stefan problem: 已知 u 0 , g ( t ) , s 0 , h 1 ( t ) , h 2 ( t ) u_0, g(t), s_0, h_1(t), h_2(t) u0,g(t),s0,h1(t),h2(t) ,求解 u ( x , t ) : Ω → R . u(x,t):\Omega \rightarrow \mathbb{R}. u(x,t):ΩR.
  2. Inverse Type I: 希望找到满足方程(3.1),(3.2),(3.5),(3.6)的温度分布 u ( x , t ) u(x,t) u(x,t) ,也希望当移动边界 s ( t ) s(t) s(t)已知时重构 Dirichlet 和 Neumann 边界条件。
  3. Inverse Type II: 给出域 Ω \Omega Ω 中的一些温度测量值,试图找到满足方程 (3.1),(3.4),(3.5) 的温度解 u ( x , t ) u(x,t) u(x,t),并确定移动边界 s(t) 的未知位置。

在这里插入图片描述

1.1 Direct Stefan problem

方程 (3.1)-(3.6) 中已知变量由 (3.7)-(3.8) 表示,(3.9) 和 (3.10) 分别是该问题的精确解和移动边界的解。
在这里插入图片描述
文章作者使用两个独立的神经网络近似潜在的 u ( x , t ) u(x,t) u(x,t) s ( t ) s(t) s(t),训练40000epoch,一个epoch从初始条件 x = 0 , x=0, x=0, 边界条件 t = 0 , t=0, t=0, 和内部 Ω ∈ Ω ∗ = [ 0 , 1 ] × [ 0 , 1 ] \Omega \in \Omega^*=[0,1]\times[0,1] ΩΩ=[0,1]×[0,1] 中各随机选择一个batch_size(128)数据点进行训练,没有用到真解。由于 s ( t ) s(t) s(t) 在我们的问题设置中是未知的,所以我们不能简单地在 ( 0 , s ( t ) × ( 0 , t ) (0,s(t)\times(0,t) (0,s(t)×(0,t) 中进行采样点。处理这一技术问题的一种方法是对整个计算域 Ω ∗ \Omega^* Ω 中的配置点进行采样,这是先验已知的,但然后通过将预测解 u θ ( x , t ) u_{\theta}(x,t) uθ(x,t) 限制在域 ( 0 , s β ( t ) × ( 0 , t ) (0,s_{\beta}(t)\times(0,t) (0,sβ(t)×(0,t) 来关注物理解。损失函数如下:
在这里插入图片描述
论文中实验结果:
在这里插入图片描述
复现的实验结果:
请添加图片描述
请添加图片描述
The u(x,t) relative L 2 L_2 L2-error is 4.64e-04.
The s(t) relative L 2 L_2 L2-error is 3.32e-04.

1.2 Inverse Type I

这种类型的逆问题也叫移动边界设计问题,这里的目标是找到满足方程 (3.1)-(3.6) 的解,并在给定自由边界 s ( t ) s(t) s(t) 信息的情况下恢复狄利克雷和诺伊曼边界条件 ( 3.18 ) (3.18) (3.18)
在这里插入图片描述
在这里插入图片描述
论文中实验结果:
在这里插入图片描述
复现实验结果:
请添加图片描述
请添加图片描述

The u(x,t) relative L 2 L_2 L2-error is 2.48e-03.
The u θ u_{\theta} uθ(0,t) relative L 2 L_2 L2-error is 3.32e-03.
The ∂ u θ ∂ x \frac{\partial u_{\theta}}{\partial x} xuθ(0,t) relative L 2 L_2 L2-error is 5.39e-03.

1.3 Inverse Type II

给定少量测试点 { u ( x d a t a j , t d a t a j ) } j = 1 M \{u(x_{data}^j, t_{data}^j)\}_{j=1}^M {u(xdataj,tdataj)}j=1M,我们想得到在域 Ω \Omega Ω 上符合热方程(3.1)的 u ( x , t ) u(x,t) u(x,t),以及未知边界符合(3.4)-(3.6)的 s ( t ) s(t) s(t),这样不需要任何初始或边界条件,这是接近许多现实的应用,这样的信息可能难以获得。为了解决这个问题,依然用两个神经网络 u θ ( x , t ) , s β ( t ) u_{\theta}(x,t),s_{\beta}(t) uθ(x,t),sβ(t) 近似 u ( x , t ) , s ( t ) u(x,t),s(t) u(x,t),s(t)。损失函数如下所示:

在这里插入图片描述
论文中实验结果:
在这里插入图片描述
复现实验结果:

在这里插入图片描述
在这里插入图片描述
The u(x,t) relative L 2 L_2 L2-error is 2.83e-03.
The s(t) relative L 2 L_2 L2-error is 4.11e-04.

2. 一维二相Stefan问题

2.1 Direct Stefan problem

复现实验结果:
在这里插入图片描述
在这里插入图片描述

The u(x,t) relative L 2 L_2 L2-error is 6.35e-04.
The s(t) relative L 2 L_2 L2-error is 2.78e-04.

2.2 Inverse Type I

复现实验结果:
在这里插入图片描述在这里插入图片描述
The u(x,t) relative L 2 L_2 L2-error is 2.71e-03.
The s(t) relative L 2 L_2 L2-error is 1.06e-03.

2.3 Inverse Type II

复现实验结果:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
The u(x,t) relative L 2 L_2 L2-error is 1.71e-03.
The s(t) relative L 2 L_2 L2-error is 2.94e-04.

3. 二维一相Stefan问题

参考

[1] Deep learning of free boundary and Stefan problems
[2] https://github.com/PredictiveIntelligenceLab/DeepStefan

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

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

相关文章

《视觉 SLAM 十四讲》第 7 讲 视觉里程计1 【如何根据图像 估计 相机运动】【特征点法】

github源码链接V2 文章目录 第 7 讲 视觉里程计17.1 特征点法7.1.1 特征点7.1.2 ORB 特征FAST 关键点 ⟹ \Longrightarrow ⟹ Oriented FASTBRIEF 描述子 7.1.3 特征匹配 7.2 实践 【Code】本讲 CMakeLists.txt 7.2.1 使用 OpenCV 进行 ORB 的特征匹配 【Code】7.2.2 手写 O…

windows 2003、2008远程直接关闭远程后设置自动注销会话

1、2003系统: 按开始—运行—输入“tscc.msc”,打开“终端服务配置”。 单击左边窗口的“连接”项,右边窗口中右击“RDP-TCP”,选择“属性”。 单击“会话”项,勾选“替代用户设置”,在“结束已断开的会话”…

C语言中文网 - Shell脚本 - 2

第1章 Shell基础(开胃菜) 2. Shell是运维人员必须掌握的技能 Linux 运维人员就是负责 Linux 服务器的运行和维护。随着互联网的爆发,Linux 运维在最近几年也迎来了春天,出现了大量的职位需求,催生了一批 Linux 运维培…

远程实时监控管理:5G物联网技术助力配电站管理

配电站远程监控管理系统是基于物联网和大数据处理等技术的一种创新解决方案。该系统通过实时监测和巡检配电场所设备的状态、环境情况、安防情况以及火灾消防等信息,实现对配电站的在线实时监控与现场设备数据采集。 配电站远程监控管理系统通过回传数据进行数据系…

Logback日志框架使用详解以及如何Springboot快速集成

Logback简介 日志系统是用于记录程序的运行过程中产生的运行信息、异常信息等&#xff0c;一般有8个级别&#xff0c;从低到高为All < Trace < Debug < Info < Warn < Error < Fatal < OFF off 最高等级&#xff0c;用于关闭所有日志记录fatal 指出每个…

LSM-Tree笔记

假设Level 0为内存中的Buffer&#xff0c;容量为 B B B&#xff0c;层与层之间的条目数量差 T T T 倍 Tiered Level 1共有 T T T 个runs&#xff0c;每个run的容量均为 B B BLevel 2共有 T T T 个runs&#xff0c;每个run的容量均为 T ⋅ B T\cdot B T⋅BLevel n共有 …

周记学习总结

10.3 今天加载出来了一下歌词&#xff0c;并且画了一下旁边的简单动画&#xff0c;然后画了一下下面的评论&#xff0c;今天主要是看了好多歌词滚动并且让它居中的&#xff0c;一直用的是scrollIntoView这个函数&#xff0c;但是这个函数似乎一直没有用&#xff0c;今天了解了…

多自由度工业机械臂机电系统

经过数百万年的进化创造了最通用和完善的工具——人类手臂。我们现代世界中的一切都得益于这个工具。即使到今天&#xff0c;工业界也没有找到比机器人手臂更多功能的工具来在三维空间中操纵物体&#xff0c;机器人手臂本质上是人类手臂的机电复制品。机器人手臂的多功能性确实…

企业关于低代码的需求——PDM 元数据电子审批流

企业关于低代码的需求 PDM 元数据电子审批流 审批流业务场景是现代企业运营中不可或缺的一环。业务流程从某个特定点开始,然后经过一系列的审批节点,完成流程的审批。这些节点通常由不同级别的人员担任,例如主管、经理、财务、法务和总经理等,每个人都扮演着特定的角色和…

阿里云数据库MongoDB恢复到本地

共两种方式&#xff0c;建议使用第二种的逻辑恢复&#xff0c;比较方便快捷 一、下载物理备份文件 下载的格式是xb的&#xff0c;主要跟实例创建时间有关&#xff0c;2019年03月26日之前创建的实例&#xff0c;物理备份文件格式为tar&#xff0c;后面全部都是xb的格式了&#…

DownloadingImages 下载缓存图片,显示图片文字列表

1. 用到的技术点: 1) Codable : 可编/解码 JSON 数据 2) background threads : 后台线程 3) weak self : 弱引用 4) Combine : 取消器/组合操作 5) Publishers and Subscribers : 发布者与订阅者 6) FileManager : 文件管理器 7) NSCache : 缓存 2. 网址: 2.1 测试接口网址: …

docker入门加实战—docker安装并配置阿里云加速

docker入门加实战—docker安装并配置阿里云加速 为什么要学习docker 在开发和部署项目的过程中&#xff0c;经常会遇到如下问题&#xff1a; 软件安装包名字复杂&#xff0c;不知道去哪里找安装软件和部署项目步骤复杂&#xff0c;容易出错 这就是我们今天要学习Docker技术…

7个在Github上的flutter开源程序

阅读大量代码是提高开发技能的最佳方法之一。该开源项目是了解最佳实践、编码风格和许多其他主题的最佳场所。 软件开发最受欢迎的领域之一是跨平台移动应用程序开发。Flutter 是您可以使用的最流行的跨平台移动应用程序开发工具之一。今天&#xff0c;我们将了解 7 个开源 Flu…

sqlalchemy 连接池

报错 sqlalchemy.exc.TimeoutError: QueuePool limit of size 100 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r) 查看数据库未活动超时时间 show variables like "interactive_timeout";一般…

R可视乎|灯芯柱状图代码解读

简介 这篇推文代码来源于&#xff1a;TidyTuesday&#xff0c;主要想学习如何绘制灯芯柱状图&#xff08;名字小编瞎取的&#xff09;&#xff0c;最终结果如下&#xff1a; 注释&#xff1a;与普通柱状图相比&#xff0c;灯芯柱状图不仅可以展示随时间变化的总体趋势&#xf…

AQS内部的体系架构

AQS本质上是一个双向队列&#xff0c;加一个状态位state。内部靠Node节点形成队列。 AQS由state和CLH变体的虚拟双端队列组成。 AQS的内部类Node类 属性说明&#xff1a; 内部结构&#xff1a;

继续改进 另外一种方法 还是可以用CourseExend类

优势&#xff1a;可以映射许多类上 很强大 用在名称不统一上 原理 1.先把查询结果包装 取新别名&#xff08;&#xff08; 就是结果集的映射&#xff08;&#xff09; 2.把中结果集映射相应的pojo类上 第一步基于类创建 第二步 注意字属性的写法 teacher 是属性 属性的属性 …

手机待办事项app哪个好?

手机是日常很多人随身携带的设备&#xff0c;手机除了拥有通讯功能外&#xff0c;还能帮助大家高效管理日常工作&#xff0c;借助手机上的待办事项提醒APP可以快速地帮助大家规划日常事务&#xff0c;提高工作的效率。 过去&#xff0c;我也曾经在寻找一款能够将工作任务清晰罗…

33 WEB漏洞-逻辑越权之水平垂直越权全解

目录 前言水平&#xff0c;垂直越权&#xff0c;未授权访问Pikachu-本地水平垂直越权演示(漏洞成因)墨者水平-身份认证失效漏洞实战(漏洞成因)原理越权检测-Burpsuite插件Authz安装测试(插件使用)修复防御方案 前言 越权漏洞文章分享&#xff1a;https://www.cnblogs.com/zhen…

LockSupport是做什么的?深入理解Java的三种线程等待通知机制

文章目录 一、LockSupport概述1、LockSupport是什么2、三种等待唤醒机制3、其他线程等待唤醒方式&#xff08;了解&#xff09; 二、代码实例分析1、使用wait()notify()&#xff08;1&#xff09;代码实例&#xff08;2&#xff09;分析总结 2、使用await()signal()&#xff08…