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 = 3200
window_height = h_core + h_clad*2

num_modes = 4 # [-] 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*0.90,
    sidewall_angle=10)

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

em.shape(name = 'core', mask = 1200)
em.FDM(label = 'b')
em.report()
em.plot()

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

em.section(section_type = 'taper',
    profile = 'a', profile_end = 'b',
    length = 5000, num_modes = num_modes,
    minimum_z_step = 200, overlap_variation = 0.01)

em.section(profile = 'b', section_type = 'straight',
    length = 2e3, num_modes = num_modes)

## 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 = 3000;
window_height = h_core + h_clad*2;

num_modes = 4; % [-] 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*0.90, ...
    'sidewall_angle', 10);

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

em.shape('name', 'core', 'mask', 1200);
em.FDM('label', 'b');
em.report();
em.plot();

%% Draw EME sections
em.section('profile', 'a', 'section_type', 'straight', ...
    'length', 2e3, 'num_modes', num_modes);

em.section('section_type', 'taper', ...
    'profile', 'a', 'profile_end', 'b', ...
    'length', 5000, 'num_modes', num_modes, ...
    'minimum_z_step', 200, 'overlap_variation', 0.01);

em.section('profile', 'b', 'section_type', 'straight', ...
    'length', 2e3, 'num_modes', num_modes);

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

%% Close EMode
em.close();

Console output:

EMode 0.2.0 - email
Connected on port 62000 to LM-1.
Meshing completed in 0.4 sec
Solving completed in 0.5 sec

Wavelength: 1550.0 nm

  Mode #     n_eff    TE %    Loss (dB/m)
--------  --------  ------  -------------
    TE-0  2.549973  98.8 %          0.000
    TE-1  1.500118  99.3 %          0.000
    TM-2  1.444024   0.0 %          0.000
    TM-3  1.404519  12.3 %          0.000

Meshing completed in 0.4 sec
Solving completed in 0.3 sec

Wavelength: 1550.0 nm

  Mode #     n_eff    TE %    Loss (dB/m)
--------  --------  ------  -------------
    TE-0  2.773467  99.9 %          0.000
    TE-1  2.134024  96.5 %          0.000
    TM-2  1.756185  10.4 %          0.000
    TE-3  1.490376  99.0 %          0.000

Solving S-matrices...
Solving section: 1... Solving completed in 0.4 sec
completed in 0.8 sec

Solving section: 2... Solving completed in 0.4 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
Solving completed in 0.3 sec
completed in 20.4 sec

Solving section: 3... Solving completed in 0.3 sec
completed in 0.7 sec
completed in 22.1 sec

Figures:

../_images/Ex_a.png
../_images/Ex_b.png
../_images/Ex_taper.png
examples/Figures/EME_Taper/EM_S01_abs^2.png