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¶

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.

Run simulation on cloud¶
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
