How to sweep over the MMI length in a 2x2 MMI splitter



Hi @bkhanaliloo,

I am designing a 2x2 MMI splitter and I am using the scripts to define the whole device structure, FDTD region and to obtain the transmission “T”. The whole device structure consists of a MMI core, with tapers on both sides followed by the waveguides.
Within the script, when I change the length of the MMI core, the whole device structure along with the defined FDTD region extends or reduces (based on increasing or decreasing the MMI core length) and thus the the out put transmission “T” values also changes. This verifies that the scripts are working fine.
But when I run the sweep script, and in that script when I sweep the parameter (length of MMI), then only the MMI core changes and NOT the whole device structure. This should NOT be the case.
Can you please help me with this ? I can also share my scripts if you want ?

Thanks a lot.
Saurabh Bedi.

Extracting s-parameteres for a Directional Coupler and import in Interconnect

Hi @sbedi

Are you using the script under the model or within analysis group? and how you sweep over the length of core region? If the simulation is parametrized, then changing a parameter can modify the core length and simulation span, however, if you are selecting only the core length in the sweep object then simulation span might not get updated.

Please upload your simulation file for a review if this did not solve the problem.


Hi @bkhanaliloo, Thanks for your comments. I have few things for you to assist me with.

  1. I am using the script in the “script editor section” and not in the model nor analysis group. I am attaching my simulation file. please look into it and help me out. MMI_Sweep_Test.lms (279.7 KB)
    Is it better to use the script under Model OR Analysis section rather than using it in “script file editor” section in terms of obtaining the results out of parameter sweeps? Please guide me how to use script in Model OR Analysis section?

  2. While using EME solver for designing MMI with different power splitting ratio, if we increase the length of one of the output waveguide as compared to the other one such that ‘port 2’ of EME solver is bisected by only one waveguide. Then does that mean, that abs(s21)^2 gives the normalized power intensity coming out of only one waveguide ? Since, in example at Lumerical website under the EME solver examples, the output intensity obtained is from both the output waveguides.
    In other words, will it be true to say that if one waveguide reaches the port of EME, then the power obtained is from that output waveguide only and the second output waveguide doesn’t contribute in anyway? For instance, I am designing MMI with power splitting ratio of 95/5 and I am getting 0.95 Transmission [abs(s21)^2] at output then that 0.95 is only from one waveguide?

  3. I can see in the Lumerical KX, there is an option to run frequency sweep in EME analysis window in MODE:
    but when I add an EME solver, I couldn’t find it. Please guide me how to add the Frequency sweep option in EME solver.

Thanks a lot.


Hi @sbedi

  1. The file that you attached only includes the geometry. Can you please check and make sure that you have attached the correct simulation file?
    If you are using script to set the simulation file and your geometry is not parametrized, then changing the length of the waveguide in the sweep object will not impact other simulation objects. Thus, I will recommend you to set the simulation from Model or analysis groups.

  2. I think that is correct. That’s being said, I will need to see the simulation file to check and make sure simulation settings are correct.

  3. This feature is added recently. Make sure that your software is up to date. Please visit the link below for more details:
    New fast broadband EME feature


Hi @bkhanaliloo,

I have formed the structure group by defining script in the script section of structure group and defining all the parameters in the parameters section of the structure group. Please guide me whether I need to use the same script in the “Model: Setup: Script” section ?
I am attaching a new file and the scripts along with it which I have used. materials script to define the all the materials, varFDTD_MMI to define the simulation region, varFDTD to call the already defined simulation region in structure group and sweep_script to run the script.
Please have a look.

MMI_StructureGroup_Script.lms (430.4 KB)
varFDTD.lsf (2.0 KB)
varFDTD_MMI.lsf (2.6 KB)
materials.lsf (2.7 KB)
sweep_script.lsf (982 Bytes)


Hello @sbedi

I think you are on the right track. The problem right now is that you try to set the length of MMI (Lmmi) from MMI structure group in the sweep object. A same parameter, however, is also defined in the “model” and overrides any changes in the MMI structure group. This means that you re not essentially doing any sweep over the MMI length. If you chose the Lmmi from “model” in the sweep, you will be able to sweep the MMI length but varFDTD simulation region will not get updated and you will face a problem like below:


To fix the problem, the best approach would be to set the entire simulation objects directly in “model” where the length of varFDTD simulation region also gets updated with MMI length.

We have used EME to simulate a 1\( \times \)2 MMI coupler. Since a sweep over MMI length can be done directly from EME analysis tab, we have parametrized only MMI. However, for varFDTD simulations you will need to parametrize the simulation region as well.

Hope this was helpful.

Error in FDTD: File could not be found

Thanks. It worked @bkhanaliloo !!
Also, please suggest me whether EME solver will be a good option to simulate a MMI with the core having different geometry (not rectangular) ? something like this:

For the tapers its conventional to use CVCS subcell method in EME (as there is a linear change in the propagation direction) but can we use it for this sort of structure ?



Hi @sbedi

I think you can still use one group span with CVCS option for the entire geometry. As a sanity check, you can then divide the core section to 4 cell groups and compare the results. If they were different please share the simulation files for a review.