[fdtd.boundaries] use tuples for indexing
This commit is contained in:
parent
74bebea837
commit
7eea919f94
1 changed files with 20 additions and 15 deletions
|
|
@ -28,17 +28,19 @@ def conducting_boundary(
|
||||||
shifted1_slice = [slice(None)] * 3
|
shifted1_slice = [slice(None)] * 3
|
||||||
boundary_slice[direction] = 0
|
boundary_slice[direction] = 0
|
||||||
shifted1_slice[direction] = 1
|
shifted1_slice[direction] = 1
|
||||||
|
boundary = tuple(boundary_slice)
|
||||||
|
shifted1 = tuple(shifted1_slice)
|
||||||
|
|
||||||
def en(e: fdfield_t) -> fdfield_t:
|
def en(e: fdfield_t) -> fdfield_t:
|
||||||
e[direction][boundary_slice] = 0
|
e[direction][boundary] = 0
|
||||||
e[u][boundary_slice] = e[u][shifted1_slice]
|
e[u][boundary] = e[u][shifted1]
|
||||||
e[v][boundary_slice] = e[v][shifted1_slice]
|
e[v][boundary] = e[v][shifted1]
|
||||||
return e
|
return e
|
||||||
|
|
||||||
def hn(h: fdfield_t) -> fdfield_t:
|
def hn(h: fdfield_t) -> fdfield_t:
|
||||||
h[direction][boundary_slice] = h[direction][shifted1_slice]
|
h[direction][boundary] = h[direction][shifted1]
|
||||||
h[u][boundary_slice] = 0
|
h[u][boundary] = 0
|
||||||
h[v][boundary_slice] = 0
|
h[v][boundary] = 0
|
||||||
return h
|
return h
|
||||||
|
|
||||||
return en, hn
|
return en, hn
|
||||||
|
|
@ -50,20 +52,23 @@ def conducting_boundary(
|
||||||
boundary_slice[direction] = -1
|
boundary_slice[direction] = -1
|
||||||
shifted1_slice[direction] = -2
|
shifted1_slice[direction] = -2
|
||||||
shifted2_slice[direction] = -3
|
shifted2_slice[direction] = -3
|
||||||
|
boundary = tuple(boundary_slice)
|
||||||
|
shifted1 = tuple(shifted1_slice)
|
||||||
|
shifted2 = tuple(shifted2_slice)
|
||||||
|
|
||||||
def ep(e: fdfield_t) -> fdfield_t:
|
def ep(e: fdfield_t) -> fdfield_t:
|
||||||
e[direction][boundary_slice] = -e[direction][shifted2_slice]
|
e[direction][boundary] = -e[direction][shifted2]
|
||||||
e[direction][shifted1_slice] = 0
|
e[direction][shifted1] = 0
|
||||||
e[u][boundary_slice] = e[u][shifted1_slice]
|
e[u][boundary] = e[u][shifted1]
|
||||||
e[v][boundary_slice] = e[v][shifted1_slice]
|
e[v][boundary] = e[v][shifted1]
|
||||||
return e
|
return e
|
||||||
|
|
||||||
def hp(h: fdfield_t) -> fdfield_t:
|
def hp(h: fdfield_t) -> fdfield_t:
|
||||||
h[direction][boundary_slice] = h[direction][shifted1_slice]
|
h[direction][boundary] = h[direction][shifted1]
|
||||||
h[u][boundary_slice] = -h[u][shifted2_slice]
|
h[u][boundary] = -h[u][shifted2]
|
||||||
h[u][shifted1_slice] = 0
|
h[u][shifted1] = 0
|
||||||
h[v][boundary_slice] = -h[v][shifted2_slice]
|
h[v][boundary] = -h[v][shifted2]
|
||||||
h[v][shifted1_slice] = 0
|
h[v][shifted1] = 0
|
||||||
return h
|
return h
|
||||||
|
|
||||||
return ep, hp
|
return ep, hp
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue