1.模型建立和显示
首先要想观察in文件建立的模型,需要在in文件中写入生成模型的代码,这里我放出代码
#geometry_view: x1 y1 z1 x2 y2 z2 dx dy dz model_name n
前三个参数为建立模型的左下角坐标,中间三个为建立模型的左上角坐标,dx dy dz代表划分网格的大小(一般和你所建立的单位网格大小一致)。
坐标体系不清楚可以看我上一篇博客,二维和三维坐标约定不一致.
运行完后会在in文件的同目录下生成vti文件,使用Paraview打开vit文件,点击gprMAX_info插件(这个插件需要从gprmax库的文件夹中添加到Paraview),即可看到你创建的模型。
左边可以调节模块的透明度,达到你想要的效果。
上述模型的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: 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
2.波形快显
需要再in文件中加入获取某一时刻的波形状态的代码,一般使用python循环某一区间,可以达到动图的效果,也可以制作为视频。
在in文件中末尾加上以下代码
#python:
for i in range(1,30):
time_point = i * 1e-9
snapshot_name = f'#snapshot: 0 0 0 1 0.5 0.7 0.004 0.004 0.004 {time_point} snapshot{i}'
print(snapshot_name)
#end_python:
其中(1,30)是指在模拟的过程中共取29个点,第30个点取不到,如果需要取30个点应选择31。1e-9是指1ns,在#snapshot:中前三个参数为获取波形的空间中的左下角坐标,中间三个为建立模型的左上角坐标,dx dy dz代表划分网格的大小。snapshot参数为快照名称,可以自行更改。
代码运行之后将在n文件的同目录下生成一组vti文件,使用Paraview打开vit文件,会发现只有模型的外框线,既看不到模型也看不到波场。
经过这样操作就可以看到波场了,左上角可以选择电场或者磁场,我这里选择为电场
重要的是第三个选项,如果是二维模型就选择surface,三维模型选择volume,下一步点击播放就可以看到波场传播的途径啦。