Calculating modes of single inclusions

From CUDOS
Jump to: navigation, search

Preamble and Warning

The CMU are designed for calculating modes of fibres with several inclusions (holes or rods, coated or not); it can also, to some extent, be used to calculate modes of single inclusions, eg step index fibres, coated or not. However, the mathematical formulation to do this is slightly different, and the CMU are not optimized for this - truth is, the implementation to solve modes of single inclusions in the CMU is numerically ill-formulated. In many cases it might be more appropriate to implement the modal equations directly eg in mathematica or matlab. If you wish to use the CMU for a single inclusions, here are a few comments and recommendations:


  • Use fibre version 2.0.3.21 or later
  • The bfld test for genuine modes doesn't work at all, and should be ignored.
  • A few threshold parameters need to be different from usual situations, and the implementation of the geometry can make things easier or not, see comments below.
  • Beware of Wijngaard tests with true transverse TE or TM modes, in that case only one of the two E or H wijngaard tests is meaningful (the other results in a division by almost zero).

Defining the structure

The single inclusion should be placed at the origin, and C_infinty_v symmetry used.

The 'order' parameter of the inclusion should be set to the same value as 'gorder', and should correspond to the azimuthal order of the highest order mode one is looking for. In c_infinity_v, mode class numbers correspond to the azimuthal order of the mode. As a consequence one should use

start mode=0
stop mode='value of order'

Modes of order 0 will be TE and TM modes (and associated file names will have C00 in their name), modes of higher azimuthal order will be HE/EH modes.


When looking for modes of layered inclusions, there are several ways of implementing a geometry:

  1. using a coated inclusion, with no cladding, no jacket - this works and gives accurate values of neff, but field accuracies are not good, as demonstrate by average Wijngaard test values. Much more accurate fields are obtained through method 2 below.
  2. Using an uncoated inclusion or air, with a different matrix, cladding and jacket materials (more accurate fields).
  3. Using 'layered' inclusions, with or without cladding/jacket etc - again provides accurate neff values, but fields inside the layered inclusion are not calculated.
  4. either of the three above using 'c' representation, or 'b' representation.

All four are mathematically equivalent, but numerically different, and depending on the version some combinations are not implemented. Which combination of the above is best depends on on the structure and the field (in particular where the fields are, whether they're mostly in the cladding, the matrix or the inclusion). Generally speaking, it is best to avoid using coated/layered inclusions (but rather use a matrix and cladding when necessary) and to use 'b' representations. One should then use the wijngaard test at the cladding interface as well.

Threshold parameters

The effective index calculated for single inclusion should reach close to machine precision, and recommended threshold parameters are

accuracy goal=3d-14
acceptable accuracy=1d-13
eigenvalue threshold=1


For a structure with a single inclusion, typically one is looking for truly guided, lossless modes. All solutions are then on the real axis of neff, so a purely real neff region is typically used. In that case it is recommended to use the maximum possible number of points along the real axis:

num_n_points=10000

Alternatively, one can define a complex effective index window (as one would do to look for leaky modes) and use num_n_points in the hundreds - looking for solutions in the complex neff plane is numerically easier than only on the real axis, so in some cases this might be faster (and will find Im(neff)=0 for non-leaky modes as it should).

Analyzing results

  • fields for mdoes calculated with accuracy threshold larger than 1e-13 are usually meaningless.
  • Spurious modes can appear - always check the fields and Wijngaard tests.
  • The bfld test for genuine modes doesn't work at all, and should be ignored.
  • Beware of Wijngaard tests with true transverse TE or TM modes, in that case only one of the two E or H Wijngaard tests is meaningful (the other results in a division by almost zero).
  • Unfortunately the fields are the least reliable result - the value of neff is much more accurate. In many cases modes that are found with fibre are genuine, with very accurate values for neff, but the retrieved fields are approximate, with poor wijngaard tests. There not much that can be done with the CMU in these cases, it might be best to implement the eigenvalue equations directly in mathematica (in many such pathological cases arbitrary precision is required to get accurate fields) or in matlab.
  • Winfield will determine whether a mode is TE, TM HE or EH, and thisinformation will also be in the *mode_table.txt file. The denomination used is accurate for single step index fibres, for any other geometry the nomenclature may not be appropriate.

mode_table.txt file

For c_infinity_v structures, the *mode_table.txt has 7 columns, with a line for each mode found resembling

TE 000 001 ( 1.16458633279E+00, 0.00000000000E+00)  3.23616495092E-17  7.83797590430E-03,
  • The first column contains TE/TM/HE or EH and indicates the type of mode (accurate only for step index fibres).
  • Second column is the azimuthal order or the mode
  • Third column is an arbitrary mode identifier, and does not represent the radial number.
  • 4th and 5th column are the real and imaginary aprt of neff.
  • 6th and 7th column are the magnitude of the two smallest eigenvalues of the modal equation.

Degeneracy

Modes of azimuthal order 1 and higher are degenerate. Only one of the degenerate pair of modes is written to a bcf file and logged in the mode_table.bcf file.

Example files

Singleinclusionexample.zip in the example repository contains and example on how to use the CMU for calculating modes of a single rod of silica in air. It uses macros and C_infinity_v symmetry.