Gprmax 三维地质雷达建模及在 paraview 中的可视化(1)
Gprmax 运行三维模型速度很慢,建议在有GPU加速的环境下运行,有关GPU加速的方法,在我的上一个博客link中有说明。
一、in文件
这里,我们想建立一个长 4 m ,宽 2 m,深 2 m 的研究区域,填充物质为土壤,查阅资料得知土壤的相对介电常数为 12,电导率为 0.01,在深度为 1 m 的地下埋有水平放置的金属管线,半径为 20 cm ,管壁厚度 1 cm ,采用 gprmax 内置的理想金属 pec 材料。假设地质雷达天线频率为 500 MHz,时窗设为 60 ns ,源和接收点每次移动 1 cm,测线在研究区域窄边 1 m 处,垂直管线走向,网格大小为 1 cm。按照上述要求,我们编写的 in 文件如下:
#title: 3Dpec_100cm_20cm
#material: 12.0 0.01 1.0 0.0 turang
#material: 1.0 0 1.0 0.0 air
#domain: 4.000 2.100 2.000
#dx_dy_dz: 0.010 0.010 0.010
#time_window: 60e-9
#box: 0.000 0.000 0.000 4.000 2.000 2.000 turang
#cylinder: 2 1.00 0 2 1.00 2.00 0.200 pec
#cylinder: 2 1.00 0 2 1.00 2.00 0.190 air
#waveform: ricker 1.0 500e6 my_ricker
#hertzian_dipole: z 0.100 2.000 1.000 my_ricker
#rx: 0.200 2.000 1.000
#src_steps: 0.100 0.000 0.000
#rx_steps: 0.100 0.000 0.000
#geometry_view: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 PEC n
#python:
for i in range(1,61):
print('#snapshot: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 {} snapshot{}'.format((i/10)*10e-9,i))
#end_python:
2、管线倾斜的情况
#title: 3Dpec_100cm_20cm
#material: 12.0 0.01 1.0 0.0 turang
#material: 1.0 0 1.0 0.0 air
#domain: 4.000 2.100 2.000
#dx_dy_dz: 0.010 0.010 0.010
#time_window: 60e-9
#box: 0.000 0.000 0.000 4.000 2.000 2.000 turang
#cylinder: 1.5 1.00 0 2.5 1.00 2.00 0.200 pec
#cylinder: 1.5 1.00 0 2.5 1.00 2.00 0.190 air
#waveform: ricker 1.0 500e6 my_ricker
#hertzian_dipole: z 0.100 2.000 1.000 my_ricker
#rx: 0.200 2.000 1.000
#src_steps: 0.100 0.000 0.000
#rx_steps: 0.100 0.000 0.000
snapshot: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 58e-9 snapshot1
#geometry_view: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 PEC n
#python:
for i in range(1,61,5):
print('#snapshot: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 {} snapshot{}'.format((i/10)*10e-9,i))
#end_python:
对于倾斜的管线,只用设置 cylinder 参数即可。
#title: 3Dpec_100cm_20cm
#material: 12.0 0.01 1.0 0.0 turang
#material: 1.0 0 1.0 0.0 air
#domain: 4.000 2.100 2.000
#dx_dy_dz: 0.010 0.010 0.010
#time_window: 60e-9
#box: 0.000 0.000 0.000 4.000 2.000 2.000 turang
#cylinder: 2 0.70 0 2 1.30 2.00 0.200 pec
#cylinder: 2 0.70 0 2 1.30 2.00 0.190 air
#waveform: ricker 1.0 500e6 my_ricker
#hertzian_dipole: z 0.100 2.000 1.000 my_ricker
#rx: 0.200 2.000 1.000
#src_steps: 0.100 0.000 0.000
#rx_steps: 0.100 0.000 0.000
#snapshot: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 58e-9 snapshot1
#geometry_view: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 PEC n
python:
for i in range(1,61):
print('#snapshot: 0 0 0 4.000 2.100 2.000 0.010 0.010 0.010 {} snapshot{}'.format((i/10)*10e-9,i))
end_python:
二、模型可视化
将 vti 文件导入 paraview 中可视化三维模型。
第一个 in 文件对应的模型
第二个 in 文件对应的模型
第三个 in 文件对应的模型
三、仿真结果
1、一条测线的雷达扫描图
2、不同时刻的波场图
3、波场图
[^1]本文仅供学习交流。