Variable Descriptions

Descriptions of all variables available in the simulation file. Some variables have an alias, which is a copy of the data from the primary variable name for enhanced compatability with previous versions of EMode. For shapes, SHAPE indicates the name defined by the user.

background_refractive_index

(float) Refractive index in the background of simulation window, setting the default refractive index where no shapes are defined.

bend_radius

(float) [nm] Bend radius of the waveguide; 0 indicates that no bend is applied.

Alias: radius

boundary_condition

(str) Boundary condition for the simulation window; 0 indicates a metal boundary (driving all fields to zero at the boundary) and A or S indicate asymmetric or symmetric Ex; the first character indicates south boundary condition and the second character indicates the west boundary condition.

BC

(str) A copy of the boundary_condition before running FDM(). After running FDM(), this variable represents the actual boundary condition string as a combination of ‘0’, ‘A’, or ‘S’. For example, setting the boundary_condition to ‘TE’ and running FDM() will result in BC changing to either ‘SS’, ‘0S’, ‘S0’, or ‘00’, depending on the index profile cross-section symmetry.

confinement_window

(list) The confinement factor for each specified mode is saved under this variable only when the confinement region is specified with a list of vertices, instead of a specific shape.

dataset_LABEL

(dictionary) Labeled dataset with settings and simulation results.

effective_area

(list) The effective area of each waveguide mode in units of square microns (\(\mu \mathrm{m}^2\)), calculated by the following equation.

\[A_\mathrm{eff} = \frac{\left( \iint \left| \vec E \right|^2 \, \mathrm{d}x \, \mathrm{d}y \right)^2}{\iint \left| \vec E \right|^4 \, \mathrm{d}x \, \mathrm{d}y}\]
effective_index

(list) The real part of the effective index for each mode.

Alias: n_eff

Ex, Ey, Ez, Hx, Hy, Hz

(complex arrays) The electric (E [V/nm]) and magnetic (H [A/nm]) fields in the x-, y-, and z-directions. These calculated fields are interpolated to the center point of each mesh grid (defined by x and y). The fields are normalized to the equation below.

\[\frac{1}{2} \mathrm{Re} \iint \left( \vec E \times \vec H^* \right) \! \cdot \! \hat{z} \, \mathrm{d}x \, \mathrm{d}y = 1 \, \mathrm{W}\]
expansion_resolution

(list) List of the desired mesh step size in the x- and y-directions in the expanded regions around the perimeter of the simulation window.

expansion_size

(list) List of the size of the expanded regions in the x- and y-directions.

field_to_solve

(str) Desired transverse field component to solve; either ‘Et’ or ‘Ht’.

Fx, Fy

(complex arrays) Raw fields that are solved. They either correspond to the electric or magnetic fields depending on field_to_solve. However, these raw fields are defined on the Yee mesh grid, not the center points of the mesh grid. An internal function extracts all other field components from Fx, Fy, permittivity, and permeability.

group_index

(list) The group refractive index calculated for each mode.

Alias: n_g

loss_dB_per_m

(float) [dB/m] The power loss coefficient (\(\alpha\)), which relates to the imaginary part of the effective index (\(\kappa\)) by the following equation with the wavelength (\(\lambda\)).

Alias: alpha

\[\kappa = \frac{\alpha \lambda}{(4 \pi) 10 \, \mathrm{log}_{10}(e)} \approx \frac{\alpha \lambda}{54.575}\]
maximum_overlap

(float) Largest overlap in the mode list, calculated from the orthogonality() function.

mesh_complete_bool

(boolean) Indicates if the mesh grid has been calculated for the current definition of shapes and settings.

num_modes

(int) Total number of modes to solve.

num_pml_layers

(int or list) Either an integer or a list of integers indicating the number of perfectly matched layers for all or each boundary: [North, South, East, West].

max_effective_index

(float) Upper limit for the effective index.

overlap

(list) The overlap integral in overlap uses the following formula to calculate the modal excitation of \(\vec E_2\) by \(\vec E_1\).

Coldren, Larry A., Scott W. Corzine, and Milan L. Mashanovitch, ‘’Diode lasers and photonic integrated circuits,’’ John Wiley & Sons, 2012.

\[\mathrm{overlap} = \frac{4 n_\mathrm{eff,1} n_\mathrm{eff,2}}{(n_\mathrm{eff,1} + n_\mathrm{eff,2})^2} \frac{\left| \iint \vec E_2^* \cdot \vec E_1 \, \mathrm{d}x \, \mathrm{d}y \right|^2}{\iint \left| \vec E_1 \right|^2 \, \mathrm{d}x \, \mathrm{d}y \, \iint \left| \vec E_2 \right|^2 \, \mathrm{d}x \, \mathrm{d}y}\]
permittivity, permeability

(list) The permittivity and permeability arrays are defined by mesh from the current shapes and settings. Each is a list of arrays defining the corresponding parameters in the x-, y-, and z-directions.

pml_modes_removed

(list) Mode indices that were removed during the automatic process to determine artificial modes introduced from the pml layers.

pml_NSEW_bool

(list) List of booleans indicating if a perfectly matched layer (pml) boundary condition is applied to each boundary: [North, South, East, West].

priority_indices

(list) A list of indices corresponding to the priorities of the shapes in the list shape_materials.

remove_pml_modes_bool

(bool) Indicates whether or not to automatically remove artificial modes found in the pml layers.

shape_list

(list) Complete list of defined shapes.

shape_materials

(list) A list of materials corresponding to the defined shapes.

shape_vertices

(list) A list of the vertices of the shapes defined by shape_materials.

SHAPE[‘correlation_length’]

(list) A list of two values describing the correlation length of the roughness on the vertical and horizontal edges of the shape.

Alias: Lc_nm

SHAPE[‘confinement’]

(list) Confinement factor for each mode in the corresponding shape.

SHAPE[‘edges’]

(list) Definitions of edges for the corresponding shape where the scattering loss is calculated. These edges can be correlate to the loss values from SHAPE['scattering_all_edges'].

SHAPE[‘etch_depth’]

(float) The etch depth associated with a ‘planar’ shape that also has a defined SHAPE['mask']. The shape will have a thickness outside the mask definition equal to the difference between the SHAPE['height'] and SHAPE['etch_depth'] (or zero if this is negative).

SHAPE[‘fill_permeability’]

(float or str) Either a value or a material name to define the permeability in the etched region of a ‘planar’ shape.

SHAPE[‘fill_refractive_index’]

(float or str) Either a value or a material name to define the refractive index in the etched region of a ‘planar’ shape.

SHAPE[‘height’]

(float) Maximum size of the shape in the y-direction.

SHAPE[‘loss_dB_per_m’]

(float) [dB/m] Absorption coefficient for power loss in the region defined by the shape.

SHAPE[‘mask’]

(float or list) Width of the a mask for etching a ‘planar’ shape. Also accepts a list to define both the width and the x-offset of the mask.

SHAPE[‘name’]

(str) User-defined name of the shape. This name will be used to reference this shape in subsequent functions.

SHAPE[‘permeability’]

(float or str) Either a value or a material name to define the permeability of the shape.

SHAPE[‘position’]

(list) The x- and y-positions of the center point of the shape, constrained by the SHAPE['width'] and SHAPE['width'].

SHAPE[‘priority’]

(float) A value that defines the order in which the shape is drawn relative to other shapes. A higher value give a higher priority, putting the shape in front of other shapes with lower priority.

SHAPE[‘refractive_index’]

(float or str) Either a value or a material name to define the refractive index of the shape.

SHAPE[‘refractive_index_value’]

(float) The value of the refractive index for the shape. This is useful as a reference when a material name is passed for SHAPE['refractive_index'].

SHAPE[‘roughness_rms’]

(list) A list of two values describing the rms roughness on the vertical and horizontal edges of the shape.

Alias: st_dev_nm

SHAPE[‘scattering_all_edges’]

(list) Calculated scattering loss for each edge of the shape, defined by SHAPE['edges'].

SHAPE[‘scattering_horizontal_edges’]

(list) Calculated scattering loss for each horizontal edge of the shape.

SHAPE[‘scattering_sum’]

(list) Total calculated scattering loss for all edges of the shape.

SHAPE[‘scattering_vertical_edges’]

(list) Calculated scattering loss for each vertical edge of the shape.

SHAPE[‘shape_type’]

(str) The shape type is either ‘planar’, ‘conformal’, ‘polygon’, or ‘ellipse’.

SHAPE[‘sidewall_angle’]

(float) [degrees] Angle of the side wall for a ‘planar’ shape relative to a vertical at 0 degrees.

SHAPE[‘vertices’]

(list) Pairs of [x,y] vertices that define the perimeter of a shape.

SHAPE[‘width’]

(float) Maximum size of the shape in the x-direction.

Sx, Sy, Sz

(arrays) [W/nm] The Poynting vector in the x-, y-, and z-directions.

TE_fraction

(list) Fractions representing how much the mode is like a TE mode, calculated with the following equation.

\[\mathrm{{TE_fraction}} = \frac{\iint \left| \vec E_\mathrm{x} \right|^2 \, \mathrm{d}x \, \mathrm{d}y}{\iint \left| \vec E_\mathrm{x} \right|^2 + \left| \vec E_\mathrm{y} \right|^2 \, \mathrm{d}x \, \mathrm{d}y}\]
TE_indices, TM_indices

(list) Indices for the corresponding TE or TM modes in the modes list.

tolerance

(float) Numerical tolerance for convergence of the effective indices.

user_material_NAME

(str) The name of a user defined material.

wavelength

(float) [nm] Free-space wavelength.

window_height

(float) [nm] Total height (y-direction) of the simulation window.

window_width

(float) [nm] Total width (x-direction) of the simulation window.

x, y

(complex arrays) Arrays that define the x and y grid center points of the mesh. These can be complex when pml layers are introduced.

x_edge, y_edge

(complex arrays) Arrays that define the x and y grid edge points of the mesh. These can be complex when pml layers are introduced.

x_resolution, y_resolution

(float) [nm] Mesh grid step in the x- and y-directions.