MEEP is an open-source FDTD electromagnetic simulator. This notebook demonstrates using the gsim.meep API to run an S-parameter simulation on a photonic Y-branch.

Requirements:

  • UBC PDK: uv pip install ubcpdk
  • GDSFactory+ account for cloud simulation

Load a pcell from UBC PDK

from ubcpdk import PDK, cells

PDK.activate()

c = cells.ebeam_y_1550()
c

png

Configure and run simulation

from gsim import meep

sim = meep.Simulation()

sim.geometry.component = c
sim.geometry.z_crop = "auto"

sim.materials = {"si": 3.47, "SiO2": 1.44}

sim.source.port = "o1"
sim.source.wavelength = 1.55
sim.source.bandwidth = 0.01
sim.source.num_freqs = 11

sim.monitors = ["o1", "o2", "o3"]

sim.domain.pml = 1.0
sim.domain.margin = 0.5
sim.domain.margin_z_above = 0.5
sim.domain.margin_z_below = 0.5
sim.domain.port_margin = 0.5

sim.solver.resolution = 20
sim.solver.stopping = "dft_decay"
sim.solver.max_time = 200
sim.solver.stopping_threshold = 1e-3
sim.solver.stopping_min_time = 100
sim.solver.subpixel = False
sim.solver.simplify_tol = 0.01
sim.solver.save_geometry = True
sim.solver.save_fields = True
sim.solver.save_animation = True
sim.solver.verbose_interval = 5.0

print(sim.validate_config())
Stack validation: PASSED
Warnings:
  - No stack configured. Will use active PDK with defaults.
sim.plot_2d(slices="xyz")

png

Run simulation on cloud

# Run on GDSFactory+ cloud
result = sim.run()
Uploading simulation...

done


Job started: meep-bf598f74

Created: 21:35:03 | Now: 21:35:03 | Status: queued

Created: 21:35:03 | Now: 21:35:09 | Status: queued

Created: 21:35:03 | Now: 21:35:14 | Status: queued

Created: 21:35:03 | Now: 21:35:19 | Status: queued

Created: 21:35:03 | Now: 21:35:24 | Status: running

Created: 21:35:03 | Now: 21:35:29 | Status: running

Created: 21:35:03 | Now: 21:35:34 | Status: running

Created: 21:35:03 | Now: 21:35:40 | Status: running

Created: 21:35:03 | Now: 21:35:45 | Status: running

Created: 21:35:03 | Now: 21:35:50 | Status: running

Created: 21:35:03 | Now: 21:35:55 | Status: running

Created: 21:35:03 | Now: 21:36:00 | Status: running

Created: 21:35:03 | Now: 21:36:05 | Status: running

Created: 21:35:03 | Now: 21:36:10 | Status: running

Created: 21:35:03 | Now: 21:36:16 | Status: running

Created: 21:35:03 | Now: 21:36:21 | Status: running

Created: 21:35:03 | Now: 21:36:26 | Status: running

Created: 21:35:03 | Now: 21:36:31 | Status: running

Created: 21:35:03 | Now: 21:36:36 | Status: running

Created: 21:35:03 | Now: 21:36:41 | Status: running

Created: 21:35:03 | Now: 21:36:47 | Status: running

Created: 21:35:03 | Now: 21:36:52 | Status: running

Created: 21:35:03 | Now: 21:36:57 | Status: running

Created: 21:35:03 | Now: 21:37:02 | Status: running

Created: 21:35:03 | Now: 21:37:07 | Status: running

Created: 21:35:03 | Now: 21:37:12 | Status: running

Created: 21:35:03 | Now: 21:37:18 | Status: running

Created: 21:35:03 | Now: 21:37:23 | Status: running

Created: 21:35:03 | Now: 21:37:28 | Status: running

Created: 21:35:03 | Now: 21:37:33 | Status: running

Created: 21:35:03 | Now: 21:37:38 | Status: running

Created: 21:35:03 | Now: 21:37:43 | Status: running

Created: 21:35:03 | Now: 21:37:48 | Status: running

Created: 21:35:03 | Now: 21:37:54 | Status: running

Created: 21:35:03 | Now: 21:37:59 | Status: running

Created: 21:35:03 | Now: 21:38:04 | Status: running

Created: 21:35:03 | Now: 21:38:09 | Status: running

Created: 21:35:03 | Now: 21:38:14 | Status: running

Created: 21:35:03 | Now: 21:38:19 | Status: running

Created: 21:35:03 | Now: 21:38:25 | Status: running

Created: 21:35:03 | Now: 21:38:30 | Status: running

Created: 21:35:03 | Now: 21:38:35 | Status: running

Created: 21:35:03 | Now: 21:38:40 | Status: running

Created: 21:35:03 | Now: 21:38:45 | Status: running

Created: 21:35:03 | Now: 21:38:50 | Status: running

Created: 21:35:03 | Now: 21:38:55 | Status: running

Created: 21:35:03 | Now: 21:39:01 | Status: running

Created: 21:35:03 | Now: 21:39:06 | Status: running

Created: 21:35:03 | Now: 21:39:11 | Status: running

Created: 21:35:03 | Now: 21:39:16 | Status: running

Created: 21:35:03 | Now: 21:39:21 | Status: running

Created: 21:35:03 | Now: 21:39:26 | Status: running

Created: 21:35:03 | Now: 21:39:32 | Status: running

Created: 21:35:03 | Now: 21:39:37 | Status: running

Created: 21:35:03 | Now: 21:39:42 | Status: running

Created: 21:35:03 | Now: 21:39:47 | Status: running

Created: 21:35:03 | Now: 21:39:52 | Status: running

Created: 21:35:03 | Now: 21:39:57 | Status: running

Created: 21:35:03 | Now: 21:40:03 | Status: running

Created: 21:35:03 | Now: 21:40:08 | Status: running

Created: 21:35:03 | Now: 21:40:13 | Status: running

Created: 21:35:03 | Now: 21:40:18 | Status: running

Created: 21:35:03 | Now: 21:40:23 | Status: running

Created: 21:35:03 | Now: 21:40:29 | Status: running

Created: 21:35:03 | Now: 21:40:34 | Status: running

Created: 21:35:03 | Now: 21:40:39 | Status: running

Created: 21:35:03 | Now: 21:40:44 | Status: running

Created: 21:35:03 | Now: 21:40:49 | Status: running

Created: 21:35:03 | Now: 21:40:54 | Status: running

Created: 21:35:03 | Now: 21:41:00 | Status: running

Created: 21:35:03 | Now: 21:41:05 | Status: running

Created: 21:35:03 | Now: 21:41:10 | Status: running

Created: 21:35:03 | Now: 21:41:15 | Status: running

Created: 21:35:03 | Now: 21:41:20 | Status: running

Created: 21:35:03 | Now: 21:41:25 | Status: running

Created: 21:35:03 | Now: 21:41:30 | Status: running

Created: 21:35:03 | Now: 21:41:36 | Status: running

Created: 21:35:03 | Now: 21:41:41 | Status: running

Created: 21:35:03 | Now: 21:41:46 | Status: running

Created: 21:35:03 | Now: 21:41:51 | Status: running

Created: 21:35:03 | Now: 21:41:56 | Status: running

Created: 21:35:03 | Now: 21:42:02 | Status: running

Created: 21:35:03 | Now: 21:42:07 | Status: running

Created: 21:35:03 | Now: 21:42:12 | Status: running

Created: 21:35:03 | Now: 21:42:17 | Status: running

Created: 21:35:03 | Now: 21:42:22 | Status: running

Created: 21:35:03 | Now: 21:42:27 | Status: running

Created: 21:35:03 | Now: 21:42:33 | Status: running

Created: 21:35:03 | Now: 21:42:38 | Status: running

Created: 21:35:03 | Now: 21:42:43 | Status: running

Created: 21:35:03 | Now: 21:42:48 | Status: completed

Extracting results.tar.gz...
Downloaded 273 files to /home/runner/work/gsim/gsim/nbs/sim-data-meep-bf598f74/results
result.plot(db=True)

png

result.show_animation()