 ## Single mode perturbations

Frequently, the permittivity of an integrated optical waveguide splits into the contribution n2 of an isotropic lossless refractive index n, and a residual. For piecewise constant, rectangular profiles, the former part can be handled adequately by the WMM mode solver as presented on the previous pages. Assuming the modes and propagation constants belonging to the profile n to be known, perturbation theory allows to estimate the effect of the permittivity residual.

First order theory predicts light propagation based on the original unperturbed mode profiles as output from the mode solver, but with shifted propagation constants. The functions introduced on this page calculate these phaseshifts due to permittivity perturbations. The program smpert.cpp exemplifies the use of these routines. For an illustration of the perturbed light propagation, the functions concerned with mode interference and mode interference visualization have been prepared to take the perturbational phase shifts as additional arguments.

Reasonable results of this approximate approach can be expected for small deviations of the permittivity from isotropy only. Additionally, mode coupling effects are neglected. This is justified, if either the permittivity perturbation does not induce such effects, i.e. if the coupling coefficients vanish, or if the propagation constants of the relevant modes are sufficiently far apart. While at present the WMM library does not include functions for general coupled mode theory regarding mode conversion, the example of the unidirectional polarization converters shows how to solve this kind of problem in the framework of the WMM.

#### General perturbations:

The source files maxweq.h and maxweq.cpp define a class `Perturbation` which is to represent the permittivity residual. Its members are

 `r` The region where the perturbation is present, a rectangle `Rect` as declared in waveg.h. Regions of a more complicated shape must be decomposed into rectangular areas, i.e. described by more than one separate `Perturbation`s. `e` The permittivity perturbation, a 3x3 Matrix of type `Complex`, as defined in complex.h, complex.cpp. If different perturbations are present in an actual geometry, they must be encoded by separate `Perturbation` objects. The corresponding regions need not to be distinct.

Additionally, there are several constructors, varying in the amount of directly specified information, and member functions for reading and writing the perturbations from/to files.

Given a `Perturbation`, the `WMM_Mode` member function

`  phaseshift` ,

defined in mode.h, mode.cpp, computes the propagation constant shift for the underlying mode. The function evaluates the expression

`  ` ,

where `p` is the `Perturbation` supplied as an argument to `phaseshift`. omega and epsilon0 denote the light frequency and the vacuum permittivity. In general the phase shift is a complex quantity.

Note that the correspondence between the permitivity residual and the propagation constant shift is linear, i.e. separately calculated phaseshifts belonging to different contributions of a total perturbation simply add. This applies both to contributions from different regions on the waveguide cross section and to contributions from different types of perturbations.

#### Attenuation:

Assume a part of the waveguide to be made of an absorbing material with refractive index n that attenuates the intensity of a plane wave according to ~exp(- alpha z) with a small attenuation constant alpha. Its effect is described by an isotropic but imaginary permittivity perturbation -i n alpha / k0. The function

`  attenuation`

converts the material parameters, the wavelength, and a rectangle, which specifies the absorbing region, to a `Perturbation`. The function is declared in maxweq.h, maxweq.cpp.

Running this perturbation through the `phaseshift` procedure yields an imaginary propagation constant shift - i alpham / 2, where alpham is the mode attenuation. The waveguide damps the intensity of the underlying mode by ~exp(- alpham z).

smpert.cpp computes the damping constants of the the fundamental TE and TM modes of a raised strip waveguide (cf. the stderr output of the program). With the imaginary phase shifts supplied to `WMM_ModeArray.prop` for a visualization of the propagation of the single modes, one obtains the following pictures for the TE ... ... and for the TM mode: The attenuation mechanism results in larger attenuation for the TE mode. Note that the guided mode attenuation is polarization dependent, and that it may exceed the bulk value. With inverted signs, the perturbation theory obviously gives access to the calculation of mode gain in active regions as well.

#### Magnetooptic phase shift:

In a region with static or quasistatic magnetization, the permittivity tensor must be assumed to depend on the magnetization M. If restricted to cubic crystals, to contributions linear in the magnetization, and to low loss materials, the permittivity contribution p related to this first order magnetooptic effect reads

`  ` p = sin(theta) cos(phi) px + sin(theta) sin(phi) py + cos(theta) pz ,

where the angles phi and theta parametrize the direction of the magnetization as

`  ` M = M (sin(theta) cos(phi), sin(theta) sin(phi), cos(theta))

(cf. the orientation of the coordinate system). px, py, and pz denote the permittivity contributions related to the x-, y-, and z-components of the magnetization:

`  ` px = py = pz = .

The absolute value xi of the imaginary off-diagonal elements is related to the phenomenological constant of the specific Faraday-rotation ThetaF by

`  ` xi = n lambda ThetaF / pi ,

where n and lambda are the refractive index of the magnetooptic material and the free space wavelength.

maxweq.h and maxweq.cpp define functions which generate the corresponding `Perturbation` objects:

 `magopt` The magnetooptic permittivity contribution for an arbitrary orientation of the magnetization. Accepts the arguments ThetaF, n, and lambda to assemble xi, the two angles theta and phi, and a rectangle to specify the magnetooptic region. `magopt_polar` `magopt_equat` `magopt_long` The perturbations px (polar configuration), py (equatorial configuration), and pz (longitudinal configuration) for an orientation of the magnetization along the coordinate axes.

Besides smpert.cpp, the example programs tephs.cpp and tmphs.cpp show how to apply these functions together with the `phaseshift` procedure to calculate the nonreciprocal effects for multiple-domain ribs or double layer waveguides, respectively, which are intended as nonreciprocal phase shifters. Note that in general all three types of magnetooptic perturbations may cause phase shifts as well as polarization conversion. A classification of these effects is possible, if the modes obey certain symmetries. Details can be found in the survey.

A longitudinal orientation of the magnetization drives the nonreciprocal polarization conversion known as the Faraday-effect. Its modeling cannot be kept in the framework of single mode perturbations but requires e.g. coupled mode theory, as exemplified for unidirectional polarization conversion in upcv.cpp.

#### Geometry perturbations:

For a waveguide with piecewise constant permittivity profile, alteration of a dimensional parameter can be regarded as changing the refractive index in a thin layer along a dielectric discontinuity line. Similar to the expression for general permittivity perturbations, the change in the propagation constant can be related to the thickness of this perturbed layer (where the perturbation inside the layer may be a significant one, thus the formula from above cannot be applied directly). In the case of the rectangular geometries considered here, the limit of zero layer thickness leads to expressions for the derivative of the propagation constant with respect to the boundary position. See the paper on geometry tolerancing for details.

The following functions, implemented as `WMM_Mode` member functions in mode.h and mode.cpp, evaluate these geometrical propagation constant gradients. Both functions take a pair of rectangle indices as arguments:

 `horgeovar` Propagation constant shift due to the relocation of a horizontal boundary segment. The arguments specify the rectangle below the relevant boundary. `vergeovar` Propagation constant shift due to the relocation of a vertical boundary segment. The arguments specify the rectangle on the left side of the relevant boundary.

The functions return a double value, which is the derivative of the propagation constant with respect to the position of the boundary segment. Note that these are perturbational expressions, which are naturally not more accurate than the underlying mode profile. Usually, for computing the derivative of the propagation constant with respect to a general geometry paremter the above functions have to be applied more than once, with the results added. Additionally, there may be several ways to obtain a specific result.

smpert.cpp includes the application of these expressions to a simple raised strip waveguide. A rib waveguide shall serve as a more advanced example: ` ` Three parameters h, w, t describe the waveguide geometry. Given a `WMM_Mode` m of the waveguide, the statements

`  grad_w = m.vergeovar(2, 1);`

or alternatively

`  grad_w = -m.vergeovar(2, 0);`

compute the gradient of its propagation constant with respect to the width parameter. The derivative with respect to the rib height can be calculated by

`  grad_h = m.horgeovar(2, 1);`

or by

```  grad_h = -m.horgeovar(1, 0)         -=  m.horgeovar(1, 2)         -=  m.horgeovar(0, 0)         -=  m.horgeovar(0, 1)         -=  m.horgeovar(0, 2); ```

Likewise, there are two alternative ways to compute the derivative with respect to the lateral film thickness:

```   grad_t = m.horgeovar(1, 0)         += m.horgeovar(2, 1)         += m.horgeovar(1, 2); ```

or

```   grad_t = -m.horgeovar(0, 0)         -=  m.horgeovar(0, 1)         -=  m.horgeovar(0, 2); ```

While for the width w the two results are exactly equal due to the waveguide symmetry, for the parameters h and t one should prefer the second versions, where the field is evaluated along the boundaries with the larger field strength (with larger relative accuracy).

In first order perturbation theory, the geometry alterations influence the propagation constants only, without afflicting the mode profiles. Therefore the propagation constant gradients, if multiplied by a small displacement and inserted into the `pert` argument of the interference procedures, give access to the geometry dependences of the power transfer and the mode interference figures as well. 