Skip to content

Commit

Permalink
simplify element-wise array copy in get_source_slice and add unit tes…
Browse files Browse the repository at this point in the history
…t for get_source (#1462)
  • Loading branch information
oskooi authored Jan 4, 2021
1 parent 857dba4 commit 4d4ccb7
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
16 changes: 13 additions & 3 deletions python/tests/simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -577,9 +577,19 @@ def print_field(sim):

def test_source_slice(self):
sim = self.init_simple_simulation()
sim.run(until=5)
slice = sim.get_source(mp.Ez)
print(slice)
sim.run(until=1)

vol1d = mp.Volume(center=mp.Vector3(0.1234,0), size=mp.Vector3(0,5.07))
source_slice = sim.get_source(mp.Ez, vol=vol1d)
x,y,z,w = sim.get_array_metadata(vol=vol1d)
self.assertEqual(source_slice.shape, w.shape)
self.assertEqual(np.sum(source_slice), 0)

vol2d = mp.Volume(center=mp.Vector3(-0.541,0.791), size=mp.Vector3(3.5,2.8))
source_slice = sim.get_source(mp.Ez, vol=vol2d)
x,y,z,w = sim.get_array_metadata(vol=vol2d)
self.assertEqual(source_slice.shape, w.shape)
self.assertNotEqual(np.sum(source_slice), 0)

def test_has_mu(self):

Expand Down
13 changes: 7 additions & 6 deletions src/array_slice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -714,15 +714,16 @@ cdouble *fields::get_source_slice(const volume &where, component source_slice_co
rank = get_array_slice_dimensions(where, dims, dirs, true, false);
slice_size = dims[0] * (rank >= 2 ? dims[1] : 1) * (rank == 3 ? dims[2] : 1);

if (slice != 0) {
for (size_t i = 0; i < slice_size; ++i)
slice[i] = slice_collapsed[i];
slice = array_to_all(slice, slice_size);
if (slice) {
memcpy(slice, slice_collapsed, 2 * slice_size * sizeof(double));
delete[] (cdouble*) slice_collapsed;
}
else
slice = slice_collapsed;

slice_collapsed = array_to_all(slice_collapsed, slice_size);
array_to_all(slice, slice_size);

return slice_collapsed;
return slice;
}

/***************************************************************/
Expand Down

0 comments on commit 4d4ccb7

Please sign in to comment.