Please enable JavaScript to view this site.

Application Gallery

Navigation: » No topics above this level «

MMI Coupler

Scroll Prev Top Next More

cover_picture_mmi_coupler_zoom33Calculate the broadband transmission and optical loss through a 1×2 port multi-mode interference (MMI) coupler. Use the device S-parameters to create a compact model of the MMI in INTERCONNECT. It is also shown how to extract these parameters for compact model generation using the CML Compiler.

Files and Required Solvers






Minimum product version: 2019a r1



Run and results

Important model settings

Updating the model with your parameters

Parameter extraction for CML Compiler

Taking the model further

Additional resources

Appendix: S-parameter-extraction


Understand the simulation workflow and key results


Low loss optical combiners and splitters are essential components for Mach-Zehnder based optical modulators and are key building blocks of integrated circuits. Losses can be minimized by ensuring good matching between the modes of the input/output waveguides and the interference region by using linear tapers at the input/output waveguides.

The EME solver is ideally suited to characterizing these devices. The device in this example is optimized for TE mode, but the approach can be extended to any design and polarization.  

Step 1:

Run parameter sweeps with EME to optimize the MMI geometry. This example runs sweeps over taper width and interference region length parameters.  Transmission at the output ports is the figure of merit.  

Step 2:  

Once an optimal design is found, extract the S-parameters as a function of wavelength for each mode of interest.  These will be used to create a compact model in INTERCONNECT.

Step 3:  

Create a compact model in INTERCONNECT, using the optical n port s-parameter (SPAR) element and import the data from step 2.

Compact model generation with CML Compiler

To generate the compact model of the MMI coupler with CML Compiler, simply skip Step 3 and provide the data extracted in Step 2 to the CML Compiler. Advanced users already familiar with this example can proceed to the Parameter extraction for CML Compiler section directly. If you are new to this example, we strongly recommend going through the preceding sections and learn about the individual steps before moving to the Parameter extraction for CML Compiler section.

Run and results

Instructions for running the model and discussion of key results

Step 1: Optimize MMI geometry

Run a series of parameter sweeps to optimize the MMI performance.  It is straightforward to extend the example to sweep over other parameters not directly covered in the example.  

Mode convergence sweep: ensure the number of modes in each cell is enough to give accurate results. Mode convergence sweeps are an important part of ensuring the simulation results are reliable, and should be done as part of the initial setup of an EME simulation file.


Wavelength sweep: EME is a single frequency solver. A parameter sweep is necessary to get broadband results.  


Core length sweep: Determine the optimal length of the core section. Sweeps that involve changing the length of a region are ideally suited for the EME solver, as the results can be obtained almost instantaneously.  


Taper width sweep: Determine the optimal width of the taper region.

Mode convergence sweep

1.Open the MMI.lms simulation and run it.

2.From EME Analysis Window, enable Mode convergence sweep with mode interval of 1. Press mode sweep button and then visualize the data.

3.In the visualizer window, keep only the s21 attribute and set the scalar operation to Abs^2. The plot shows the transmission in the output port as a function of number of modes.  

4.To speed up the simulation time, enable the override max modes and set the max modes value to 20.  

5. Press the eme propagate button and then visualize the field profile from field_profile monitor.  

The plot below shows that transmission results from the output ports are converging with ~15 modes. A slightly larger value is used to make sure the number of modes is enough for other sweeps (like wavelength, core length, and taper width) used in this example. The electric field intensity obtained from field_profile monitor is also shown on the plot below.


Wavelength sweep

6.From EME Analysis Window, enable Wavelength sweep. Set the wavelength sweep to be 1.5 - 1.6 µm with 100 number of wavelength points. Press wavelength sweep and then visualize wavelength sweep.

7.In the visualizer window, keep only the s21 attribute and set the scalar operation to Abs^2. Plot shows the transmission in the output port as a function of wavelength.  

The wavelength sweep tab returns the user s-matrix. The transmission in the fundamental TE-mode through port 2 from port 1 then can be calculated from the S21 element of the user s-matrix. The plot on the right shows the MMI transmission as a function of wavelength for a taper width of 1.1 µm obtained using the wavelength sweep feature in the EME Analysis window.

The wavelength sweep is a quick way to get broadband results from the EME solver. However, it’s important to understand the wavelength sweep makes some approximations to make the calculation run faster.  The results should be checked with the slower but more accurate wavelength sweep found in the “Optimization and Sweeps” window.  


Core length sweep

8.Enable Propagation sweep and select group span 2. Set the start and stop lengths to 10 µm and 200 µm accordingly. Set interval to 1 and press eme sweep and then visualize eme sweep.  

9.In the visualizer window, keep only the s21 attribute and set the scalar operation to Abs^2. Plot shows the transmission in the output port as a function of the length of interference region.

The plot below shows transmission as a function of core length. A maximum transmission occurs at core length of ~37 µm as can be seen in the plot.


Taper width sweep

10. Load the MMI_sweep_taper.lsf script file and run it. A parameter sweep task over taper width property of the structure group will return the user s-matrix, and a plot of loss as a function of taper width will be provided.

In the "Optimizations and Sweeps" window, a parameter sweep task is set up to sweep the taper width property of the structure group between 0.4 microns and 1.1 microns and collect the user s-matrix. The script file is used to run this parameter sweep and collect the user s-matrix results. The value obtained from the S21 element of the user s-matrix is then doubled to give the transmission through both output ports. The result is plotted below.


Step 2: S-parameter Extraction

11. Run the MMI_write_s_params.lsf to extract s-parameter for an N-port S-parameter object in INTERCONNECT.

The MMI_write_s_params.lsf script file extracts the s-parameters of the 1×2 MMI coupler (as a function of wavelength for both TE and TM modes) and saves them to the file MMI-s-params.txt with the Optical N Port S-Parameter file format for the group delay option. For more information see Appendix: S-parameter-extraction.


The plots on the right show the transmission to one of the output ports for both TE- and TM-modes. As expected, the TE mode performance is better, since the device was designed for TE modes.


Step 3: Circuit simulations in INTERCONNECT

12. Open the MMI_circuit.icp file.

13. Load the MMI-s-params.txt into SPAR element.

14. Run the simulation twice, for TE- and TM-modes, by changing the orthogonal identifier in the ONA.

15. Visualize the transmission result from the ONA for each polarization.  

Validate the MMI compact model by reproducing the transmission curves obtained in the previous step. The plot shows transmission for both polarizations.


Important model settings

Description of important objects and settings used in this model

Model setup script

A setup script in the MMI_coupler object is used to set the geometry of the 1×2 MMI coupler. The script is a convenient way to ensure the geometry of MMI coupler is correct. The position of the MMI coupler must be set via the setup script. Other properties, such as the simulation region and mesh override positions should be modified directly in the objects.

Mesh override region

A mesh override is used over the tapered waveguides to make sure that their width and thickness are multiple integers of mesh cells.


A symmetric boundary conditions (BCs) is used in the Z-direction to reduce the simulation time. A symmetric (anti-symmetric) BC along the z-direction will limit the solver to only TE- (TM-) modes in the interference region.  

While the structure is symmetric along the y-direction, the entire geometry must be simulated to obtain a correct S-parameter. This is because once symmetry along the y-direction is applied, port 3 will be outside the simulation region and will not be simulated.

Wavelength sweeps

There are two ways to obtain broadband results. The ‘Wavelength sweep’ feature in the EME Analysis Window is ideal for getting initial results as it is very fast. For more accurate results, it is necessary to run a full EME simulation for each wavelength. Use the ‘wavelength_sweep’ in the Optimization and Sweeps window to do this.  

Length sweeps

EME is an ideal product for performing length sweeps over any section of geometry with almost no additional cost. This is beneficial for fast optimization purposes. However, the special EME length sweep can’t be used when running optimizations using the standard optimization feature. To run an optimization that involves changing the length, the device length as well as other objects such as simulation region must be parameterized in the same way as any other parameter.

Updating the model with your parameters

Instructions for updating the model based on your device parameters

The MMI coupler is parametrized to make setting up the geometry easier. The template currently uses 1×2 MMI coupler with tapered waveguides. Once you specify the parameters in the '1×2 port MMI coupler', the size of the object will be updated.

1.Set the geometry of the tapered and interference region of the MMI coupler.

2.Adjust the simulation region and mesh override positions directly to consider changes in the MMI geometry

3.Set the material or index of the MMI coupler.

4.Symmetry boundary conditions can be utilized to reduce the memory and the simulation time when there are symmetries in both the field and the structure. Disabling symmetry for your initial simulations is recommended, as selecting the correct symmetry can be challenging.

Parameter Extraction for CML Compiler

Instructions for parameter extraction for CML Compiler for compact model generation


The S-parameter data including the group index is extracted using the automated scripted approach in Step 2. This data is already in the required format and can be used by CML Compiler to generate the compact model for the MMI Coupler. Note that the running of the CML Compiler is beyond the scope of this example. For more information about CML Compiler visit the product page.

1.Open the simulation file MMI.lms and the script file MMI_write_s_params.lsf.

2.Run the script .

Taking the model further

Information and tips for users that want to further customize the model

A more complex figure of merit could be defined that both maximizes forward transmission while minimizing back reflections. abs(S11)^2 give the back reflected power.  

The varFDTD solver can be used as a complementary tool for optimizing the MMI device.  varFDTD is better suited to providing broadband results, while EME is ideal for running sweeps over the lengths of each cell group.

Slower but more accurate 3D FDTD simulations should be used to validate the results of the EME and varFDTD simulations.

Additional resources

Additional documentation, examples and training material

S-parameter file formats

Group Delay Specification in S-Parameter Elements for Use with Sparsely Sampled Data


Course_EME100     Course_INT100 Course_SCRIPTING_v1

Appendix: S-parameter extraction

Additional background information and theory

S-parameter extraction from component level simulations of passive photonic devices

The S-parameter matrix formalism is a common approach to build compact models of photonic devices to be used in circuit-level simulations. Assuming the response of the device to optical signals is linear, it can be modeled by a network (black box) with multiple network ports, where each of them receives an incoming signal and scatters or reflects an outgoing signal.


We assume the device has N physical ports (which typically are input/output waveguide channels) and each of these supports a certain number of modes of interest. Each element of the S-parameter matrix is the ratio between the complex envelopes of the optical modes in two physical ports. For example, to model the behavior of the fundamental TE and TM modes at the input/output waveguide channels of a 1x2 MMI we need a 6x6 S-parameter matrix, given that there are two modes at each of the three physical ports. Each column of the S-parameter matrix corresponds to a fixed input physical port and mode and each row corresponds to a fixed output physical port and mode.


The approach to extract the S-parameter matrix of a photonic device depends on the solver being used. In both FDTD and EME solvers, port objects can be setup at each of the physical ports. The main differences between the solvers for the S-parameter extraction are:

FDTD injects one mode in one input port object per simulation, while EME can solve for all the elements of the S-matrix in one simulation;

FDTD is broadband so many frequency points can be calculated in one simulation, while results from EME are for a single frequency per simulation.


Therefore, in both solvers it is necessary to run sweeps to obtain the full S-parameter matrix at multiple frequency values, either by sweeping over the input physical ports and modes or over the frequency points.

Use the examples in the Application Gallery to determine the appropriate solver for your component. This section describes the recommended approach for S-parameter extraction and export to INTERCONNECT once you have determined the appropriate solver.


In this section we describe how to:

1.For FDTD, calculate the S-parameter matrix and save it to a file with the appropriate format to be imported in an Optical N-port S-parameter primitive element in INTERCONNECT.

2.For EME, calculate the S-parameter matrix and save it to a file with the appropriate format to be imported in an Optical N-port S-parameter primitive element in INTERCONNECT.

3.Optionally, more accurately account for group delay of the device. This is important in elements that will be part of phase-sensitive circuits (for example, cavities, resonating structures and interferometric devices). We will use the group delay specification in the S-parameter file, required for the group delay option in the digital filter of the Optical N-port S-parameter element in INTERCONNECT.

How to extract S-parameters

FDTD solver:

1.Check that the port objects in the simulation have been set up correctly to collect all the data required for the S-parameter matrix. In particular, make sure that all the desired modes are selected at the ports; the “user select” option in the Modal Properties allows you to pick multiple modes (for example, fundamental TE and TM modes) when necessary for the full S-parameter matrix.

2.Create a S-parameter matrix sweep item in the “Optimizations and Sweeps” window with the following settings:

S-Matrix Setup tab:

The modes selected at each port are displayed in this tab. Make sure the list is consistent with the physical ports and modes you want to include in the S-parameter matrix (see step 1).  

The option “Excite all ports” is enabled by default, which means that a simulation will be run for every port and mode in the list to calculate each column of the S-parameter matrix. To reduce the number of simulations you can map between columns taking advantage of symmetries in the structure. If that is the case, disable the “Excite all ports” option and click on the “Auto symmetry” button to let the solver determine the appropriate mapping based on the port locations. In some cases adjustments to the mapping are required so it is always recommended to review the settings after applying auto symmetry.  

INTERCONNECT Export Setup tab:

Select the “Custom define” option to define the mode ID and port location properties.

The file export automatically assigns a mode ID to each mode. It is often necessary to manually set the mode ID so they are consistent with the orthogonal identifier convention to be used in INTERCONNECT. This is important, for example ,when connecting the Optical N-port S-parameter element to an Optical Network Analyzer (ONA) in INTERCONNECT. The setting for the excitation mode in the ONA is the “orthogonal identifier” property in the “Waveguide” section. The typical convention is to use “orthogonal identifier” = 1 for the fundamental TE mode and “orthogonal identifier” = 2 for the fundamental TM mode.

3.After running the S-parameter sweep, the “Visualize” and “Export to INTERCONNECT” options become available in the context menu of the S-parameter sweep item. The “Export to INTERCONNECT” option allows you to generate a text file with the S-parameters. This file has the format required by the Optical N-port S-parameter primitive in INTERCONNECT without group delay specification, which is appropriate when the phase or group delay of the device are not critical for the compact model.

4.If phase and group delay are critical, the group delay can be estimated by calculating the slope of the phase as a function of frequency at the center frequency/wavelength. The script add_group_delay_FDTD_Spar.lsf takes as input the S-parameter text file created in step 3 and modifies it to include the group delay. For more information see the section S-parameter extraction for group delay option in INTERCONNECT below.


EME solver:

1.Create a parameter sweep in the “Optimizations and Sweeps” window with “model::EME::wavelength” as a parameter and “::model::EME::user s matrix” as a result; this sweep will run multiple simulations with different wavelengths. An alternative is to use the “Wavelength sweep” feature in the EME Analysis window, which will use only one simulation to quickly estimate the S-parameters over a given wavelength range; however, this feature should not be used to obtain final results as the accuracy of the calculation depends on the type of simulated structure.

2.Examples that use EME include a script that exports S-parameters in the format required by the Optical N-port S-parameter primitive. In the script you need to provide the INTERCONNECT port definitions (names and locations) and the S-parameter file name. The following actions are performed by the script:

Run the parameter sweep for wavelength, collect the results and write them in the text file with the appropriate format.

In situations where the phase and group delay are critical, the script will also run the simulation and the EME propagation for the center wavelength with the option “calculate group delays” enabled. The group delay is added to the text file and the S-parameter phase is corrected as explained below in the section S-parameter extraction for group delay option in INTERCONNECT.

The output of the script is the S-parameter text file in the correct format ready to be imported in INTERCONNECT.

S-parameter extraction for group delay option in INTERCONNECT

Some photonic circuits rely on controlling the phase of the optical signal traveling through the different components; therefore, the phase of the S-parameters can be very important. There are a couple of challenges to capture the phase correctly in the Optical N-port S-parameter primitive in INTERCONNECT:

Spectral sampling of the phase in the S-parameter data: Typically, the variation of the phase as a function of frequency is mostly linear with a slope that is proportional to the group delay (the delay of the optical signal between two ports). Therefore, in long devices the phase can change very quickly with frequency, and a fine sampling in frequency would be necessary to avoid phase changes greater than \( 2 \pi \) so that the phase has the correct slope after unwrapping it. This is important for both frequency- and time-domain simulations in INTERCONNECT.

Capturing the correct group delay and frequency dependence of the S-parameters in INTERCONNECT time-domain simulations: For time-domain simulations the most common type of filter used in the Optical N-port S-parameter primitive is the finite impulse response (FIR) one, which has multiple options for the estimation of taps. The choice depends on what is the most significant aspect of the element response to be captured in the circuit simulations. In elements where the phase is important, typically it is necessary to capture both the group delay and the frequency dependence of the S-parameters correctly.


The “group delay” option for the “number of taps estimation” in the digital filter settings of the Optical N-port S-parameter primitive provides solutions to both challenges:

The group delay is captured correctly without requiring a fine spectral sampling of the S-parameters by using group delay estimates provided by the user for each S-parameter matrix element at the center frequency/wavelength.

In most cases, the FIR filter in time-domain simulations can capture the group delay and frequency dependence of the element response more accurately with the "group delay" option, compared to other options for tap estimation. With the "group delay" option, the number of taps available to the filter depends on the sample rate of the INTERCONNECT simulation and the group delay estimate provided by the user: for a given sample rate, there are more taps available for larger group delays. Since most photonic devices are long compared to the wavelength of the signal, typically the number of available taps is not a concern. Only in cases where the device is relatively short, it might be necessary to increase the sample rate.

Compared to the regular file format for S-parameter files in INTERCONNECT, the group delay option requires a slightly different format, which includes the group delay estimate in the header of each S-parameter data block; furthermore, the phase provided in the file needs to be adjusted to remove the linear contribution associated with the group delay estimate. The previous section describes how this type of file can be generated when using FDTD or EME for the S-parameter extraction. For more information on the group delay option see the discussion here.

Additional resources

KB page: S-parameter simulator (SPS)

KB page: S-parameter matrix sweep feature in KB

KB page: S-parameter file formats

Copyright Lumerical Inc. | Privacy | Site Map