你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 23:14:03 +08:00
Fix bug when fractal surfaces at an MPI boundary
- Add a new test that better tests this scenario
这个提交包含在:
@@ -0,0 +1,19 @@
|
||||
#title: Heterogeneous soil using a stochastic distribution of dielectric properties given by a mixing model from Peplinski
|
||||
#domain: 0.100 0.100 0.100
|
||||
#dx_dy_dz: 0.001 0.001 0.001
|
||||
#time_window: 3e-9
|
||||
|
||||
#waveform: ricker 1 1.5e9 my_ricker
|
||||
#hertzian_dipole: y 0.02 0.02 0.02 my_ricker
|
||||
#rx: 0.080 0.080 0.080
|
||||
|
||||
#soil_peplinski: 0.5 0.5 2.0 2.66 0.001 0.25 my_soil
|
||||
|
||||
#fractal_box: 0 0 0 0.049 0.05 0.051 1.5 1 1 1 50 my_soil box_1 42
|
||||
#fractal_box: 0.049 0.05 0.051 0.1 0.1 0.1 1.5 1 1 1 50 my_soil box_2 22
|
||||
|
||||
#add_surface_roughness: 0.049 0 0 0.049 0.05 0.05 1 1 1 0.025 0.05 box_1 43
|
||||
#add_surface_roughness: 0.049 0.05 0.051 0.049 0.1 0.1 1 1 1 0.049 0.074 box_2 23
|
||||
|
||||
|
||||
#geometry_objects_write: 0 0 0 0.1 0.1 0.1 full_volume
|
@@ -25,6 +25,7 @@ class TestAddSurfaceRoughness(GprMaxGeometryTest):
|
||||
"add_surface_roughness_half",
|
||||
"add_surface_roughness_small",
|
||||
"add_surface_roughness_weighted",
|
||||
"add_surface_roughness_boundaries",
|
||||
]
|
||||
)
|
||||
|
||||
@@ -166,17 +167,60 @@ class TestTriangleGeometry(GprMaxRegressionTest):
|
||||
|
||||
|
||||
@rfm.simple_test
|
||||
class TestAddGrassMpi(TestAddGrass):
|
||||
class TestAddGrassMpi(MpiMixin, TestAddGrass):
|
||||
tags = {"test", "mpi", "geometery", "fractal", "surface", "grass"}
|
||||
mpi_layout = parameter([[1, 2, 2], [3, 1, 3], [4, 1, 4]])
|
||||
test_dependency = TestAddGrass
|
||||
|
||||
|
||||
# Depending on the orientation/alignment of the fractal surface, not all
|
||||
# MPI decompositions are valid. Therefore create tests that divide the
|
||||
# domain in each pair of dimensions.
|
||||
# NB: The 'add_surface_roughness_half' test currently fails due to the
|
||||
# floating point precision of the fractal surface. Caused by the:
|
||||
# if (k < surface.fractalsurface[i - surface.xs, j - surface.ys]):
|
||||
# checks in gprMax/user_objects/cmds_geometry/fractal_box.py
|
||||
@rfm.simple_test
|
||||
class TestAddSurfaceRoughnessMpi(MpiMixin, TestAddSurfaceRoughness):
|
||||
class TestAddSurfaceRoughnessMpiYZ(MpiMixin, TestAddSurfaceRoughness):
|
||||
tags = {"test", "mpi", "geometery", "fractal", "surface", "roughness"}
|
||||
mpi_layout = parameter([[2, 1, 2], [3, 3, 1], [1, 4, 4]])
|
||||
mpi_layout = parameter([[1, 2, 2], [1, 3, 3], [1, 4, 4]])
|
||||
test_dependency = TestAddSurfaceRoughness
|
||||
model = parameter(
|
||||
[
|
||||
"add_surface_roughness_full",
|
||||
# "add_surface_roughness_half",
|
||||
"add_surface_roughness_small",
|
||||
"add_surface_roughness_weighted",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@rfm.simple_test
|
||||
class TestAddSurfaceRoughnessMpiXZ(MpiMixin, TestAddSurfaceRoughness):
|
||||
tags = {"test", "mpi", "geometery", "fractal", "surface", "roughness"}
|
||||
mpi_layout = parameter([[2, 1, 2], [3, 1, 3], [4, 1, 4]])
|
||||
test_dependency = TestAddSurfaceRoughness
|
||||
model = parameter(
|
||||
[
|
||||
"add_surface_roughness_full",
|
||||
# "add_surface_roughness_half",
|
||||
"add_surface_roughness_weighted",
|
||||
"add_surface_roughness_boundaries",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@rfm.simple_test
|
||||
class TestAddSurfaceRoughnessMpiXY(MpiMixin, TestAddSurfaceRoughness):
|
||||
tags = {"test", "mpi", "geometery", "fractal", "surface", "roughness"}
|
||||
mpi_layout = parameter([[2, 2, 1], [3, 3, 1], [4, 4, 1]])
|
||||
test_dependency = TestAddSurfaceRoughness
|
||||
model = parameter(
|
||||
[
|
||||
"add_surface_roughness_small",
|
||||
"add_surface_roughness_boundaries",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@rfm.simple_test
|
||||
|
在新工单中引用
屏蔽一个用户