探地雷达正演模拟,基于时域有限差分方法,一

news2024/10/6 2:27:56

     声明:本博客中的公式均是在Word中使用AxMath写好后截图使用的,欢迎引用,但请标注来源。

本系列会有四篇博客:

第一篇内容:

1、基础知识掌握

2、Maxwell方法差分求解原理

第二篇内容:

1、基于C++的TE波波动方程实现

2、边界问题的产生及处理

第三篇内容:

1、基于实际操作流程的GPR正演模拟

2、简单并行化加速GPR正演模拟

第四篇内容:

1、GPR剖面获取及成像

2、简单数据处理及分析

   探地雷达(Ground-Penetrating-Radar,GPR)是一种使用高频电磁波探测近地表地下结构的地球物理勘探方法,该方法对地表无破坏,操作简便,已被广泛应用于考古、城市道路建设、岩土工程调查等领域,有着非常良好的使用效果。但是,当前公开的GPR实际资料较少且难以形成庞大的知识库作为先验性息以备研究人员对实测剖面进行识别,所以,使用GPR正演模拟获得一套资料就显得尤为重要了。

        当前,基于Maxwell方程的GPR正演模拟主要使用的方法有:

        1、有限元方法(论文和开源软件都有)

        2、时域有限差分方法(GPRMax软件已经集成,但该软件没有界面,使用需要通过命令行程序执行)

        其中,时域有限差分方法(Finite-Difference-Time-Domain,FDTD)由K.S.Yee于1966年提出,是一种非常成熟且概念简单的正演模拟方法,因此,本系列博客决定基于FDTD实现GPR正演模拟。

一、时域有限差分方法

        首先从Maxwell旋度方程及其本构方程讲起:

      Maxwell旋度方程:

Maxwell旋度方程

本构关系:

电磁场向量本构关系

在上述公式中,E是电场强度(V/m),H是磁场强度(H/m),D是电通量密度(C/m^2),B是磁通量密度(Wb/m^2),J是电流密度(A/m^2),介电常数\varepsilon _0=8.85*10^{-12}F/m,磁导常数\mu_0=4\pi *10e^{-7}H/m 。

        将旋度方程转换为差分式是比较容易理解的,这里为了方便表示,使用了矩阵形式表示二维微分方程形式的TE波波动方程:

TE波波动方程矩阵形式

其中,

参照参考文献1中的Yee元胞结构:

Yee元胞结构

        通过Yee元胞离散后,就可以对上述波动方程公式进行空间取样。

        这时要注意:虽然文献1中的差分取样是中心差分,该方式的好处是可以得到二阶计算精度(具体可以通过Taylor公式计算),但是计算机中无法通过上述方式实现,只能是在规定点取样,所以,理论上是二阶精度,但是,计算中仍然是一阶精度。

        首先是系数矩阵问题,公式详见参考文献1P18-P19:

系数矩阵

由n状态更新到n+1状态就可以:

具体下标差分方程

上述内容为使用FDTD实现GPR正演模拟所需要的基础知识,重新梳理一遍:通过Yee元胞对Maxwell方程进行离散,得到电磁场的更新方程。

参考文献:葛德彪,闫玉波. 电磁波时域有限差分法第2版.西安:西安电子科技大学出版社,2005:133-137,37,118.

Shen, H, Y., Li, X, S., Duan, R, F., et al., (2023), Quality evaluation of ground improvement by deep cement mixing piles via ground-penetrating radar. Nature Communications,14,34-48. https://doi.org/10.1038/s41467-023-39236-4

冯德山,戴前伟,何继善等. 探地雷达GPR正演的时域有限差分实现(英文)[J].地球物理学进展,2006,(02):630-636.

李静,刘津杰,曾昭发等. 基于变换光学有限差分探地雷达数值模拟研究[J].地球物理学报,2016,59(06):2280-2289.

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

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

相关文章

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:大疆RoboMaster AI挑战赛

NVIDIA Jetson TX2助力机器人战队斩获RoboMaster AI挑战赛冠亚军 一个汇聚数百万机器人专家与研究人员的赛场,一场兼具工程、策略和团队挑战的较量,说的正是近日刚刚在澳大利亚布里斯本ICRA大会上闭幕的大疆RoboMaster AI挑战赛今年的冠军I Hiter以及亚军…

Macbook M芯片Maven的安装与配置

Macbook M芯片Maven的安装与配置 下载 搜索Maven 进入网站 https://maven.apache.org/download.cgi 点击Download 点击如下链接进行下载; 将下载好的文件放到你的指定位置 双击进行解压 配置环境变量 进入终端 在终端中输入 open ~/.bash_profile输入以下内…

UI学习(二)

UI学习(二) 文章目录 UI学习(二)布局子视图手动布局自动布局 导航控制器导航控制器基础导航控制器的切换导航栏工具栏 分栏控制器分栏控制器协议部分的内容UITableView基础部分相关的协议函数高级协议与单元格 多界面传值 布局子视…

csdn上传图片失败解决办法

今天下午写笔记,上传图片的时候总是出现图片上传不成功。查询了下解决方案: C:\Windows\System32\drivers\etc ,使用管理员打开hosts文件加入: 49.7.22.7 csdn-img-blog.oss-cn-beijing.aliyuncs.com保存之后,&#x…

【JavaEE】Spring IoCDI详解

一.基本概念 1.Ioc基本概念 Ioc: Inversion of Control (控制反转), 也就是说 Spring 是⼀个"控制反转"的容器. 什么是控制反转呢? 也就是控制权反转. 什么的控制权发发了反转? 获得依赖对象的过程被反转了也就是说, 当需要某个对象时, 传统开发模式中需要自己通…

中国宠业新锐品牌展,2024苏州国际宠物展6月28日开展!

中国宠业新锐品牌展,2024苏州国际宠物展6月28日开展! ​ 第2届华东国际宠物用品展览会(苏州)暨中国宠业新锐品牌展,将于6月28日-30日在苏州国际博览中心盛大举办,锁定年中市场黄金档期,同期以“NB展,更新鲜…

Letcode-Top 100二叉树专题

94. 二叉树的中序遍历 方法一:递归法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeN…

2024.6.9 四

Python的异常处理 在python里,错误和异常是不同的概念 错误: Python 的语法错误或者称之为解析错,大多是因为写代码写错了出现的 异常: 即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。 大多数的异常…

详解大厂实时数仓建设V4.0

一、实时数仓建设背景 1. 实时需求日趋迫切 目前各大公司的产品需求和内部决策对于数据实时性的要求越来越迫切,需要实时数仓的能力来赋能。传统离线数仓的数据时效性是 T1,调度频率以天为单位,无法支撑实时场景的数据需求。即使能将调度频…

【Spring Boot】异常处理

异常处理 1.认识异常处理1.1 异常处理的必要性1.2 异常的分类1.3 如何处理异常1.3.1 捕获异常1.3.2 抛出异常1.3.4 自定义异常 1.4 Spring Boot 默认的异常处理 2.使用控制器通知3.自定义错误处理控制器3.1 自定义一个错误的处理控制器3.2 自定义业务异常类3.2.1 自定义异常类3…

【小沐学Python】Python实现Web服务器(CentOS下打包Flask)

文章目录 1、简介2、下载Python3、编译Python4、安装PyInstaller5、打包PyInstaller6、相关问题6.1 ImportError: urllib3 v2 only supports OpenSSL 1.1.1, currently the ssl module is compiled with OpenSSL 1.0.2k-fips 26 Jan 2017. See: https://github.com/urllib3/url…

seerfar选品功能,OZON运营插件工具seerfar

在当今这个数字化、信息化的时代,电子商务的飞速发展使得越来越多的商家开始关注如何更高效地运营自己的在线店铺。其中,选品作为电商运营的重要一环,直接影响着店铺的流量、转化率和利润。在OZON这样的电商平台上,如何快速、准确…

Incredibuild for Mac 来了!

Mac 开发者在寻找适合自己需求的工具时可能会遇到一些困难,因为 Mac 操作系统相对封闭,不像其他系统那样开放和灵活。尽管如此,Mac 开发者在开发应用程序时的需求(比如功能、效率等)和使用其他操作系统的开发者是类似的…

联合体和枚举<C语言>

导言 在C语言中除了结构体外,联合体和枚举也是自定义类型,联合体主要用于节省空间,在同一块内存存储多种类型的数据,而枚举可以提高代码的可读性、可维护性。 联合体(union) 它还有个更容易理解的名字&…

Triton学习笔记

b站链接:合集Triton 从入门到精通 文章目录 算法名词解释:scheduler 任务调度器model instance、inference和requestbatching 一、Triton Inference Server原理1. Overview of Trition2. Design Basics of Trition3. Auxiliary Features of Trition4. A…

C语言:定义和使用结构体变量

定义和使用结构体变量 介绍基础用法1.定义结构体2. 声明结构体变量3. 初始化和访问结构体成员4. 使用指针访问结构体成员5. 使用结构体数组 高级用法6. 嵌套结构体7. 匿名结构体8. 结构体和动态内存分配9. 结构体作为函数参数按值传递按引用传递 介绍 在C语言中,结…

找出链表倒数第k个元素-链表题

LCR 140. 训练计划 II - 力扣(LeetCode) 快慢指针。快指针臂慢指针快cnt个元素到最后; class Solution { public:ListNode* trainingPlan(ListNode* head, int cnt) {struct ListNode* quick head;struct ListNode* slow head;for(int i …

抓住时机的核心:坚持学习准备着

在这个快节奏的时代,时间对于每个人来说都是宝贵的。能否在合适的时间做正确的事情,往往决定了我们成功的概率。但同时,我们也要认识到,逆风翻盘虽少,却并非不可能。在这个过程中,投资自己,投资…

【python】错误SyntaxError: invalid syntax的解决方法总结

解决Python报错:【Python】错误SyntaxError: invalid syntax的解决方法总结 SyntaxError是Python编程中常见的错误之一,它表明代码中有语法错误。这种错误可能由多种原因引起,包括但不限于拼写错误、错误的缩进、缺少括号等。本文将介绍几种常…

1-什么是护网行动

1.什么是护网行动 2016年,公安部会同民航局、国家电网组织开展了“护网2016”网络安全攻防演习活动。同年,《网络安全法》颁布,出台网络安全演练相关规定:关键信息基础设施的运营者应“制定网络安全事件应急预案,并定期进行演练”…