# 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. The * indicates an name that is 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 and A or S indicate asymmetric or symmetric Ex; the first character indicates x-direction and the second character indicates the y-direction boundary condition.Alias:

`BC`

- 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.

- 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}\]

- 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 the each boundary: [North, South, East, West].

- 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_NAME_confinement
(

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

- shape_NAME_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_NAME_scattering_all_edges`

.

- shape_NAME_etch_depth
(

*float*) The etch depth associated with a ‘planar’ shape that also has a defined`shape_NAME_mask`

. The shape will have a thickness outside the mask definition equal to the difference between the`shape_NAME_height`

and`shape_NAME_etch_depth`

(or zero if this is negative).

- shape_NAME_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_NAME_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_NAME_height
(

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

- shape_NAME_loss_dB_per_m
(

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

- shape_NAME_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_name
(

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

- shape_NAME_permeability
(

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

- shape_NAME_position
(

*list*) The x- and y-positions of the center point of the shape, constrained by the`shape_NAME_width`

and`shape_NAME_width`

.

- shape_NAME_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_NAME_refractive_index
(

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

- shape_NAME_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_NAME_refractive_index`

.

- shape_NAME_scattering_all_edges
(

*list*) Calculated scattering loss for each edge of the shape, defined by`shape_NAME_edges`

.

- shape_NAME_scattering_horizontal_edges
(

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

- shape_NAME_scattering_sum
(

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

- shape_NAME_scattering_vertical_edges
(

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

- shape_NAME_shape_type
(

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

- shape_NAME_sidewall_angle
(

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

- shape_NAME_vertices
(

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

- shape_NAME_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_*
(

*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.