Algorithm to calculate dispersion and effective index in mode solution


I like to know, how Mode solution calculate the group velocity dispersion? Is it a fit? What is the algorithm to do it?
I also like to know, what is the algorithm in Mode solution to calculate “effective index”.



Hi @mborhan.mia

FDE uses Maxwell’s equations to solve the eigenvalue problem for a given geometry and boundary condition at a specific frequency/wavelength. Details of the work can be found in the link below:


After solving the equations, the effective index can be calculated from \(n_{eff}=c_0\beta/\omega\).

To calculate the group index or dispersion, you need to enable “detailed dispersion calculation” in the Frequency analysis tab. Solver then will shift \(\omega = \omega+\delta\omega\) and will calculate new \(\beta\) values to calculate \(d\omega/d\beta\).

The link below might be useful to view as well:
Group Velocity Dispersion Calculation in MODE Solutions

For the completeness of this thread, you can also calculate the phase and group velocity from field vectors (from “Optical Waveguide Theory” by Allan Synder and John Love, page 230, table 11-1):

\(v_p = \omega/\beta=\frac{1}{\mu_0}\frac{\int n^2|E|^2dA}{\int n^2E\times H^*\cdot\hat{z}dA}\)

\(v_g = d\omega/d\beta=\frac{1}{\epsilon_0}\frac{\int E\times H^*\cdot\hat{z}dA}{\int n^2|E|^2dA}\)

Where integrals are calculated over the entire simulation region.


Thanks @bkhanaliloo.
It does make sense.

1 Like

can you please explain how to calculate group velocity dispersion for SOI.


Hi @kishor.phy

Group velocity dispersion (GVD) and dispersion (\(D_\lambda\)) are related as is explained in the link below:

\( GVD = \frac{\partial}{\partial\omega}(\frac{1}{v_g}) = \frac{\partial}{\partial\omega}(\frac{\partial K}{\partial\omega}) = \frac{\partial^2 K}{\partial\omega^2} \)

\(D_\lambda = -\frac{2\pi c}{\lambda^2}\times GVD \)

The links below might be useful to review as well:

In Lumerical, you can create waveguide geometry in MODE and use FDE to calculate the supported modes. Then from Frequency analysis tab, calculate the dispersion:

Once you have dispersion plot, you can calculate group velocity dispersion.

Group Velocity Dispersion Calculation in MODE Solutions

Thanks, @bkhanaliloo. I agree with your kind suggestions but my question is that after getting the dispersion plot how will I get the GVD plot, there is no GVD option in plot section. Can you please explain the next step for the GVD calculation/plot.


Hi @kishor.phy

The results can be found under frequenctsweep:

Here is a sample script to extract dispersion data:

dispersion = getresult('FDE::data::frequencysweep','D sweep');
lambda = dispersion.lambda;
disp = dispersion.getattribute('D sweep');
GVD = - lambda^2/(2*pi*c)*disp;

Thank you so much.


how do you export text file of graph in mode simulation.


is there any supporting book for Lumerical to get better understanding in Mode or FDTD solver.or any study materials.


Hi @kishor.phy

Please visit the link below to learn how to export a text file:

We have online documentation like KB, EDU (free online courses), and KX. Please see the link below: