FDTD on GDSFactory+ Cloud#

MEEP is an open-source FDTD electromagnetic simulator. This notebook demonstrates using the gsim.meep API to run an S-parameter simulation and visualize the results.

Requirements:

  • GDSFactory Simulation SDK: uv pip install gsim

  • GDSFactory+ account for cloud simulation

Load a pcell from the PDK#

! uv pip install gsim
Using Python 3.12.13 environment at: /home/runner/work/simulation-templates/simulation-templates/.venv
Checked 1 package in 80ms
! uv add gsim==0.0.16
 Resolving dependencies...                                                     
 Resolving dependencies...                                                     
 Resolving dependencies...                                                     
 Resolving dependencies...                                                     
 Resolving dependencies...                                                     
 Resolving dependencies...                                                     
 sample-projects==0.0.0                                                        
 sample-projects==0.0.0                                                        
 sample-projects==0.0.0                                                        
 gsim==0.0.16                                                                  
 pydantic==2.12.5                                                              
 pydantic-core==2.41.5                                                         
 pydantic-settings==2.14.1                                                     
 requests==2.34.2                                                              
 rich==13.9.4                                                                  
 typer==0.24.2                                                                 
 circulax==0.1.7                                                               
 gdsfactory==9.43.0                                                            
 gplugins==2.0.1                                                               
 gplugins==2.0.1                                                               
 numpy==2.2.0                                                                  
 xarray==2025.7.1                                                              
 gplugins==2.0.1                                                               
 gplugins==2.0.1                                                               
 gplugins==2.0.1                                                               
 ubcpdk==1.15.5                                                                
 ubcpdk==1.15.4                                                                
 tidy3d==2.8.5                                                                 
 opticalmaterialspy==0.3.3                                                     
 opticalmaterialspy==0.3.3                                                     
 opticalmaterialspy==0.3.3                                                     
 opticalmaterialspy==0.3.3                                                     
 future==1.0.0                                                                 
 xmltodict==1.0.4                                                              
 ipywidgets==8.1.8                                                             
 devsim==2.10.0                                                                
 jsonschema==4.26.0                                                            
 linkify-it-py==2.1.0                                                          
 myst-nb==1.4.0                                                                
 myst-parser==3.0.1                                                            
 sphinx==7.4.7                                                                 
 sphinx-book-theme==1.2.0                                                      
 pydata-sphinx-theme==0.16.1                                                   
 sphinx-comments==0.0.3                                                        
 rapidfuzz==3.14.5                                                             
Resolved 307 packages in 1.10s
warning: The package `gplugins==2.0.1` does not have an extra named `gmsh`
 Preparing packages... (0/0)                                                   
 Preparing packages... (0/7)                                                   
 Preparing packages... (0/7)                                                   
   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)                                                   

   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------     0 B/7.66 KiB            


   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB           


   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB           


   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------     0 B/190.21 KiB          



   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 16.00 KiB/190.21 KiB        



   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 16.00 KiB/190.21 KiB        



   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 16.00 KiB/190.21 KiB        



   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 16.00 KiB/190.21 KiB
gdsfactory           ------------------------------     0 B/783.60 KiB          




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 16.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB
vtk                  ------------------------------     0 B/107.09 MiB          





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB
vtk                  ------------------------------     0 B/107.09 MiB          





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
nest-asyncio2        ------------------------------ 7.66 KiB/7.66 KiB
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB
vtk                  ------------------------------     0 B/107.09 MiB          





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
kfactory             ------------------------------     0 B/247.30 KiB
gdsfactory           ------------------------------ 16.00 KiB/783.60 KiB
pyvista              ------------------------------     0 B/2.33 MiB
vtk                  ------------------------------     0 B/107.09 MiB          







   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
gsim                 ------------------------------ 32.00 KiB/190.21 KiB
kfactory             ------------------------------ 16.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 32.00 KiB/783.60 KiB
pyvista              ------------------------------ 16.00 KiB/2.33 MiB
vtk                  ------------------------------ 32.00 KiB/107.09 MiB        







   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
gsim                 ------------------------------ 62.31 KiB/190.21 KiB
kfactory             ------------------------------ 96.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 80.00 KiB/783.60 KiB
pyvista              ------------------------------ 62.04 KiB/2.33 MiB
vtk                  ------------------------------ 3.68 MiB/107.09 MiB         







   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (0/7)
gsim                 ------------------------------ 110.31 KiB/190.21 KiB
kfactory             ------------------------------ 144.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 112.00 KiB/783.60 KiB
pyvista              ------------------------------ 142.04 KiB/2.33 MiB
vtk                  ------------------------------ 7.03 MiB/107.09 MiB         







   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
gsim                 ------------------------------ 128.16 KiB/190.21 KiB
kfactory             ------------------------------ 160.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 128.00 KiB/783.60 KiB
pyvista              ------------------------------ 142.04 KiB/2.33 MiB
vtk                  ------------------------------ 10.82 MiB/107.09 MiB        






   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
gsim                 ------------------------------ 174.31 KiB/190.21 KiB
kfactory             ------------------------------ 160.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 160.00 KiB/783.60 KiB
pyvista              ------------------------------ 350.04 KiB/2.33 MiB
vtk                  ------------------------------ 14.08 MiB/107.09 MiB        







   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
kfactory             ------------------------------ 176.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 176.00 KiB/783.60 KiB
pyvista              ------------------------------ 382.04 KiB/2.33 MiB
vtk                  ------------------------------ 14.70 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
kfactory             ------------------------------ 224.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 192.00 KiB/783.60 KiB
pyvista              ------------------------------ 461.93 KiB/2.33 MiB
vtk                  ------------------------------ 17.25 MiB/107.09 MiB        






   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
kfactory             ------------------------------ 240.00 KiB/247.30 KiB
gdsfactory           ------------------------------ 208.00 KiB/783.60 KiB
pyvista              ------------------------------ 1.31 MiB/2.33 MiB
vtk                  ------------------------------ 20.22 MiB/107.09 MiB        






   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
kfactory             ------------------------------ 247.30 KiB/247.30 KiB
gdsfactory           ------------------------------ 224.00 KiB/783.60 KiB
pyvista              ------------------------------ 1.59 MiB/2.33 MiB
vtk                  ------------------------------ 23.79 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (1/7)
gdsfactory           ------------------------------ 224.00 KiB/783.60 KiB
pyvista              ------------------------------ 1.59 MiB/2.33 MiB
vtk                  ------------------------------ 23.79 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 224.00 KiB/783.60 KiB
pyvista              ------------------------------ 1.95 MiB/2.33 MiB
vtk                  ------------------------------ 27.28 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 240.00 KiB/783.60 KiB
pyvista              ------------------------------ 2.03 MiB/2.33 MiB
vtk                  ------------------------------ 30.67 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 256.00 KiB/783.60 KiB
pyvista              ------------------------------ 2.09 MiB/2.33 MiB
vtk                  ------------------------------ 33.58 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 272.00 KiB/783.60 KiB
pyvista              ------------------------------ 2.30 MiB/2.33 MiB
vtk                  ------------------------------ 37.12 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 272.00 KiB/783.60 KiB
pyvista              ------------------------------ 2.31 MiB/2.33 MiB
vtk                  ------------------------------ 40.72 MiB/107.09 MiB        





   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 288.00 KiB/783.60 KiB
pyvista              ------------------------------ 2.33 MiB/2.33 MiB
vtk                  ------------------------------ 44.20 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 303.89 KiB/783.60 KiB
vtk                  ------------------------------ 44.98 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 303.89 KiB/783.60 KiB
vtk                  ------------------------------ 47.86 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (3/7)
gdsfactory           ------------------------------ 319.89 KiB/783.60 KiB
vtk                  ------------------------------ 51.47 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 336.00 KiB/783.60 KiB
vtk                  ------------------------------ 54.87 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 416.00 KiB/783.60 KiB
vtk                  ------------------------------ 58.48 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 464.00 KiB/783.60 KiB
vtk                  ------------------------------ 61.34 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 464.00 KiB/783.60 KiB
vtk                  ------------------------------ 64.87 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 480.00 KiB/783.60 KiB
vtk                  ------------------------------ 68.25 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 496.00 KiB/783.60 KiB
vtk                  ------------------------------ 72.48 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 496.00 KiB/783.60 KiB
vtk                  ------------------------------ 76.23 MiB/107.09 MiB        




   Building sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 544.00 KiB/783.60 KiB
vtk                  ------------------------------ 79.29 MiB/107.09 MiB        



      Built sample-projects @ file:///home/runner/work/simulation-templates/simu
 Preparing packages... (4/7)
gdsfactory           ------------------------------ 560.00 KiB/783.60 KiB
vtk                  ------------------------------ 81.70 MiB/107.09 MiB        



 Preparing packages... (4/7)
gdsfactory           ------------------------------ 587.00 KiB/783.60 KiB
vtk                  ------------------------------ 84.00 MiB/107.09 MiB        



 Preparing packages... (4/7)
gdsfactory           ------------------------------ 603.00 KiB/783.60 KiB
vtk                  ------------------------------ 89.09 MiB/107.09 MiB        



 Preparing packages... (4/7)
gdsfactory           ------------------------------ 619.00 KiB/783.60 KiB
vtk                  ------------------------------ 93.91 MiB/107.09 MiB        



 Preparing packages... (4/7)
gdsfactory           ------------------------------ 651.00 KiB/783.60 KiB
vtk                  ------------------------------ 97.48 MiB/107.09 MiB        


 Preparing packages... (5/7)
vtk                  ------------------------------ 98.48 MiB/107.09 MiB        


 Preparing packages... (5/7)
vtk                  ------------------------------ 100.70 MiB/107.09 MiB       


 Preparing packages... (5/7)
vtk                  ------------------------------ 105.05 MiB/107.09 MiB       


 Preparing packages... (5/7)                                                   
Prepared 7 packages in 1.54s
Uninstalled 6 packages in 18ms
░░░░░░░░░░░░░░░░░░░░ [0/0] Installing wheels...                                 
░░░░░░░░░░░░░░░░░░░░ [0/7] Installing wheels...                                 
░░░░░░░░░░░░░░░░░░░░ [0/7] nest-asyncio2==1.7.2                                 
██░░░░░░░░░░░░░░░░░░ [1/7] nest-asyncio2==1.7.2                                 
██░░░░░░░░░░░░░░░░░░ [1/7] gsim==0.0.16                                         
█████░░░░░░░░░░░░░░░ [2/7] gsim==0.0.16                                         
█████░░░░░░░░░░░░░░░ [2/7] pyvista==0.46.0                                      
████████░░░░░░░░░░░░ [3/7] pyvista==0.46.0                                      
████████░░░░░░░░░░░░ [3/7] sample-projects==0.0.0 (from file:///home/runner/work
███████████░░░░░░░░░ [4/7] sample-projects==0.0.0 (from file:///home/runner/work
███████████░░░░░░░░░ [4/7] kfactory==2.5.3                                      
██████████████░░░░░░ [5/7] kfactory==2.5.3                                      
██████████████░░░░░░ [5/7] gdsfactory==9.43.0                                   
█████████████████░░░ [6/7] gdsfactory==9.43.0                                   
█████████████████░░░ [6/7] vtk==9.5.2                                           
████████████████████ [7/7] vtk==9.5.2                                           
Installed 7 packages in 13ms
 - gdsfactory==9.34.2
 + gdsfactory==9.43.0
 - gsim==0.0.12
 + gsim==0.0.16
 - kfactory==2.4.7
 + kfactory==2.5.3
 + nest-asyncio2==1.7.2
 - pyvista==0.48.4
 + pyvista==0.46.0
 ~ sample-projects==0.0.0 (from file:///home/runner/work/simulation-templates/simulation-templates)
 - vtk==9.6.2
 + vtk==9.5.2
from gdsfactoryplus import get_pdk
import gdsfactory as gf

PDK = get_pdk()
PDK.activate()

c = gf.get_component("straight")
c
../_images/e6b1415af7e8fba238f31b10c9a45ca47e8143d33785e036215178847443c596.png

Configure and run simulation#

from gsim import meep

sim = meep.Simulation()

sim.geometry(component=c, z_crop="auto")
sim.materials = {"si": 3.47, "SiO2": 1.44}
sim.source(port="o1", wavelength=1.55, wavelength_span=0.01)
sim.monitors = ["o1", "o2"]
sim.domain(pml=1.0, margin=0.5)
sim.solver(resolution=20, simplify_tol=0.01, save_animation=True, verbose_interval=5.0)
sim.solver.stop_after_sources(time=60)

print(sim.validate_config())
Stack validation: PASSED
Warnings:
  - No stack configured. Will use active PDK with defaults.
  - Stopping: fixed (time=60.0)
sim.plot_2d(slices="xyz")
/home/runner/work/simulation-templates/simulation-templates/.venv/lib/python3.12/site-packages/gsim/meep/simulation.py:713: UserWarning: Material 'Aluminum' has no optical properties (refractive_index) — layer will be omitted from simulation. Use sim.set_material('Aluminum', refractive_index=...) to include it.
  material_data = resolve_materials(
/home/runner/work/simulation-templates/simulation-templates/.venv/lib/python3.12/site-packages/gsim/meep/simulation.py:713: UserWarning: Material 'TiN' has no optical properties (refractive_index) — layer will be omitted from simulation. Use sim.set_material('TiN', refractive_index=...) to include it.
  material_data = resolve_materials(
/home/runner/work/simulation-templates/simulation-templates/.venv/lib/python3.12/site-packages/gsim/meep/simulation.py:713: UserWarning: Material 'ge' has no optical properties (refractive_index) — layer will be omitted from simulation. Use sim.set_material('ge', refractive_index=...) to include it.
  material_data = resolve_materials(
/home/runner/work/simulation-templates/simulation-templates/.venv/lib/python3.12/site-packages/gsim/meep/simulation.py:713: UserWarning: Material 'passive' has no optical properties (refractive_index) — layer will be omitted from simulation. Use sim.set_material('passive', refractive_index=...) to include it.
  material_data = resolve_materials(
../_images/e7a2da7c2f11659de5666739b7377957b1881144dc1685e9c0a375498a39e332.png

Run simulation on cloud#

# Run on GDSFactory+ cloud
result = sim.run()
  meep-3b2432fe  completed  4m 04s
Extracting results.tar.gz...
Downloaded 282 files to /home/runner/work/simulation-templates/simulation-templates/simulation_templates/sim-data-meep-3b2432fe
result.plot(db=True)
../_images/5ea1a82d8084940df03421c7285b13a3984b13818f5b33abe398781c40cb6f2b.png
result.show_animation()