diff --git a/meanas/fdtd/boundaries.py b/meanas/fdtd/boundaries.py index 131d741..aa0bff5 100644 --- a/meanas/fdtd/boundaries.py +++ b/meanas/fdtd/boundaries.py @@ -28,17 +28,19 @@ def conducting_boundary( shifted1_slice = [slice(None)] * 3 boundary_slice[direction] = 0 shifted1_slice[direction] = 1 + boundary = tuple(boundary_slice) + shifted1 = tuple(shifted1_slice) def en(e: fdfield_t) -> fdfield_t: - e[direction][boundary_slice] = 0 - e[u][boundary_slice] = e[u][shifted1_slice] - e[v][boundary_slice] = e[v][shifted1_slice] + e[direction][boundary] = 0 + e[u][boundary] = e[u][shifted1] + e[v][boundary] = e[v][shifted1] return e def hn(h: fdfield_t) -> fdfield_t: - h[direction][boundary_slice] = h[direction][shifted1_slice] - h[u][boundary_slice] = 0 - h[v][boundary_slice] = 0 + h[direction][boundary] = h[direction][shifted1] + h[u][boundary] = 0 + h[v][boundary] = 0 return h return en, hn @@ -50,20 +52,23 @@ def conducting_boundary( boundary_slice[direction] = -1 shifted1_slice[direction] = -2 shifted2_slice[direction] = -3 + boundary = tuple(boundary_slice) + shifted1 = tuple(shifted1_slice) + shifted2 = tuple(shifted2_slice) def ep(e: fdfield_t) -> fdfield_t: - e[direction][boundary_slice] = -e[direction][shifted2_slice] - e[direction][shifted1_slice] = 0 - e[u][boundary_slice] = e[u][shifted1_slice] - e[v][boundary_slice] = e[v][shifted1_slice] + e[direction][boundary] = -e[direction][shifted2] + e[direction][shifted1] = 0 + e[u][boundary] = e[u][shifted1] + e[v][boundary] = e[v][shifted1] return e def hp(h: fdfield_t) -> fdfield_t: - h[direction][boundary_slice] = h[direction][shifted1_slice] - h[u][boundary_slice] = -h[u][shifted2_slice] - h[u][shifted1_slice] = 0 - h[v][boundary_slice] = -h[v][shifted2_slice] - h[v][shifted1_slice] = 0 + h[direction][boundary] = h[direction][shifted1] + h[u][boundary] = -h[u][shifted2] + h[u][shifted1] = 0 + h[v][boundary] = -h[v][shifted2] + h[v][shifted1] = 0 return h return ep, hp