3.1 python代码块命令
功能:输入文件中编写#python和#end_python之间的python代码块。代码块会在gprMax读取
输入文件时执行。
命令格式为:#python:
代码块
#end_python:
使用到Python脚本,是为包含gprMax更复杂对象库,比如天线,使用python脚本就可以很容
易地插入到模型中。
gprMax中内置常量,运用Python代码可以直接使用:
光在真空中的速度:𝑐 = 2.9979245 × 108 m/s
自由空间的介电常数:𝜖0 = 8.854187 × 10−12 F/m
自由空间的磁导率:𝜇0 = 1.256637 × 10−6 H/m
自由空间的阻抗:𝑧0 = 376.7303134 Ohms
gprM中内置变量,运用Python代码可以直接使用:
current_model_run:正在执行的模型的当前运行数
Number_model_runs:模型最初执行时指定的运行总数(模型跑bscan图使用)
python -m gprMax my_input_file -n number_of_model_runs
input_directory:输入文件所在目录的路径
命令的使用:函数输入指令
使用Python代码块中创建命令更容易,其中gprMax中有内置模块,包含一些最常用的函数形式
的输入命令。
例如,使用Python在模型中生成一系列圆柱体:
#python:
from gprMax.input_cmd_funcs import *
domain = domain(0.2, 0.2, 0.2)
for x in range(0, 8):
cylinder(0.02 + x * 0.02, 0.05, 0, 0.020 + x * 0.02, 0.05, domain[2], 0.005,'pec’)
#end_python:
其中,domain函数会将#domain命令打印到输入文件中,并返回一个包含域范围的变
量,cylinder函数会将#cylinde命令打印输入文件中,根据for循环的次数打印。
3.2 include_file命令
功能:从指定文件中包含的命令插入到输入文件中放置#include_file命令的位置。
命令格式为:#include_file: file1
file1可以是在与输入文件相同的目录中包含命令的文件名称,也可以是包含命令的文件的完整
路径(任何位置)。
3.3 time_step_stability_factor命令
功能:更改gprMax使用的时间步长∆𝑡的值。默认是允许的最大时间步长。
命令格式为: #time_step_stability_factor: f1
其中f1可以取0 < f1≤1,那么实际使用的时间步长是f1 *∆𝑡,其中∆𝑡是使用CFL条件中的等式计
算的(2.2中公式取等的值)。
3.4 title命令
功能:允许你为你的模型添加标题。这个标题保存在输出文件中。
命令格式为: #title: str1
其中str1可以包含空格字符来分隔单个单词,标题必须包含在一行中。
3.5 messages命令
功能:控制gprMax运行时显示在屏幕上的信息量。
命令格式为:#messages: c1
其中c1可以是y(是)或n(否),打开或关闭显示屏幕上的信息量,默认值为y。
当打开显示屏幕上的信息量时,gprMax将在屏幕上显示空间和时间值到单元格坐标,迭代次
数,材料参数等信息。
3.6 num_threads命令
功能:控制在运行模型时使用多少OpenMP线程(通常是可用的物理CPU内核的数量)。
gprMax中计算最密集的部分是FDTD求解器循环,已经使用OpenMP 并行化,OpenMP支持
多平台共享内存多处理。
命令格式为:#num_threads: i1
其中i1是要使用的OpenMP线程数。如果没有指定#num_threads, gprMax将首先查看环境变
量OMP_NUM_THREADS是否存在,如果不存在,将检测并使用机器上所有可用的物理CPU内
核。