Ring Resonator - Ripples in Frequency Response




I am simulating a silicon nitride ring resonator with a radius of ~10 microns coupled to two optical waveguides (the same as the one of the examples of the FDTD solver, but with different dimensions and material). First, I tried 3-D simulation, but when I looked at the transmission or coupling frequency response, I saw so many ripples. Therefore, I tried 2-D FDTD for a quick estimation. However, still the ripples exist. I even tried to make simulation parameters more accurate (like FDTD time around 20000 fs, extra mesh in the gap region, increasing mesh accuracy (5-6) and mesh type (conformal variant 2)), but I still see the ripples and even the fluctuations become more severe.

My question is that is this phenomenon an intrinsic feature of the time-domain solver (because I don’t see the same problem with FEM solvers), or can I address this problem?

I appreciate any comment or response. Thank you in advance.

Tooth-shaped plasmonic waveguide filters using FDTD
Ripples in two port Ring Resonator transmittance


There could be more than one possible reasons why transmission results have ripples. One common reason is due to not enough simulation time and that causes ripples when data is fft to the frequency domain. It looks like you have already tried to increase the simulation time. I would suggest trying to place a point time monitor near the frequency monitor you took the transmission. When the simulation finishes, you can get to see if the signal has decayed to a reasonable level. You will probably want to further increase the simulation if you think this is not long enough.

Trying to run a 2D FDTD simulation is not a bad idea just to quickly estimate the scale for the simulation time you would need. If you have a MODE Solutions license, I think you could also try running a varFDTD simulation which will be as fast as a 2D simulation while returning some results comparable to a 3D simulation.

If the problem is not improved, and you dont mind uploading your simulation file here, I am happy to take a look at it.



Thank you very much for your reply.

I inserted a time-domain monitor in the Transmission Port. It seems that the 20,000 fs is much more than enough. But, I still see the ripples. Perhaps, the ripples are not because of the simulation time.

I didn’t use varFDTD, because I haven’t work with that so far. But, I will try it also to see if it solves the problem.

I have attached my files. There are two scripts and one FDTD file. I would be grateful if you could have a look at it. Please first run the “RingResonator_Params” script, then the “RingResonator” script. (I have included parameters of the simulation in the former, and commands for constructing the simulation in the latter.) Then, please run the FDTD file.

Thank you again for your help.

RingResonator_Params.lsf (328 Bytes)
RingResonator.lsf (3.7 KB)
ring_resonator.fsp (311.9 KB)

How to eliminate the fluctuations on the transmission spectrum and make the curve become more smooth?
Using dipole to mimic quantum dot emission


I ran your simulation and increased the simulation time by a factor of 10. It looks like the ripples are reduced, see the red curve. Note: I am using mesh accuracy 2 at this point for a faster debugging process. The simulation time now is large enough to reach 10e-5 auto shutoff level.

ring_resonator_mod.fsp (287.8 KB)

Side note, I think the y spans of the source and field monitor can be increased to make sure the mode injected and fields recorded are not truncated.


I recently learned a new trick. I use monitor END apodization. This is an option in the properties of the frequency domain monitor. It forces the signal at the end of the simulation time to decay faster than it would have. So, of course you will still need your simulation time to be large enough but you will get result with almost no ripples at all.
For further info on Apodization, refer to: https://kb.lumerical.com/en/ref_sim_obj_apodization.html


Just some comments on this trick: Although this might help reduce some ripples, it will disregard the signal near the “END” depending on the apodization window. It should be able to return the peak positions but the transmission will become questionable since the signal is not fully decayed yet. I guess it is okay to apply the apodization to obtain some initial results. For more accurate results, careful convergence testing will be required.