你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-08 07:24:19 +08:00
Moved simple benchmarking to API
这个提交包含在:
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.1 0.1 0.1
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.15 0.15 0.15
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.2 0.2 0.2
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.3 0.3 0.3
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.4 0.4 0.4
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.45 0.45 0.45
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.5 0.5 0.5
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.6 0.6 0.6
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.7 0.7 0.7
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -1,7 +0,0 @@
|
|||||||
#domain: 0.8 0.8 0.8
|
|
||||||
#dx_dy_dz: 0.001 0.001 0.001
|
|
||||||
#time_window: 3e-9
|
|
||||||
|
|
||||||
#waveform: gaussiandotnorm 1 900e6 MySource
|
|
||||||
#hertzian_dipole: x 0.05 0.05 0.05 MySource
|
|
||||||
#rx: 0.05 0.05 0.05
|
|
@@ -0,0 +1,54 @@
|
|||||||
|
"""A series of models with different domain sizes used for benchmarking.
|
||||||
|
The domain is free space with a simple source (Hertzian Dipole) and
|
||||||
|
receiver at the centre.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
import gprMax
|
||||||
|
|
||||||
|
# File path for output
|
||||||
|
fn = Path(__file__)
|
||||||
|
|
||||||
|
# Cube side lengths (in cells) for different domains
|
||||||
|
domains = [0.10, 0.15, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80]
|
||||||
|
|
||||||
|
# Number of OpenMP threads to benchmark each domain size
|
||||||
|
ompthreads = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
|
|
||||||
|
scenes = []
|
||||||
|
|
||||||
|
for d in domains:
|
||||||
|
for threads in ompthreads:
|
||||||
|
|
||||||
|
# Discretisation
|
||||||
|
dl = 0.001
|
||||||
|
|
||||||
|
# Domain
|
||||||
|
x = d
|
||||||
|
y = x
|
||||||
|
z = x
|
||||||
|
|
||||||
|
scene = gprMax.Scene()
|
||||||
|
|
||||||
|
title = gprMax.Title(name=fn.with_suffix('').name)
|
||||||
|
domain = gprMax.Domain(p1=(x, y, z))
|
||||||
|
dxdydz = gprMax.Discretisation(p1=(dl, dl, dl))
|
||||||
|
time_window = gprMax.TimeWindow(time=3e-9)
|
||||||
|
wv = gprMax.Waveform(wave_type='gaussiandotnorm', amp=1, freq=900e6,
|
||||||
|
id='MySource')
|
||||||
|
src = gprMax.HertzianDipole(p1=(x/2, y/2, z/2), polarisation='x',
|
||||||
|
waveform_id='MySource')
|
||||||
|
|
||||||
|
omp = gprMax.OMPThreads(n=threads)
|
||||||
|
|
||||||
|
scene.add(title)
|
||||||
|
scene.add(domain)
|
||||||
|
scene.add(dxdydz)
|
||||||
|
scene.add(time_window)
|
||||||
|
scene.add(wv)
|
||||||
|
scene.add(src)
|
||||||
|
scene.add(omp)
|
||||||
|
scenes.append(scene)
|
||||||
|
|
||||||
|
# Run model
|
||||||
|
gprMax.run(scenes=scenes, n=len(scenes), geometry_only=False, outputfile=fn, gpu=None)
|
在新工单中引用
屏蔽一个用户