Part 1 of the ring resonator tutorial uses MODE to design and simulate a ring resonator. Free spectral range (FSR) and quality factor (Q factor) are key performance metrics for this silicon on insulator (SOI) based waveguide design targeting on-chip communication applications. In Part 2, we will consider how to carry out the parameter extraction and Monte Carlo analysis process for this design. Part 3 does the final simulation and parameter extraction using a 3D FDTD simulation.
Part 1: Design and initial simulation using MODE
Part 2: Parameter extraction and Monte Carlo using MODE
Part 3: Final parameter extraction using FDTD
This page contains 4 sections. The first section (Object setup) describes how to setup the simulation from a blank simulation file, based on the design obtained in part 1. If you prefer to skip this section, a copy of the completed simulation file is provided on the first page of the tutorial. The final three sections describe how to run the simulation, plot simulation results like field profiles and transmission spectra, and calculate the S parameters for this ring resonator device.
Object setup
We will start with the geometric parameters determined in the MODE getting started example.
Structure
- Open a blank simulation file.
- Press on arrow on the STRUCTURES button and select a RECTANGLE from the pull-down menu. Set the properties of the insulator substrate rectangle according to the following table.
tab |
property |
value |
---|---|---|
Geometry |
x (μm) |
0 |
|
x span (μm) |
22 |
|
y (μm) |
0 |
|
y span (μm) |
16 |
|
z (μm) |
-2 |
|
z span (μm) |
4 |
Material |
material |
SiO2 (Glass) - Palik |
- Press on arrow on the COMPONENTS buttonand select INTEGRATED OPTICS from the pull-down menu. This will open the object library window.
- Select RING RESONATOR from the list and press the INSERT button.
- Set the properties of the ring resonator according to the following table. The coupling length and radius used for the first part of the simulation are just an initial guess and will be modified to the correct values later. The value of the index property of the ring resonator is not used unless the material is specified as
tab |
property |
value |
---|---|---|
Properties |
x, y (μm) |
-12.5, 0 |
z (μm) |
0.09 |
|
|
Lc (μm) |
0 |
|
gap (μm) |
0.1 |
|
radius (μm) |
3.1 |
|
material |
Si (Silicon) - Palik |
|
base width (μm) |
0.4 |
base angle (degrees) |
90 |
|
|
base height (μm) |
0.18 |
|
x span (μm) |
25 |
FDTD Region
- Press on the SIMULATION button to add a simulation region. Note that if your button does not look like the button to the left, you will need to press on the arrow to get the simulation region. Set the properties according to the following table.
tab |
property |
value |
---|---|---|
General |
simulation time (fs) |
4000 |
Geometry |
x (μm) |
0 |
|
x span (μm) |
9 |
|
y (μm) |
0 |
|
y span (μm) |
10 |
|
z (μm) |
0 |
|
z span (μm) |
1 |
Mesh settings |
mesh accuracy |
1 or 2 |
Ports
- Press the PORT button which generates a port group as a child of the FDTD simulation region object containing a port object. Expand the FDTD simulation region object and edit the ports group which contains the port object.
property |
value |
---|---|
source port |
port 1 |
source mode |
mode 1 |
monitor frequency points (global override) |
500 |
- In the same edit port group window click the "Set global source settings" button to open up the global source settings options where you can set the properties according to the following table.
tab |
property |
value |
---|---|---|
Frequency/Wavelength |
wavelength |
min/max |
|
wavelength start (μm) |
1.5 |
|
wavelength stop (μm) |
1.6 |
- Next, expand the ports group in the Objects Tree and select and edit the port object in the ports group. Set the properties of the port according to the following table.
tab |
property |
value |
---|---|---|
Geometry |
x (μm) |
-4.2 |
|
y (μm) |
3.6 |
|
y span (μm) |
3 |
|
z (um) |
0 |
|
z span (um) |
1 |
Modal properties |
injection axis |
x-axis |
direction |
Forward |
|
mode selection |
fundamental mode |
|
frequency points |
1 |
- Use the DUPLICATE button to create three copies of the port. Set the properties according to the following tables.
tab |
property |
value |
---|---|---|
|
name |
port 2 |
Geometry |
x (μm) |
-4.2 |
|
y (μm) |
-3.6 |
Modal properties |
direction |
Forward |
tab |
property |
value |
---|---|---|
|
name |
port 2 |
Geometry |
x (μm) |
-4.2 |
|
y (μm) |
-3.6 |
Modal properties |
direction |
Forward |
tab |
property |
value |
---|---|---|
|
name |
port 3 |
Geometry |
x (μm) |
4.2 |
|
y (μm) |
3.6 |
Modal properties |
direction |
Backward |
tab |
property |
value |
---|---|---|
|
name |
port 4 |
Geometry |
x (μm) |
4.2 |
|
y (μm) |
-3.6 |
Modal properties |
direction |
Backward |
Monitors
- We will place time monitors at each port to study the field as a function of time.
- Press on the arrow on the on the Monitors button and select the field time monitor from the pull-down menu. Set the properties according to the following table
tab |
property |
value |
---|---|---|
|
name |
t_drop |
Geometry |
x (μm) |
-4.2 |
|
y (μm) |
-3.6 |
- Use the DUPLICATE button to create three copies of the monitor. Set the properties according to the following tables.
tab |
property |
value |
---|---|---|
|
Name |
t_drop2 |
Geometry |
x (μm) |
4.2 |
|
y (μm) |
-3.6 |
tab |
property |
value |
---|---|---|
|
name |
t_in |
Geometry |
x (μm) |
-4.2 |
|
y (μm) |
3.6 |
tab |
property |
value |
---|---|---|
|
name |
t_through |
Geometry |
x (μm) |
4.2 |
|
y (μm) |
3.6 |
- We will also add a profile monitor to study the field distribution at different frequencies. Press on the arrow on the Monitors button and select the frequency domain field monitor from the pull-down menu. Set the properties according to the following table.
tab |
property |
value |
---|---|---|
|
name |
full_profile |
General |
override global monitor settings |
select check box |
frequency points |
5 |
|
Geometry |
monitor type |
2D Z-normal |
|
x (μm) |
0 |
|
y (μm) |
0 |
|
x span (μm) |
16 |
y span (um) |
12 |
|
z (um) |
0 |
Setup resources. Run simulation
- Press the Resources button and check the number of processes (number of cores) for the local machine. If you have additional computers on the network with FDTD installed as well as extra engine licenses, you can add them to the resource list. Click "Add" and set the appropriate properties.
- Press the "Run Tests" button to make sure the simulation engines on the resources are configured correctly. The first time you run this test, it may fail and ask you to register your username and password for your operating system account. If it does, fill in the appropriate text fields, press "Register", then "OK", and re-run the tests. If there are any errors or warnings, they will appear in the "Result" field.
- Run the simulation by pressing the RUN button
Plot results
- Once the simulation finishes running, all the monitors and analysis groups in the object tree will be populated with data. The Results View window (which can be opened by clicking on the "Show result view" button) will display all the results and their corresponding dimensions/values for the selected object. Plot the time signal and spectrum Ey by right-clicking on the "t_drop" time monitor and selecting Visualize - E or spectrum.
- You can then select which components of the E field data you want to plot in the Visualizer. The screenshot below shows how to plot the real part of the y component of the electric field. Note that the data in the plots shown below was generated using the mesh accuracy setting of 2.
Click to expand
- To plot the transmission through port 3, right-click on the "port 3" object and select Visualize-T.
- To plot the S parameters from a port, select the port and select Visualize-S. In the visualizer window, you can choose to apply a scalar operation for example to view the real or imaginary part of the complex S-parameter, or to plot the phase of the S-parameter. In the following image, the "Angle" scalar operation is applied to the S dataset from port 2 to plot the phase of S21. The frequency parameter is selected to plot the data over frequency instead of wavelength.
- To plot the magnetic field intensity at 1.52 microns, right-click on the full_profile monitor and select Visualize-H and select the appropriate wavelength using the slider bar or arrows.
Calculate and export full S-parameter matrix
The model analysis group in the provided pre-made simulation file has been set up to collect the S parameters due to the input source at port 1 and return a dataset result called "S" which contains the results for S11, S21, S31, and S41. Since the structure is symmetric, only 1 simulation is necessary to extract the unique S-parameters for the device since we know that S11=S22=S33=S44 etc. due to symmetry.
The script will also export the S parameter results into a .txt file, which can be imported directly by INTERCONNECT, and the script can be found in the script under the Analysis tab of the "model" group.
- As shown in the figures above, the Results View will automatically show the S parameters result returned by the model analysis group. One can then visualize this result by right-clicking on "S" and selecting Visualize.
Results
FDTD contains ports which have integrated mode solvers. A port is used to inject a guided mode into the upper waveguide. The selected mode to inject is set to the fundamental mode of the waveguide. This mode is TE polarized.
In the screenshot shown to the left below, the port plane is drawn with a white outline and grey shaded region where it is inside the FDTD simulation region. The injection direction is depicted with the pink arrow. The image on the right shows the mode profile |E|^2 that will be injected by the port. The mode profiles can be viewed by right clicking on the port object, or using the Result View window when the mode source is selected. You can also view the mode profile by editing the port object and clicking the "Visualize Mode Data" button in the Modal Properties tab.
Notice that the mode profile goes to zero at each edge of the image. For accurate simulations, it is important that the mode source be large enough to contain the entire mode. If the mode source is too small, the mode will be truncated, leading to simulation errors. Similar rules apply to the FDTD simulation region, shown as an orange box. The absorbing PML boundaries of the simulation region can not be placed too close to the structure, or they will clip the mode.
Ports are also used at the output waveguides to obtain the S-parameters of the device. More information about ports can be found at Ports.
The ring resonator is a high Q device which traps the light for many round trips in the ring. These high Q devices require longer simulation times in the time domain than non-resonant devices. Based on the MODE example, we will start with a simulation time of 4000 fs, although more time may be necessary.
This is longer than our default simulation time (1000 fs). It is important to increase the simulation time because the frequency domain monitor results are incorrect if the simulation time is not set long enough for the fields to decay. A more detailed discussion on this can be found at Simulation time and Frequency domain monitors.
We can initially set the mesh accuracy to 1 and run the simulation. It is a good idea to run initial simulations at very low mesh accuracy since they run quickly to be sure that most settings are correct and that we are obtaining reasonable results. The simulation will run in about 5 minutes or less on a modern workstation. Please refer to the Modeling Instructions section for detailed information on how to generate some of the plots below.
The plot to the left below shows the Ey field in the drop channel. Notice that the initial peaks are rapidly distorted due to dispersion. The figure on the right shows the associated spectrum at the drop channel (port 2). As expected, we see resonances approximately every 25.6nm. We also notice that some of the resonances are split. This is in fact an effect of coupling between forward and backward propagating modes in the ring, which are weakly coupled and lead to Rabbi splitting. In principle, the backward propagating modes should not be excited, however, there is some scattering to backward propagating modes each time the waveguides are close together. This effect is made worse by the very low mesh accuracy, which can also introduce backscattering throughout the ring due to staircasing effects. We will see that these effects are significantly reduced as we increase the mesh accuracy. Nonetheless, backscattering effects can have important consequences in real devices.
The figure below shows the magnetic field intensity at 1.5238 microns in the device. Here we clearly see the standing wave pattern from forward and backward propagating modes, which leads to the Rabbi splitting observed at the 1.53 micron resonance. Note that this causes light to be reflected back into the source and to output both forward and backward at the drop waveguide.
We can rerun the simulation with a mesh accuracy of 2. This will take 25 minutes or less on a modern workstation to run the full 4000 fs.
We can select the through and drop channels (port 3 and port 2 respectively) to quickly plot the transmission in these waveguides using a visualizer. The ripples in the result are an indication that the fields in the ring have not fully decayed before the end of the simulation, as these ripples are characteristic of the Fourier transform of a time signal that is truncated (discussed in detail on this page Simulation time and Frequency domain monitors). We also notice that the splitting of the peaks has disappeared, indicating that the coupling to backward propagating modes was artificially large due to the extremely coarse mesh used. However, we will see that there is still backward propagating light generated and it would be worth doing some convergence testing of the mesh size, particularly around the waveguide coupling region, to determine how significant a problem this might be for an actual device.
The following lines of script will also export the drop results in a format that can be used for MODE to compare with the MODE results. The transmission data and wavelength are obtained from the "T" dataset from the drop port (port 2). More information about working with datasets can be found at Datasets.
Tdrop_dataset = getresult("FDTD::ports::port 2","T"); Tdrop_3DFDTD = abs(Tdrop_dataset.T); lambda_3DFDTD = Tdrop_dataset.lambda; savedata("fdtd_results.ldf",Tdrop_3DFDTD,lambda_3DFDTD);
We can also obtain the spatial field profiles at various frequencies. The right image below shows |E|^2 at 1.6 microns, where almost all the light is transmitted to the through channel. The left image is shown at 1.5238 microns, where we begin to see light resonate more strongly in the ring. Once the spectrum is determined of course, we can adjust the wavelength of our profile monitor to capture the fields precisely on and off resonance.
Parameter extraction
The ring resonator is a 4 port device, and we've numbered the ports 1 through 4, as shown below. We could set up an S-parameter matrix sweep task to run 4 simulations where the source is injected from each of the 4 ports and the S parameters are collected to construct the 16 parameter S matrix which can be exported for use in INTERCONNECT. However, this device is symmetric, that only 4 coefficients of the S matrix need to be calculated (for example, S11=S22=S33=S44), so only 1 simulation needs to be run to obtain the 4 unique S parameters (S11, S21, S31, S41).
The ports calculate the amount of forward and backward propagating power in the fundamental TE mode for the 4 input and output ports, and the S result returned by the port 1 is the complex reflection coefficient, for ports 2-4 the S result is the complex transmission coefficient of the light in the fundamental mode of the waveguide. First, we can look at this in the Visualizer. Note that this analysis takes several seconds because each waveguide mode is recorded over 500 frequency points. To speed up the calculation, we have used a single mode at the center frequency for the expansion, however we could calculate more mode profiles over the device bandwidth to obtain a more accurate expansion (the number of frequency points for expansion can be set in the Modal Properties tab of the port edit window). The figure below shows the amount of power reflected in port 1 and transmitted through ports 2, 3 and 4 by plotting the |S|2 from each of the ports. It is interesting to note the resonant reflection and transmission that is occurring at port 1 and port 4. The power reflected and leaking out port 4 is equivalent. As discussed above, these are due to weak coupling between forward and backward propagating modes in the ring, which can have a substantial effect due to the high Q of the device.
The model analysis group at the top of the Objects Tree is setup to collect the S parameters from the ports into a single dataset result. Select the model and use the Results View window to calculate the S result. The analysis script in the model analysis group also saves the complex S-parameters S11, S21, S31 and S41 to the text file FDTDtoINTERCONNECT.txt which can be used to create a ring resonator element in INTERCONNECT. The different S-parameters can be easily visualized and below we see the phase of S21 and S31. We can see the effect of the resonances which lead to sudden changes in the slope of the phase which indicates the sudden change in group delay at resonance. There is still a reasonable amount of ripple in S21 that could clearly lead to incorrect interpretations of the group delay of the ring, these could be removed by running a longer simulation.
Note on convergence testing
The following issues may affect the convergence and should be investigated more extensively:
- The proximity of the PML. To save time, the simulation uses very little space vertically between the waveguide layer and the PML. The z span of the simulation region should be increased.
- The simulation time should be increased. Once the correct time of the simulation has been determined to achieve convergence of key results, time apodization of the frequency domain monitors may be used to remove any ripple that remains in the spectra.
- The mesh size should be tested at a mesh accuracy of 3 and possibly even 4. It may also be necessary to use a mesh override region near the waveguide coupling regions to force a fine mesh in those regions because the coupling of the forward and backward propagating modes appears to be sensitive to the mesh used in this region.
2D Approximation to 3D Geometries
3D simulations are much more CPU-time and memory intensive than 2D simulations. The ring resonator example we reference using MODE collapses the z dimension in a physically meaningful way and is then able to run a 2D FDTD simulation much more quickly, while still maintaining the accuracy of important results like the filter FSR. It is also possible run a 2D simulation in FDTD, using a material with the effective index of the slab modes supported in the Si layer. However, using a constant effective index will not give the correct FSR for the device, which depends on the group index of the waveguide modes. Therefore, we recommend doing the initial design and optimization in MODE, then moving to 3D FDTD for final optimization and accurate parameter extraction.