EME: Taper
The simplest EMode example of an EME simulation.
This code example is licensed under the BSD 3-Clause License.
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:



