diff --git a/gprMax/user_objects/cmds_geometry/fractal_box.py b/gprMax/user_objects/cmds_geometry/fractal_box.py index e78be057..48a22dbf 100644 --- a/gprMax/user_objects/cmds_geometry/fractal_box.py +++ b/gprMax/user_objects/cmds_geometry/fractal_box.py @@ -110,7 +110,13 @@ class FractalBox(RotatableMixin, GeometryUserObject): p3 = uip.round_to_grid_static_point(p1) p4 = uip.round_to_grid_static_point(p2) - _, p1, p2 = uip.check_box_points(p1, p2, self.__str__()) + grid_contains_fractal_box, p1, p2 = uip.check_box_points(p1, p2, self.__str__()) + + # Exit early if none of the fractal box is in this grid as there + # is nothing else to do. + if not grid_contains_fractal_box: + return + xs, ys, zs = p1 xf, yf, zf = p2 diff --git a/reframe_tests/regression_checks/TestFractalBoxGeometry_89b5811d/fractal_box_full.h5 b/reframe_tests/regression_checks/TestFractalBoxGeometry_89b5811d/fractal_box_full.h5 new file mode 100644 index 00000000..985f9b43 Binary files /dev/null and b/reframe_tests/regression_checks/TestFractalBoxGeometry_89b5811d/fractal_box_full.h5 differ diff --git a/reframe_tests/tests/src/geometry_tests/fractal_box_geometry/fractal_box_full.in b/reframe_tests/tests/src/geometry_tests/fractal_box_geometry/fractal_box_full.in new file mode 100644 index 00000000..07c90018 --- /dev/null +++ b/reframe_tests/tests/src/geometry_tests/fractal_box_geometry/fractal_box_full.in @@ -0,0 +1,13 @@ +#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.1 0.1 0.1 1.5 1 1 1 50 my_soil my_soil_box 42 + +#geometry_objects_write: 0 0 0 0.1 0.1 0.1 full_volume diff --git a/reframe_tests/tests/test_geometry.py b/reframe_tests/tests/test_geometry.py index 8cdb539f..412afca0 100644 --- a/reframe_tests/tests/test_geometry.py +++ b/reframe_tests/tests/test_geometry.py @@ -97,6 +97,13 @@ class TestEllipsoidGeometry(GprMaxRegressionTest): ) +@rfm.simple_test +class TestFractalBoxGeometry(GprMaxRegressionTest): + tags = {"test", "serial", "geometery", "fractal", "box", "fractal_box"} + sourcesdir = "src/geometry_tests/fractal_box_geometry" + model = parameter(["fractal_box_full"]) + + # TODO: Add Mixin class to enable testing that invalid geometry throws an error @rfm.simple_test class TestPlateGeometry(GprMaxRegressionTest): @@ -179,6 +186,13 @@ class TestEllipsoidGeometryMpi(MpiMixin, TestEllipsoidGeometry): test_dependency = TestEllipsoidGeometry +@rfm.simple_test +class TestFractalBoxGeometryMpi(MpiMixin, TestFractalBoxGeometry): + tags = {"test", "mpi", "geometery", "fractal", "box", "fractal_box"} + mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) + test_dependency = TestFractalBoxGeometry + + @rfm.simple_test class TestPlateGeometryMpi(MpiMixin, TestPlateGeometry): tags = {"test", "mpi", "geometery", "plate"}