Skip to content

Commit b673c62

Browse files
committed
modify to new scheme
1 parent 7a56991 commit b673c62

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

tidy3d/components/mode/solver.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -739,8 +739,8 @@ def solver_tensorial(
739739
inv_eps_zz = sp.spdiags(1 / eps[2, 2, :], [0], N, N)
740740

741741
# Compute all blocks of the matrix for diagonalization
742-
axax = -dxf.dot(inv_eps_zz).dot(cxb).dot(eps_zx) - cyb.dot(mu_yz).dot(inv_mu_zz).dot(dyf)
743-
axay = -dxf.dot(inv_eps_zz).dot(cyb).dot(eps_zy) + cyb.dot(mu_yz).dot(inv_mu_zz).dot(dxf)
742+
axax = -dxf.dot(inv_eps_zz).dot(eps_zx).dot(cxb) - cyb.dot(mu_yz).dot(inv_mu_zz).dot(dyf)
743+
axay = -dxf.dot(inv_eps_zz).dot(eps_zy).dot(cyb) + cyb.dot(mu_yz).dot(inv_mu_zz).dot(dxf)
744744
axbx = (
745745
-dxf.dot(inv_eps_zz).dot(dyb)
746746
+ cxf.dot(mu_yx).dot(inv_mu_zz).dot(cyb)
@@ -750,8 +750,8 @@ def solver_tensorial(
750750
dxf.dot(inv_eps_zz).dot(dxb) + mu_yy - cyb.dot(mu_yz).dot(inv_mu_zz).dot(cyf).dot(mu_zy)
751751
)
752752

753-
ayax = -dyf.dot(inv_eps_zz).dot(cxb).dot(eps_zx) + cxb.dot(mu_xz).dot(inv_mu_zz).dot(dyf)
754-
ayay = -dyf.dot(inv_eps_zz).dot(cyb).dot(eps_zy) - cxb.dot(mu_xz).dot(inv_mu_zz).dot(dxf)
753+
ayax = -dyf.dot(inv_eps_zz).dot(eps_zx).dot(cxb) + cxb.dot(mu_xz).dot(inv_mu_zz).dot(dyf)
754+
ayay = -dyf.dot(inv_eps_zz).dot(eps_zy).dot(cyb) - cxb.dot(mu_xz).dot(inv_mu_zz).dot(dxf)
755755
aybx = (
756756
-dyf.dot(inv_eps_zz).dot(dyb)
757757
- mu_xx
@@ -767,26 +767,26 @@ def solver_tensorial(
767767
bxby = -dxb.dot(inv_mu_zz).dot(cyf).dot(mu_zy) + cyf.dot(eps_yz).dot(inv_eps_zz).dot(dxb)
768768
bxax = (
769769
-dxb.dot(inv_mu_zz).dot(dyf)
770-
+ cxb.dot(eps_yx).dot(cyf)
771-
- cyf.dot(eps_yz).dot(inv_eps_zz).dot(cxb).dot(eps_zx)
770+
+ cyf.dot(eps_yx).dot(cxb)
771+
- cyf.dot(eps_yz).dot(inv_eps_zz).dot(eps_zx).dot(cxb)
772772
)
773773
bxay = (
774774
dxb.dot(inv_mu_zz).dot(dxf)
775775
+ eps_yy
776-
- cyf.dot(eps_yz).dot(inv_eps_zz).dot(cyb).dot(eps_zy)
776+
- cyf.dot(eps_yz).dot(inv_eps_zz).dot(eps_zy).dot(cyb)
777777
)
778778

779779
bybx = -dyb.dot(inv_mu_zz).dot(cxf).dot(mu_zx) + cxf.dot(eps_xz).dot(inv_eps_zz).dot(dyb)
780780
byby = -dyb.dot(inv_mu_zz).dot(cyf).dot(mu_zy) - cxf.dot(eps_xz).dot(inv_eps_zz).dot(dxb)
781781
byax = (
782782
-dyb.dot(inv_mu_zz).dot(dyf)
783783
- eps_xx
784-
+ cxf.dot(eps_xz).dot(inv_eps_zz).dot(cxb).dot(eps_zx)
784+
+ cxf.dot(eps_xz).dot(inv_eps_zz).dot(eps_zx).dot(cxb)
785785
)
786786
byay = (
787787
dyb.dot(inv_mu_zz).dot(dxf)
788-
- cyb.dot(eps_xy).dot(cxf)
789-
+ cxf.dot(eps_xz).dot(inv_eps_zz).dot(cyb).dot(eps_zy)
788+
- cxf.dot(eps_xy).dot(cyb)
789+
+ cxf.dot(eps_xz).dot(inv_eps_zz).dot(eps_zy).dot(cyb)
790790
)
791791

792792
mat = sp.bmat(

tidy3d/components/simulation.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,9 +1580,10 @@ def make_eps_data(coords: Coords):
15801580
return xr.DataArray(eps_array, coords=coords, dims=("x", "y", "z"))
15811581

15821582
# combine all data into dictionary
1583-
if coord_key[0] == "E":
1584-
# off-diagonal components are sampled at respective locations (eg. `eps_xy` at `Ex`)
1585-
coords = grid[coord_key[0:2]]
1583+
if coord_key[0] == "E" and len(coord_key) > 2:
1584+
# off-diagonal components are sampled at grid boundaries
1585+
coords = grid["boundaries"]
1586+
coords = Coords(x=coords.x[:-1], y=coords.y[:-1], z=coords.z[:-1])
15861587
else:
15871588
coords = grid[coord_key]
15881589
return make_eps_data(coords)

0 commit comments

Comments
 (0)