# Question about improving group delay dispersion calculation in Lumerical

Hi all,

I have a question regarding the calculation of group delay dispersion (GDD) using a mode source and a mode expansion monitor.

Our simulation setup is as follows: we have a simple ridge (straight) waveguide surrounded by a lower refractive index material. The waveguide material is dispersive (user-defined). We inject a mode source (fundamental TM mode) and then use a mode expansion monitor at a different position in the waveguide, where we extract the acquired unwrapped phase (through the Angle() command) of the complex transmission coefficient. To get the GDD, we compute the second derivative of the phase (simply taking the difference of the phase between neighbor frequency points -> we use a frequency-dependent broadband mode source with more than 100 frequency points).

We have a reference COMSOL 2D eigenmode simulation, and when calculating the GDD in "transmission", so placing the mode expansion monitor a certain distance in front of the mode source, we can nicely reproduce the reference result. Here, the waveguide length extends beyond the boundaries ("infinite" waveguide).

We are also interested in "reflection", where the waveguide is now terminated a certain distance in front of the mode source (waveguide facet), and a part of the light is reflected back into the waveguide. When we compute the GDD using the phase in the mode expansion monitor (now in the backwards direction), the resulting GDD follows the general trend of the reference result, but is very noisy (oscillations).

See the attached plot for a comparison. We suspect that in reflection, there is some numerical noise/artifacts in the phase, giving rise to the large oscillations. Our question is how we should modify the simulation settings (for example monitor size/position, auto shutoff level, boundary conditions, ? , ...) to improve the phase in reflection? Could it be there is some numerical artifacts coming from the interaction between the injected mode source, the transmitted/reflected light or something close to the boundaries?

Thank you very much for any hints/help and have a nice day!

## Answers

1,654Ansys EmployeeLumerical has a simple, direct method to calculate the group delay dispersion in MODE--FDE, please use FDE and sweep the frequency to get the correct result.

MODE - Finite Difference Eigenmode (FDE) solver introduction

frequencysweep - Script command

Solver Physics - Overlap and Frequency Sweep - Overlap and Power Coupling video

Analyzing Simulation Results - Analysis Tabs - Frequency analysis tab video

If you do not have MODE, and really want to use transmission coefficient to get it, please refer this example

https://support.lumerical.com/hc/en-us/articles/360042800113-Group-delay-analysis

however, the result will depend on several different factors:

1: frequency intervals: too large and too small are not good, since now you use difference to replace the derivative

2: numerical dispersion from FDTD

3: source injection error, PML reflection

so you will need fine-tune the settings, such as mesh accuracy, PML thickness (when mesh is finer you will need more number of layers).

I strongly recommend that you use MODE-FDE, even a trial version can help.

3MemberHello,

thank you for the quick reply and links.

I am aware of the MODE solver (and have been using it in the past), but if I'm not mistaken, that is only useful for computing the GDD of the 2D cross section of a device (which does not change along its length - true for the example I showed, but this is just a benchmark simulation for us).

We want to design more complex waveguide structures with a non-uniform geometry to induce a certain designed group delay dispersion (e.g., GTI, double chirped mirrors, etc.), and for this we indeed need to simulate the mode propagation (also in reflection), either in 3D or 2.5D.

Thank you for the provided link with the ring resonator, I have gone through that example before. If there are some more specific/in-depth guidelines regarding the advanced simulation settings, I would be happy to follow them. We had started modifying several simulation settings (mesh size and order, number of frequency steps, monitor position and size, distance to boundary etc.) but no improvement so far. My intuition is that in the reflection case, there is some interference in the mode expansion port with numerical artifacts (either from back-reflection or from the PML boundary) resulting in a noisy phase (as opposed to transmission which gives the expected result). Maybe we should also implement a different scheme for the derivative calculation instead of discrete differences - probably in the MODE solver some interpolation/fitting is done before computing the gradients?

3MemberI forgot to mention that we have also implemented a group delay dispersion calculation using a time monitor and the Fourier transform to extract the phase and GDD, as in the example (which also works nicely in transmission). However, we are usually working with multi-mode waveguides and would like to the extract the GDD for a specific waveguide mode in reflection - would this also be possible with time monitors as in the example? We switched to mode expansion monitors since they already give the modal decomposition for the complex transmission coefficients...

1,654Ansys EmployeeTime monitor records the signal from all the fields, which is good for your case.

If it is a cross-section changing waveguide, the FDE is not good at it. If it is piecewise and not continuously changing it is possible to use FDE. But you will need to develop a method to combine them.

You could fit the result then to get the delay parameter, since you know the fitting coefficient is the desired result.

To test if your script/method works for complicated device, it is better to test a straight waveguide without reflection.

When there is end facet, you would also use the power monitor in between the source and facet to reduce the source effect. But you will need to modify the result since now it gives you 1+r result but you only want the phase from Fresnel's field reflection coefficient.

When there is no ready-to-use example users will need to spend more time to validate the model and the script. Keep trying and let me know if you have questions.