Output files

From CUDOS
Jump to: navigation, search

Understanding file names

Apart from the errors.txt and progress.txt files described below, all output file names have names structured the same way: File names start with a file name radix that can be defined using the keyword file name radix=, or if not defined will be the name of the structure file used.

After the file name radix comes the file suffix which can be defined in the parameter file using the file suffix=keyword, and is useful to distinguish output files from different simulations within the same directory using the same structure file.

After the file name radix and suffix come a number of suffixes depending on what type of simulation and and the type of file. Common parts of the name are

  • CXX (with XX being a integer, eg C00, C01 etc): this refer to the class of symmetry;
  • MXXX (with XXX being a integer, eg M001 etc): this is a number distinguishing different mdoes with the same class of symmetry.
  • d0 or d1 used in simulations with no symmetries to distinguish between degenerate modes
  • LXXXXXX (with XXXXXX being a integer, eg L000001 etc): distinguishes file obtained for different wavelength (disperison calculation), set of parameters (scattering simulations) or geometrical parameter (when tracking with variable geometric parameters).


Files common to all simulations

errors.txt
contains a log of all comments, warning and errors which may have occurred during the simulation. If something goes wrong, this is the first file to look at.
progress.txt

Contains information on the progress of a simulation, how much depends on the verbose level. By default (verbose=.false.), it will only contain the number of points computed along the real axis during a scan of effective indices. If verbose=.true. a lot more information is written, which can slow down simulations. The name of this file can be redefined by using the verbose file= command. If verbose file=CON is used, the output is written to the terminal console.

*_results.txt
This file summarizes information on the structure and all parameters used during a simulation, and provides information on results. The exact amount of information depends on whether the simulation is for finding modes, dispersion or scattering.
*.bcf and *.fbb
These files contain the Fourier Bessel coefficients of a mode or scattering simulation. A bcf file is in text mode and can be read with any text editor; it can be opened with Winfield to calculate fields only if the structure file that was used to calculate the mode is in the same folder. In contrast, *.fbb files are binary (and cannot be read by a text editor) but stand alone files: they contain the full set of Fourier Bessel coefficients in full accuracy, along with the full information of the structure. *.bcf files can be opened by Fibre to serve as a starting point to calculate modal disperison, but fbb files cannot. Batchfield can add precalculated fields to *.fbb files (so that opening them in winfield is much faster), however, this increases the file size considerably.

Output files when searching modes

*_mode_table.dat
This file contains a table with information of all calculated modes. If C_infinity_v is used, the file will look like this:
TM 000 002 ( 1.56707854811E+00, 0.00000000000E+00)  6.02486347076E-17  4.43361632600E-07,
EH 001 004 ( 1.56678691298E+00, 0.00000000000E+00)  4.50958362314E-20  6.96671886458E-07,1
EH 001 004 ( 1.56678691298E+00, 0.00000000000E+00)  4.50958362314E-20  6.96671886458E-07,2
HE 001 005 ( 1.57728963617E+00, 0.00000000000E+00)  7.08805252328E-18  1.05357377586E-07,1
HE 001 005 ( 1.57728963617E+00, 0.00000000000E+00)  7.08805252328E-18  1.05357377586E-07,2

The first column contains the type of mode (TE/TM/HE/EH), the second column the azimuthal index (0 for TE/TM, or l for EH/HEl,m), the third column is an ordinal number for this mode (an integer with no intrinsic meaning) which will also be used in the bcf and fbb file names (*_C0lMp.bcf). The two columns between brackets are the real and imaginary parts of the effective index of the mode. The two columns afer that are the smallest and second smallest eigenvalues for that mode (this information is not very meaningful unless you are interested in the details of the multipole method). The last number (1 or 2) only appears for HE and EH modes, which are degenerate pairs: each mode is repeated on two lines, once with the last number being 1 and once with 2, to remind that this mode is in fact a degenerate pair. Only one of the mode pair is written as a bcf/fbb file.

If no lower symmetries are used, the file will look like this:

001 001 ( 1.41666142127E+00, 6.75213125800E-04)  1.11587153606E-13  4.12076596557E-01,1
001 003 ( 1.43836493476E+00, 1.41646850213E-06)  1.55704646164E-13  7.91619657098E-01,1
002 001 ( 1.41505222686E+00, 2.30944466982E-04)  6.40207936911E-14  4.01366508202E-01,1
002 002 ( 1.41505222686E+00, 2.30944466982E-04)  3.44643132384E-14  4.01366508202E-01,1
002 003 ( 1.43858365014E+00, 5.31008963326E-07)  3.82659844662E-14  8.51086927687E-01,1
003 001 ( 1.41106507822E+00, 1.23823709078E-03)  3.47147341558E-14  8.28169633080E-02,1
004 001 ( 1.41106507822E+00, 1.23823709078E-03)  3.39001203043E-14  7.44810686134E-02,1
003 003 ( 1.42688489143E+00, 3.41780845596E-05)  1.42333225086E-13  3.29375775933E-01,1
004 003 ( 1.42688489143E+00, 3.41780845596E-05)  1.41511233069E-13  4.25874209872E-01,1
003 005 ( 1.42995687701E+00, 1.59144084760E-05)  5.77426159696E-14  1.06444565412E-01,1
004 005 ( 1.42995687701E+00, 1.59144084760E-05)  5.73812547643E-14  6.67722902172E-02,1
003 006 ( 1.44539523405E+00, 3.19390151612E-08)  1.54837641092E-13  6.67522261137E-01,1
004 006 ( 1.44539523405E+00, 3.19390151612E-08)  1.54511966018E-13  6.67522261137E-01,1
005 001 ( 1.34777075284E+00, 1.54909593790E-04)  4.20303301718E-14  1.30102779013E-01,1
(...)

The first column is the mode class number l, the second column is an ordinal number for this mode (an integer with no intrinsic meaning) which will also be used in the bcf and fbb file names (*_C0lMp.bcf). The two columns between brackets are the real and imaginary parts of the effective index of the mode. The two columns afer that are the smallest and second smallest eigenvalues for that mode (this information is not very meaningful unless you are interested in the details of the multipole method). The last number is always 1.

If no symmetries are used, the structure is the same as above but the last number can be 1 or 2 depending on the degeneracy of modes.

*_skipped_minima.dat

This file contains information of all local minima in the determinant map that have not been refined until finding a mode. This file is most often empty, and when it is not it usually means that the software tried to track down a mode with effective index very close to one of the refractive indices of the structure. This file and its content can safely be ignored.


Output files when calculating dispersion

A dispersion calculation involves several steps, each leading to a number of output files with different

  • The first step only happens when dispersion is used after defining a structure, starting wavelength, mode class number and effective index window, but without loading a bcf file with load bcf file or table of effective index values using load dispersion file. In that case the software will first have to find modes for the given effective index window and class number at the start wavelength, in the same way as search modes would do. This leads to the same kind of output files as for searching modes, which will all contain *_DIP1* (which stands for "dispersion initial point 1"). Using the code in this way is not recommended, as you don't know for sure which mode you will end up having the dispersion for; instead, first find modes with search modes , then start a separate simulation to find the dispersion of the mode of your choosing as described in Calculating dispersion of higher order modes.
  • The second step is carried out if the mode is known for a single wavelength, and thus is carried out after the preceding point, or if a single bcf file at a single wavelength has been loaded using load bcf file, and no pre-existing dispersion data has been loaded with load dispersion file. The second step consists in finding the same mode as for the initial wavelength but for a very slightly perturbed wavelength. This is done using the same algorithm as used for search modes, in a small effective window centred on the effective index of the mode at the starting wavelength. Output files are the same as when using search modes but all file names contain *DIP2* (for "dispersion initial point 2").
  • The third step is the main step in the dispersion calculation, and is started as soon as the effective index of the mode is known for more than two wavelengths, which can happen either after the previous step or if a file with pre-existing dispersion data has been loaded using load dispersion file. It consist in calculating the mode for each wavelength step using existing points to extrapolate (or, in some cases, interpolate) at starting guess for the effective index. Output files from this step all use _DISP_ in their file name. The files include:
*_disp.dat
the file containing the dispersion of the mode. First column is the wavelength, second and third column are the real and imaginary part of the effective index.
*_matdisp.dat
contains the refractive index of all materials defined in the structure file. First column is the wavelength and following pairs of columns are real and imaginary parts of each of the materials. The first line contains the name of the materials.


Modes are written every number of points between log, and have names including *LXXXXX* where XXXXXX is an index identifying the wavelength for which the mode was calculated. XXXXXX ranges from 0 to number of points. For example if

start lambda=.5
stop lambda=0.55
number of points=100 
number of points between log=20

there will be .bcf and .fbb files with names including L000020, L000040, L000060, L000080 and L000100, calculated for wavelengths of 0.51, 0.52, 0.53, 0.54, 0.55 respectively. The _disp.dat file will contain neff for 100 wavelength steps between 0.5 and 0.55.

Scattering simulations

The software writes a bcf/fbb file per line of the angle file, as well as a *_ser.txt file containing the angular differential cross section. The unique *_rhofb.txt file contains a list of wavelength (col 2) theta, phi, delta (col 3-5) rho_fb as defined by White et al (col 6) and total scattering cross sections for E and H (that is, for both polarizations, when relevant) - in most papers the cross-section is the sum of both. Cross sections are normalized by the diameter of the first cylinder in the structure file. See Scattering simulations for details.