Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 36 additions & 19 deletions gplugins/tidy3d/component.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
from functools import cached_property
from typing import Any, Literal

import tidy3d.web.api.webapi as web
from tidy3d.components.monitor import FieldMonitor

import matplotlib.pyplot as plt
import numpy as np
import tidy3d as td
Expand Down Expand Up @@ -591,25 +594,39 @@ def write_sparameters(
return dict(np.load(filepath))
else:
time.sleep(0.2)
s = modeler.run()
for port_in in s.port_in.values:
for port_out in s.port_out.values:
for mode_index_in in s.mode_index_in.values:
for mode_index_out in s.mode_index_out.values:
sp[f"{port_in}@{mode_index_in},{port_out}@{mode_index_out}"] = (
s.sel(
port_in=port_in,
port_out=port_out,
mode_index_in=mode_index_in,
mode_index_out=mode_index_out,
).values
)

frequency = s.f.values
sp["wavelengths"] = td.constants.C_0 / frequency
np.savez_compressed(filepath, **sp)
print(f"Simulation saved to {filepath!r}")
return sp
# s = modeler.run()
plot_sources = [modeler.to_source(port=p, mode_index=0) for p in modeler.ports]
plot_monitors = [modeler.to_monitor(port=p) for p in modeler.ports]

cz = c.get_layer_center("core")[2]
birdseye = FieldMonitor(name="birdseye", interval_space=(4, 4, 1),freqs=td.C_0 / wavelength, center=(c.center[0], c.center[1], cz), size=(c.size[0], c.size[1], 0))

sim_with_sources = modeler.simulation.copy(
update={"sources": plot_sources, "monitors": list(modeler.simulation.monitors) + plot_monitors + [birdseye]}
)

s = web.upload(sim_with_sources, task_name=folder_name)
return s

# if s.status != "completed":
# for port_in in s.port_in.values:
# for port_out in s.port_out.values:
# for mode_index_in in s.mode_index_in.values:
# for mode_index_out in s.mode_index_out.values:
# sp[f"{port_in}@{mode_index_in},{port_out}@{mode_index_out}"] = (
# s.sel(
# port_in=port_in,
# port_out=port_out,
# mode_index_in=mode_index_in,
# mode_index_out=mode_index_out,
# ).values
# )

# frequency = s.f.values
# sp["wavelengths"] = td.constants.C_0 / frequency
# np.savez_compressed(filepath, **sp)
# print(f"Simulation saved to {filepath!r}")
# return sp


def write_sparameters_batch(
Expand Down
Loading