Coupled Waveguides

Coupled Waveguides#

In this chapter, we’ll explore how to use femwell for more accurate waveguide modeling. Unlike simpler analytical models, FEMWELL allows us to solve Maxwell’s equations directly on the waveguide geometry.

Using femwell, you can mesh any component cross-section and solve PDEs with its powerful mode solver. Unlike other solvers that rely on predefined geometries, femwell works directly with the actual component geometry. You can compute the modes of a GDSFactory cross-section, which internally defines a “uz” mesh perpendicular to a straight component using the provided cross-section.

  1. import all the necessary packages:

import doModels.RefractiveIndex as ri
import doModels.fem as fem
import doModels.SemiAnalyticalCouplers as analyze

import matplotlib.pyplot as plt
import numpy as np
import xarray as xr
from datetime import datetime
  1. Define photonic stack:

stack = fem.CoupledWaveguides(gap=0.2,
                              w_core_1=0.45,
                              w_core_2=0.45,
                              h_core=0.21,
                              n_clad_func=ri.silica,
                              n_core_func=ri.silicon)
  1. Mesh the geometry and visualize the stack

a = fem.supermode_solver(coupled_waveguides=stack,
                     wavelength=1.55,
                     resolution=0.02,
                     plot=True)
../_images/20f618b11581f9a31a4cb58c80b6c396bde1f674ca58e9d4e75ef8d5351a00bb.png ../_images/8a2936c5fd8b31e085db6cfdcc982d97f18269c918bf84be4051b99e26e823d3.png
Refractive index of symmetric and asymmetric modes:
(2.329758840649055+0j)
(2.2942685123334585+0j)
(1.7351629495693472+0j)
(1.5925393598084365+0j)
../_images/eb423fab7a18b139bdda42ea30c4c0720f530bbfa7b17f7d2c7744348c6c8380.png ../_images/1b07e67b5fc072f9db981241891d290e7ee546dc85fe990916dbdd12b184ce4c.png ../_images/49cad63c08157efb0c095a6c2f842a10fb4b6ceed1b9475f32b109d03a141a20.png ../_images/3ba123ba1af49a8b72bda05175266dcea0a27e56c16162bfb80dea218e7d1da1.png