GprMax仿真文件编写说明

本文转载自以下博文

GprMax in文件编写(【精选】GprMax 3.1.5 建模的in文件编写详解(1)_in文件怎么写-CSDN博客)

#title: A-scan from a metal cylinder buried in a dielectric half-space
#domain: 0.240 0.210 0.002
#dx_dy_dz: 0.002 0.002 0.002
#time_window: 3e-9
 
#material: 6 0 1 0 half_space
 
#waveform: ricker 1 1.5e9 my_ricker
#hertzian_dipole: z 0.100 0.170 0 my_ricker
#rx: 0.140 0.170 0
 
#box: 0 0 0 0.240 0.170 0.002 half_space
#cylinder: 0.120 0.080 0 0.120 0.080 0.002 0.010 pec
 
#geometry_view: 0 0 0 0.240 0.210 0.002 0.002 0.002 0.002 cylinder_half_space n

逐行解释

一、标题

#title: A-scan from a metal cylinder buried in a dielectric half-space
#解释:标题应该以#title:开始,:后面跟模型的名称,可以与文件名称不同,可以有空格,最好用英文

二、建模域

#domain:0.240 0.210 0.002
#解释:定义建模空域,应以#domain:开始,分别是x y x三个尺寸,单位为m。如果建立的二维模型,第三维用一个单位的网格表示,如上面代码,x方向为0.24m,y方向为0.21米,z方向为0.002米,即网格大小为0.002米,xoy平面的二维域
补充:域的大小应该包含足够的体积,加上10个单元格的 PML (完全吸收边界条件)边界(默认值是10个单元),PML 与任何对象间大约要相隔10个单元网格,域一般要足够大,才能满足建模条件。对于 2D 模型,在z方向上也应该指定一个单元格。

三、网络大小

#dx_dy_dz:0.002 0.002 0.002     
#解释:定义网络大小,网络大小的尺寸,x y z三个方向都是0.002米。经验法则是要求探地雷达的空间分辨率应为模型中最小波长的十分之一。

为了确定最小波长,需要知道模型中存在的最高频率与最低速度,最高频率不是雷克子波的中心频率,而是检查雷克子波的完整频谱,找到存在的最高频率。假设水平-40dB的中心频率,最高频率是它的2~3倍,在这种情况下,模型中可能出现的最高频率可能在 4 GHz 左右。半空间(速度最低)4 GHz 的波长是:

四、时窗

#time_window:3e-9
#解释:单位是s,时间窗口宁可设大,不可设小

五、模型属性

#material:6 0 1 0 half_space
#解释:定义模型的材料属性,从左至右,相对介电常数、电导率、相对磁化率、磁损,分别是6 0 1 0,half_space为模型中材料的标识符,便于后面调用。模型中有三种材料,分别是空气、介电半空间和金属圆柱体,free_space为空气,pec为金属。

六、子波

#waveform:ricker 1 1.5e9 my_ricker
#解释:参数从左至右,分别为波形类型,波的振幅,中心频率,任意标识符,便于调用。gprMax中还有其他子波类型:如gaussian、gaussiandot、gaussiandotnorm、gaussiandotdotnorm、gaussianprime、gaussiandoubleprime、sine、contsine等。

七、源

#hertzian_dipole:z 0.100 0.170 0 my_ricker
#解释:参数从左至右,分别是极化方向  天线位置坐标(x y z坐标) 子波的标识符

补充知识:A-scan 就是天线放在一个地方不动,自激自收,得到一条回波B-scan 就是类似于A-scan的硬件设施,沿测线方向移动(垂直于测线方向只能采集单道数据),不断采集数据,最终形成一个数据剖面。C-scan 就是在B-scan的硬件基础上,增加天线对数(或通过多次采集),从而实现延测线方向,垂直于测线方向都有回波数据,在纵横向采样间距满足采样定律时,能组成三维数据体。

八、接收点

#rx:0.140 0.170 0
#解释:接收点的坐标值, x y z,后面可以加两个标识符str1和str2,str1是接收方的标识符,str2是这个接收器的输出列表,它可以从Ex、Ey、Ez、Hx、Hy、Hz、Ix、Iy、Iz中任意选择。如果没有设置这两个参数时,默认输出电场和磁场的六个分量。
#补充:可以利用#rx_steps:f1 f2 f3来设置移动点的坐标增量。

九、模型

#box:0 0 0 0.240 0.170 0.002 half_space
#cylinder:0.120 0.080 0 0.120 0.080 0.002 0.010 pec
#解释:#box:从左至右,半空间模型左下顶点的三个坐标(x y z),右上顶点的三个坐标(x y z),模型的材料参数(前面已经定义过的标识符)。
#解释:#cylinder:从左至右,圆柱体的一个面的三个坐标(x y z),圆柱体另一个面的三个坐标(x y z),第7个参数为圆柱体的半径,第8个参数为圆柱体的材料参数,gprMax内部利用pec来替代金属材料的参数。

十、显示模型

#geometry_view:0 0 0 0.240 0.210 0.002 0.002 0.002 cylinder_half_space n 
#解释:将建立的模型的几何信息输出到文件中,格式为开源格式.VTK,可以利用ParaView查看。
#从左至右,分别是左下、右上坐标,三个方向的网格尺寸,第10个参数是文件名,与.in文件在同一路径中,第11个参数是n或者f,n是正常,f是细化,指定输出文件的大小和图形的好坏。当只想检查模型的几何模型形状时,可以使用可选命令参数-geometry-only运行gprMax,这样不会运行正演模拟。

十一、波场快照

#snapshot:0 0 0 0.240 0.170 0.002 0.002 0.002 0.002 1e-9 snap1
#解释:#snapshot生成波场快照,即指定时刻的电磁场信息,用动图显示一段时间的电磁场信息,也可以在Paraview中显示。
#从左至右,分别是左下、右上坐标,三个方向的网格尺寸,第10个参数是以秒为单位的时间或者迭代次数,这里指的是结束时间,开始时间从0时刻开始计算,第11个参数是存储快照的文件名称。可以利用python脚本生成一系列快照。要以0.1 ns的间隔创建30个从0.1 ns开始到3 ns的快照,可以在in文件中使用以下代码片段:
#python:
for i in range(1, 31):
  print(f."#snapshot:x1,y1,z1,x2,y2,z2,dx,dy,dz,{},snapshot{}".(i/10*1e-9, i))
#end_python:
 
#python:  #end_python:表示要插入python代码的开始和结束。

十二、运行gprMax

在cmd黑窗口中运行以下三条命令,即可得到如下结果
$ activate gprMax   
$ python -m gprMax user_models/cylinder_Ascan_2D.in
$ python -m tools.plot_Ascan user_models/cylinder_Ascan_2D.out
 
user_models/cylinder_Ascan_2D.in是指你的In文件路径,可以直接用鼠标将in文件拖到cmd中,按回车键运行。
user_models/cylinder_Ascan_2D.out是指你的out文件路径,可以直接用鼠标将out文件拖到cmd中,按回车键运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值