Calculating dispersion of higher order modes

From CUDOS
Jump to: navigation, search

This page describes how to calculate dispersion curves for an arbitrary mode. The method outlined here is the preferred method for all dispersion calculations, including for the fundamental mode.

First method

To calculate the dispersion of higher order modes:

  1. Find the modes at one wavelength lambda_1 using search modes
  2. identify the bcf file of the mode you want to get the dispersion for
  3. run a new simulation to find the dispersion of that mode by loading this mode using
load bcf file=

An example of a parameter file for this would be


load bcf file=mymode_C03M0001.bcf
start lambda=lambda
stop lambda=2.0
start n_width=(1e-4,10) 
number of steps=200 
number of steps between log=20 
accuracy goal=1d-13
acceptable accuracy=1d-13
minima_threshold=1d40
dispersion

Look up the different keywords in the user's guide and on the CMU wiki if you are not familiar with them.

Alternative method

You can also find the modes at two close wavelengths (less than 0.1nm apart) and then use load bcf file twice:

load bcf file=modeat1550nm.bcf
load bcf file=modeat15501nm.bcf

This will avoid all mode jumping when calculating modes for the second wavelength step.

Warning/Troubleshooting

Degenerate modes

When calculating dispersion of modes part of a degenerate class of symmetry (e.g. modes in class 3 and 4 in C6v), only one of the two degenerate modes will be calculated, and this must be the one of the lowest class.

For example if you want to calculate the dispersion curve of a class 3 or 4 mode, you must use load bcf file with the name of the file corresponding to the mode of class 3, not 4. In such a situation running a dispersion calculation after loading a class 4 mode would simply exit the software without any dispersion being calculated.

Accuracy

For all dispersion calculation using the new version of the software, accuracy goal must be set to as small a value as possible, typically 3e-14 or 1e-13, or for very large structures up to 1e-11.

Low loss

There can be problems (typically the dispersion calculation slows down considerably or stops with a message that the Broyden algorithm was insufficient" when losses are very low (Im(neff)<1e-11). See Dispersion - Dealing with very low loss.