Skip to content

Commit f5248cd

Browse files
committed
fix lumerical port directions
1 parent 1d0c3fd commit f5248cd

File tree

1 file changed

+36
-13
lines changed

1 file changed

+36
-13
lines changed

gds_fdtd/lum_tools.py

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -159,28 +159,51 @@ def make_sim_lum(
159159
else:
160160
raise ValueError(f"Polarization {pol} not supported")
161161

162+
buffer = 1e-6
162163
for p in c.ports:
163-
if p.direction in [180, 90]:
164-
direction = "Forward"
165-
buffer = -1e-6
166-
else:
167-
direction = "Backward"
168-
buffer = 1e-6
169164
port = lum.addport()
170165
lum.set("name", p.name)
171-
lum.set("x", p.center[0]*1e-6 + buffer)
172-
lum.set("y", p.center[1]*1e-6)
173-
lum.set("z", p.center[2]*1e-6)
174-
lum.set("y span", width_ports*1e-6)
175-
lum.set("z span", depth_ports*1e-6)
176-
lum.set("direction", direction)
166+
167+
if p.direction in [90, 270]:
168+
if p.direction == 90:
169+
lum.set("y", p.center[1]*1e-6 + buffer)
170+
lum.set("direction", "Backward")
171+
else:
172+
lum.set("y", p.center[1]*1e-6 - buffer)
173+
lum.set("direction", "Forward")
174+
175+
lum.set("z", p.center[2]*1e-6)
176+
lum.set("x", p.center[0]*1e-6)
177+
lum.set("injection axis", "y-axis")
178+
lum.set("x span", width_ports*1e-6)
179+
lum.set("z span", depth_ports*1e-6)
180+
elif p.direction in [180, 0]:
181+
if p.direction == 180:
182+
lum.set("x", p.center[0]*1e-6 - buffer)
183+
lum.set("direction", "Forward")
184+
else:
185+
lum.set("x", p.center[0]*1e-6 + buffer)
186+
lum.set("direction", "Backward")
187+
188+
lum.set("y", p.center[1]*1e-6)
189+
lum.set("z", p.center[2]*1e-6)
190+
lum.set("injection axis", "x-axis")
191+
lum.set("y span", width_ports*1e-6)
192+
lum.set("z span", depth_ports*1e-6)
193+
else:
194+
raise ValueError(f"Port direction {p.direction} not supported")
195+
177196
lum.set("mode selection", polarization)
178197
lum.set("number of field profile samples", num_modes)
179198

180199
lum.save(f"{c.name}.fsp")
181200
lum.addsweep(3)
182201
lum.setsweep("s-parameter sweep", "name", "sparams")
183-
lum.runsweep("sparams", "GPU")
202+
input("Press Enter to continue...")
203+
if gpu:
204+
lum.runsweep("sparams", "GPU")
205+
else:
206+
lum.runsweep("sparams")
184207

185208
lum.exportsweep("sparams", f"{c.name}.dat")
186209
sparams_sweep = lum.getsweepresult("sparams", "S parameters")

0 commit comments

Comments
 (0)