EME: Taper

The simplest EMode example of an EME simulation.

This code example is licensed under the BSD 3-Clause License.

  • Python
  • MATLAB
import emodeconnection as emc

## Set simulation parameters
wavelength = 1550 # [nm] wavelength
dx, dy = 20, 20 # [nm] resolution
h_core = 220 # [nm] waveguide core height
h_clad = 1000 # [nm] waveguide top and bottom clad

window_width = 4000
window_height = h_core + h_clad*2

num_modes = 10 # [-] number of modes
BC = 'TE'

## Connect and initialize EMode
em = emc.EMode(verbose = True)

## Settings
em.settings(
    wavelength = wavelength, x_resolution = dx, y_resolution = dy,
    window_width = window_width, window_height = window_height,
    num_modes = num_modes, boundary_condition = BC,
    background_material = 'SiO2')

## Draw shapes
em.shape(name = 'BOX', material = 'SiO2',
    height = h_clad)
em.shape(name = 'core', material = 'Si',
    height = h_core, etch_depth = h_core)

## Launch FDM solver and label profiles
em.shape(name = 'core', mask = 1000)
em.FDM(profile = 'a')
em.report()
em.plot()

em.shape(name = 'core', mask = 2000)
em.FDM(profile = 'b')
em.report()
em.plot()

## Draw EME sections
em.section(profile = 'a', section_type = 'straight',
    length = 2000)

em.section(section_type = 'taper',
    profile = 'a', profile_end = 'b',
    length = 8000)

em.section(profile = 'b', section_type = 'straight',
    length = 2000)

## Run EME and plot results
em.EME()
em.plot()
em.plot_S_matrix()

## Close EMode
em.close()
%% Set simulation parameters
wavelength = 1550; % [nm] wavelength
dx = 20; dy = 20; % [nm] resolution
h_core = 220; % [nm] waveguide core height
h_clad = 1000; % [nm] waveguide top and bottom clad

window_width = 4000;
window_height = h_core + h_clad*2;

num_modes = 10; % [-] number of modes
BC = 'TE';

%% Connect and initialize EMode
em = emodeconnection(verbose = true);

%% Settings
em.settings( ...
    wavelength = wavelength, x_resolution = dx, y_resolution = dy, ...
    window_width = window_width, window_height = window_height, ...
    num_modes = num_modes, boundary_condition = BC, ...
    background_material = 'SiO2');

%% Draw shapes
em.shape(name = 'BOX', material = 'SiO2', ...
    height = h_clad);
em.shape(name = 'core', material = 'Si', ...
    height = h_core, etch_depth = h_core);

%% Launch FDM solver and label profiles
em.shape(name = 'core', mask = 1000);
em.FDM(profile = 'a');
em.report();
em.plot();

em.shape(name = 'core', mask = 2000);
em.FDM(profile = 'b');
em.report();
em.plot();

%% Draw EME sections
em.section(profile = 'a', section_type = 'straight', ...
    length = 2000);

em.section(section_type = 'taper', ...
    profile = 'a', profile_end = 'b', ...
    length = 8000);

em.section(profile = 'b', section_type = 'straight', ...
    length = 2000);

%% Run EME and plot results
em.EME();
em.plot();
em.plot_S_matrix();

%% Close EMode
em.close();

Console output:

EMode 0.2.4 - email
Connected on port 62000 to LM-1.
Meshing  completed in 0.2 sec
Solving modes... completed in 0.5 sec

Wavelength: 1550.0 nm

  Mode #     n_eff    TE %    Loss (dB/m)
--------  --------  ------  -------------
    TE-0  2.744942  99.8 %          0.000
    TE-1  1.819117  92.4 %          0.000
    TM-2  1.665347  11.8 %          0.000
    TE-3  1.421518  99.9 %          0.000
    TE-4  1.368426  88.0 %          0.000
    TM-5  1.359634  12.8 %          0.000
    TE-6  1.321504  99.9 %          0.000
    TM-7  1.279963   2.4 %          0.000
    TE-8  1.250897  98.7 %          0.000
    TE-9  1.189492  95.8 %          0.000

Meshing  completed in 0.2 sec
Solving modes... completed in 0.3 sec

Wavelength: 1550.0 nm

  Mode #     n_eff     TE %    Loss (dB/m)
--------  --------  -------  -------------
    TE-0  2.821143  100.0 %          0.000
    TE-1  2.606186   99.7 %          0.000
    TE-2  2.123806   98.2 %          0.000
    TM-3  1.939095    4.9 %          0.000
    TM-4  1.565613   16.9 %          0.000
    TE-5  1.441070   89.8 %          0.000
    TE-6  1.391478   82.7 %          0.000
    TE-7  1.362128   66.6 %          0.000
    TM-8  1.333348   48.1 %          0.000
    TE-9  1.285430   69.6 %          0.000

Solving S-matrices...
Solving section: 0...Meshing  completed in 0.1 sec
 completed in 0.9 sec

Solving section: 1...
 completed in 25.4 sec

Solving section: 2...Meshing  completed in 0.2 sec
 completed in 0.6 sec
 completed in 0.6 sec
Exited EMode

Figures:

../_images/Ex_a.png
../_images/Ex_b.png
../_images/Ex_taper.png
../_images/EM_S10_abs2.png