How to simulate the phase shift of the device>


Hi, I’m trying to simulate the phase shift of 2*4 MMI (220nm thickness MMI as below).

I’m using the angle of EME to calculate it. It is a 6-port device with 2 inputs and 4 outputs.At the outputs it provides a linear combination of the two input fields, with a phase shift relative to one of the fields of pi/2, pi and 3/2pi as the picture below.

While my result is strange. Is it the right way to simulate it? If not, what is the proper way?
Thank you!

hybrid.lms (344.2 KB)



Before we dig into the results for phase, I would like to make sure you have the simulation set up properly. One obvious thing is that you did not have Buried oxide layer, and the taper regions in the input and output are also missing. I guess that you may be simulating your own device but I will encourage you to reproduce the results with the exact setup as reported in the publication. Please also let us know the name of the publication so that we can take a closer look at it.

Regarding your simulation file, there are a few things that I have edited.

  • output port size - your output modes are truncated so I have increase the span of the port

  • Mesh size- mesh configuration now is more reasonable as to resolve the port and gaps

  • EME region spans - I have increase the EME region span to make sure the evanescence field are not unphysically truncated by the boundary condition (if there is any)

  • no. of modes for expansion - I notice that there are significant amount of loss at the second last interface. This indicates that you did not have enough no. of modes for the EME calculation. This will surely affect the transmission results but I am not sure how important it is for the phase. You can find more information about EME diagnostic here.

I think this simulation file hybrid_edited.lms (342.2 KB)
is more reasonable and you can give it a try again. However, like I said, I will encourage you to reproduce the the setup that you are quoting in the original post. As far as the phase goes, we can discuss that later once we are confident with the simulation setup. Please also define how the phase is calculated in your plots.


Thank you very much for your excellent reply!

The publication is <C-Band Optical 90 Hybrids in Silicon Nanowaveguide Technology>,IEEE PHOTONICS TECHNOLOGY LETTERS, VOL. 23, NO. 23, DECEMBER 1, 2011.

Missing the taper of input and output is to simplify the simulation. I’ve ran the modified file twice for only input port 1 in and input port 3 in, and exported the angle data of four outputs.

  1. Rectangle in1 enable and rectangle in3 disable. Run the file. Export the data angle of S21,S31,S41 and S51 for four outputs(set them as Ai1o1,Ai1o2,Ai1o3 and Ai1o4).

  2. Rectangle in3 enable and rectangle in1 disable. Run the file. Export the data angle of S21,S31,S41 and S51 for four outputs (set them as Ai3o1,Ai3o2,Ai3o3 and Ai3o4).

  3. Data calculation:
    Phase shift of four ports: p1=Ai3o1-Ai1o1, p2=Ai3o2-Ai1o2, p3=Ai3o3-Ai1o3, p4=Ai3o4-Ai1o4
    Phase shift with reference at output 1: phase21=p2-p1, phase31=p3-p1, phase41=p4-p1.

The following plot is about phase21, phase31, and phase41, while phase21 , phase31, and phase41 should be 3/2pi, pi and 1/2pi. How should I modify the file?

The attachment is the calculated phase21,phase31 and phase41.phaseshift.dat (22.3 KB)

  1. based on the information for the publication you provided, the search result I got is “Simplified Design of Multiport Optical Circulator With Parallel Connection of Mirror-Image Arranged Spatial- and Polarization-Modules”, by J Chen et al. Is this the title of the paper you are talking about? However, I cannot see anything obvious that is related to the plots you are showing here. Can you tell me the full title of the paper and the name of the author?

  2. The taper may be necessary to include in the device in order to produce some comparable results. Also, as I pointed out in my last reply, the buried oxide is also missing in your simulation file. Can you configure the simulation such that it is the same as what is drawn in the publication?

  3. For the phase calculation? Can you post a script file that you used to generate the plots so that I can reproduce exactly what you have done in order to avoid confusion.

So far, the information you provided is not sufficient for me make some conclusion. I am happy to take a look at your files again once you’ve the above points clarified.


Hi, thank you very much for your reply!

  1. The title of the publication is “C-Band Optical 90 Hybrids in Silicon Nanowaveguide Technology”, authors are “Karsten Voigt, Lars Zimmermann, Georg Winzer, Hui Tian, Bernd Tillack, and Klaus Petermann, Fellow, IEEE”.

  2. The buried oxide layer is already included. It has been set as “substrate”( because the oxide layer is 2um, to simplify the object, oxide layer is been used as substrate here). Taper has been added to the attached file.

  3. Script has been used to export angle data. And a matlab file has been used to calculated phase shift as the attached file.

Thank you very much!
phaseshift.m (1.0 KB)
run.lsf (1.3 KB)
hybrid_v2.lms (356.4 KB)



I only have a chance to take a quick look at your file today. There are some obvious points that I would like to point out. In the EME setup tab, some of the settings you had are wrong. Especially the cells, and the subcell method. The screenshot below should be a better way to define the cells. Also, I notice that you choose some mesh refinement options other than the default “conformal variant 1”. If there is no particular reason, I would suggest you stick with the default setting.

I also notice that your waveguide size is slight different from what is reported in the paper, eg Wr, Wmmi. You also aware that you are missing the si substrate. I am not sure how important these parameters are in order to reproduce the results. But on the safer side, it is best to use the exact some structure for the best chance to succeed.

I did not have time to run the full test for you today, and I am on vacation tomorrow. I will encourage you to try itagain with my suggestions here. I will spend some time on your files again next week.


Sorry for the long wait. It has been a very busy week for us. I edited your file and it should be more reasonable for now.hybrid_v2.lms (503.6 KB)

As far as the phase goes, I had some trouble in relating your calculation to what is reported in the paper. However, I think it is just a post-processing step on the phase. My approach here is to make sure your file is set up reasonably. Then you can try to do the post-processing you wanted. From the script files you attached in your last post, it looks like you are aware of the way to extract S, and the phase.

However, before you spend a lot of time in the phase calculation, I would also suggest you to reproduce Fig 2 in the paper. In should require less post-processing to obtain the loss plot. It can be another way to make sure the simulation is set up correctly.

As I said in my last post, I noticed that you might have used some slightly different parameters in the device. In any case, it is best to use the same parameters that is reported to reproduce the results.

This example in the KB should also be helping, if you would like to have another reference for a similar setup.


Thank you very much for your reply!

In your V2 file, you set the taper part( the EME cell 2 and 4) “CVCS” as the example attached.
While EME cell 2 and cell 4 are acting as spot size converter here. If they are longer than certain length, the loss could be very small (as the example below and my SSC result also shown). For the length over than 10um, the efficiency is over than 99%.

So I’m wondering if it is suitable to use “CVCS” for cell 2 and 4 here. So I used “CVCS” for cell 3 in my hybrid_v2 files, and set the length of cell 3 from 0 to 400um in my former script as below:

setemeanalysis(“parameter”,“group span 3”);
setemeanalysis(“number of points”,401);

In the paper, it is said the cell 3 length 186um turns to be the best for both loss and phase. Maybe we could get best result for 186um from emeanalysis data as my V2 file.


Yes since it is a taper region. CVCS is good for a cross-section varying region, like taper. This example also has some demonstration when to use CVCS subcell method. In your case, for group 1,3,5, the cross section is constant in those regions. Therefore, “none” subcell method is used there.

Yup, it is possible for emesweep to do that. In fact, it is going to be a good test for your file to make sure it is set up correctly.

If you run into trouble, please let us know.


Hi, thank you very much for your reply!

I’ve set group 2,3,4 to “CVCS”, and use script to scan the length of group 3 from 0 to 400um(801 points).
I’ve modified angle and phase in my “phaseshiftV2.m” files as below:

angle21 = p2-p1;
angle31 = p3-p1;
angle41 = p4-p1;  
phase21 = rem(angle21, pi*2)/pi;
phase31 = rem(angle31, pi*2)/pi;
phase41 = rem(angle41, pi*2)/pi;

Around 186um, the data as below(result data file is “hybridphase”) :

Around 186um, the data is -1.49pi, -0.61pi and 0.98pi. In the paper, the data is 1.5pi, 0.5pi and pi.
May I calculate phase shift that way?
Thank you!
hybridphase.txt (29.6 KB)
runV2.lsf (1.3 KB)
phaseshiftV2.m (1.0 KB)
hybrid_v3.lms (519.9 KB)


The simulation setup seems reasonable, except the subcell method in group 3. Group 3 has only 1 cell and uniform cross section all the way so it should just need the “none” option. You will only need CVCS for continuous varying structure, like the taper regions in group 2 and 4.

The phase shifts seems like matching to what is reported in the paper, although you might want to figure out the minus sign. I did not look into the calculation details, but it seems reasonable other than that.


Thank you very much!