I am simulating a waveguide using diffractio python library (https://diffractio.readthedocs.io/en/latest/readme.html). The idea is to create a single mode waveguide using wave propogation method. First I create a waveguide that has specific refractive index. Refractive index profile gives the distribution of refractive indexes on the structure. I create a structure that has a refractive index of a Silicon, for that I calculate the effective refractive index using a simple mode solver here: https://www.computational-photonics.eu/oms.html The results of the structure and index profile are shown in the pictures below:
Now that the mask and the gaussian are defined I propogate the field inside the waveguide using the above mentioned library the code that does that is just
u1.BPM(verbose=True, division=False). The wavelength of light is 1.55*um.
After the propogation I get the following image. And next I calculate the overlap integral between the source and the output to find the tranmission (where I normalize the output and the input fields). In the picture is the intensity inside the waveguide and the BPM picture (how the wave propogates inside the waveguide). The questions:
- How to decompose the wave to get the Ex, Ey, Ez components of the electric field.
- How to understand if the waveguide is indeed single mode?
I have compared the results with commercial software (e.g Lumerical FDTD) and it looks "correct" how can I find out that this method works for a simple waveguide simulations. The picture below are visual comparison between lumerical FDTD and python diffraction interface module.
enter image description here