Extract S-parameters for a polarization spilitter rotator


I have a polarization splitter rotator in FDTD and I am going to extract S-parameters by “Ports” and then test it in Interconnect.
Before using ports, FDTD needs these:
Initialization and mesh: 5.282 GB
Running simulation: 3.176 GB
Data collection: 1.071 GB
Monitor data saved to fsp file: 534 MB

but the problem is that when I add Ports, the memory that is needed jumps into these:
Initialization and mesh: 258.247 GB
Running simulation: 142.985 GB
Data collection: 27.723 GB
Monitor data saved to fsp file: 13.835 GB

Am I making a mistake? or it is normal?
Is there any other way to extract S-parameters?

Here is my FDTD file: (My device is 500 micron long)

Best Regards,

I am downloading your file but in general 500 um is too long to be simulated on 3D FDTD. It is expected to have memory and simulation time problems. In such cases, we resort to EME or 2D FDTD. I will check your structure and get back

1 Like


I think the main cause of the jump in memory requirements is because the port objects use the wavelength range specified in the global source settings which has a minimum wavelength of 0.4 um. This is smaller than the wavelength of the mode source that you have set up which has a minimum wavelength of about 1.33 um. Because of the smaller wavelength that will be injected by the ports, a finer simulation mesh is generated automatically, and the finer mesh increases the memory requirements.

To set the wavelength range of the ports to use the desired wavelength range matching your mode source, you can expand the FDTD solver group in the Objects Tree and edit the “ports” group where there is a “set global source settings” button that you can click on. Once this is set you should see the memory requirements go down.

If you have any trouble with it, please let me know!

1 Like

I considered what @nlui said. I actually disabled the mode source since we already have port1 marked as the input. I adjusted the global source settings to be centered around 1550 nm. This relaxed the mesh calculated by FDTD as expected.
For a quick check, I disabled all monitors and ran a 2D simulation which gave the result below. I also added a time monitor at the end of the structure to check the simulation time is sufficient. PSR_4_TM_SP_01_2D.fsp (782.4 KB)
PSR_4_TM_SP_01_3D.fsp (1.2 MB)

It took like 20 mins on my laptop. This is quite long for 2D simulation but the structure is 500 um long.
I attached the 3D version file for you to try it. Let me know if you still get the same problem.

Hope this helps!


Your answer is exactly what I was looking for. Now the memory requirements is the same as before.
Thank you so much

1 Like

Thank you so much for your help and thanks for modifying my file. I only used 3D simulation and it takes almost 6 hours on my computer! I did not consider 2D simulation. Is there any problem if I use 2D simulation for extracting s-parameters?


You can use 2D to validate your design idea but not for picking accurate dimensions because the n_eff of the 2D waveguide is not the real case. You can also use the 2.5D for better estimation and quick simulations.

There is the EME method too but it is not suitable for your case because you have many tapering and adiabatic changes in the cross section of your splitter.

In the end, you should always run 3D FDTD before finalizing your design.

Hope this is helpful.



I run my simulation which takes almost 7 hours(It is Ok). Then I run the s-parameters sweep to reach a 6*6 matrix and it takes around 24 hours! Is it normal? Is there any way to make it faster?
Anyway, Thanks for your help I could extract s-parameters however the results are not like what I was expected. The loss is too much and I can not understand why…