In this topic, we show an example of a waveguide device that rotates an input waveguide polarization from TE to TM. This example demonstrates two methods to calculate the required propagation length for the polarization rotation:
- FDE solver - waveguide B (the rotator) has a uniform cross-section, this makes the FDE method possible for this type of calculation. The modes and neff in waveguide A and B are calculated using FDE. The length is then calculated using the formula below. The propagate and overlap commands are then used to calculate the efficiency of the polarization rotation. For a non-uniform cross-section device, this method may not be applicable, see the EME method below or the polarization convertor (taper) example.
- EME solver - A full 3D EME simulation is run to show the polarization rotation efficiency as a function of the propagation length. This method can also be applied to a non-uniform cross-section device, for example a taper.
Background
For two modes in a waveguide with two different refractive indices (n1 and n2), the modes will accumulate different phase after the propagation of a certain length (L) due to the difference in the effective indices (neff). If the propagation length is long enough to accumulate a phase difference of pi, then L becomes:
$$phase\_difference = \frac{2 \pi L}{\lambda/n1} - \frac{2 \pi L}{\lambda/n2} \Rightarrow L = \frac{\lambda}{2(n1 - n2)}$$
For example, waveguide A supports both a TE and TM mode with an effective index of approximately 1.4. We want to design a device (waveguide B) that will convert the TE_A (TE mode of waveguide A) into the TM_A mode. Waveguide B, the polarization rotator device, will be coupled to waveguide A as shown in the right hand figure.
Waveguide A
Waveguide B between two waveguide A sections
This type of polarization rotator must have the following characteristics:
- Supports two modes, where the polarization of the modes are rotated 45 degrees with respect to the modes of waveguide A. In this case, the modes of waveguide B should be around 50% TE and 50% TM.
- The modes must have different effective indices (non-degenerate).
- Mode TE_A must couple to each mode with equal efficiency.
Waveguide A mode list
Waveguide B mode list
FDE Simulation
The script polarization_rotator.lsf can be used to calculate the efficiency of a polarization rotator. Open waveguideA.lms, then run polarization_rotator.lsf. The script will first calculate the modes in both waveguide A and B.
The script then calculates how much energy can couple from the TE_A into the modes of waveguide B.
TE mode waveguide A has been decomposed into 2 modes of waveguide B This accounts for around 85% of the incident power
Next, the script calculates the propagation distance required to rotate the polarization by 90 degrees (equivalently a 180 degree phase difference) due to the difference in neff between the two modes in waveguide B. It then propagates the modes to the required distance and calculates the resulting mode profile mode_L.
propagation of length is around 6.2 mm in waveguide B
Finally, it calculates the transmitted power coupling back into the modes of waveguide A. Then the total power transmission from the TE_A to TM_A is given.
After propagation of length 6.2 mm in waveguide B, we couple back to waveguide of type A and find 13% power coupling to TE mode 72% power coupling to TM mode Total transmission from TE mode to TM mode of waveguide A is: 61% Total transmission from TE mode to TE mode of waveguide A is: 11%
The goal of this example is to illustrate the basic simulation methodology and how to use the propagate command, rather than to determine the optimal rotator design. It is certainly possible to design a rotator with higher coupling efficiencies than the design in waveguideB.lms.
Note: The propagate command The propagate command calculates the resulting mode profile of an arbitrary mode after it has propagated through a waveguide for some distance. This is done by decomposing the mode into modes supported by the waveguide. Each supported mode is then propagated through the waveguide. The resulting modes are then added coherently to give the final mode profile. |
EME Simulation
The polarization_rotator_EME.lms file can be used to simulate this polarization rotator. The above FDE method can be used to calculated the length required for the rotation and the coupling efficiency. To observe the effect as a function of the propagation length, an EME simulation is more computationally efficient.
In the EME simulation, the structure is divided into 3 groups (wg_A, wg_B and wg_A). Each of the group only needs 1 cell since the cross section is uniform along the propagation in each group. The span of group 2 (wg_B) will be emeswept up to 7000 um. This number is estimated from the above equation for the required propagation length to cause the rotation. For now, only 2 modes in each group is selected to show the polarization conversion. If more modes are selected, some beats may be observed, see later section on this page.
Modes setup in the Edit EME window
To setup the eme propagation sweep in script:
setemeanalysis("Propagation sweep",1); setemeanalysis("parameter","group span 2"); # length of wg_B setemeanalysis("start",10e-6); setemeanalysis("stop",7000e-6); setemeanalysis("number of points",101);
To run the simulation and eme sweep
run; emesweep; S=getemesweep("S"); plot(S.group_span_2*1e6,abs(S.s31)^2,abs(S.s21)^2,"wg_B length (um)","transmission"); legend("TE->TM","TE->TE");
A plot can then be generated. It shows that the TE to TM conversion has a peak at around 6.2 mm with around 60% efficiency, which is in agreement with the FDE results. Please note the rotator presented here is not optimized but is just an example to demonstrate the simulation technique.
Beats
Only the first two modes in wg_B is chosen in the above simulation. However, the TE_A mode can actually be expanded into higher order modes in wg_B. If more number of modes is chosen is wg_B, some beats may be observed due to the some interference with the higher order modes. To include more modes, go to the Edit EME window, check the "allow custom eigensolver settings" and choose more number of modes for wg_B.
The the S21 parameter (TE_A to TE_A) transmission has some beats when some higher orders modes are involved in wg_B. A shorter "stop" point to take a closer look at the beats:
setemeanalysis("Propagation sweep",1); setemeanalysis("parameter","group span 2"); # length of wg_B setemeanalysis("start",10e-6); setemeanalysis("stop",700e-6); setemeanalysis("number of points",101);
To run the simulation and eme sweep
run; emesweep; S=getemesweep("S"); plot(S.group_span_2*1e6,abs(S.s21)^2,"length (um)","transmission");