UM 2p5 parameters 3

From CUDOS
Jump to: navigation, search

User Manual Index > 2.5 Parameters

2.5.3 Threshold keywords

All keywords in this list are information keywords, and define thresholds used by the mode finding algorithm. All threshold have default values and are hence optional. A good understanding of these threshold requires a reasonable understanding of the multipole method and the root-searching algorithm described in Refs. [1, 2].


det_mode_threshold = determinant mode threshold [REAL]: Defines the threshold below which the determinant must be before an eigenvalue decomposition is com- puted. The eigenvalue decomposition is numerically more expensive than the com- putation of the determinant, so the eigenvalue decomposition should only be done when there is a good chance to find a small eigenvalue. The best value of this pa- rameter depends on the wavelength to pitch ratio, the size of the matrix, ie. on the number of cylinders, on the Bessel expansion truncation parameters and also (but this is negligible) on the class of symmetry. For a structure with one or two cylinders in the irreductible sector and with the Bessel expansion going from -5 to 5, 1e-10 is a rea- sonable value. For more complex structures or higher orders in the Bessel expansion, it might be necessary to go up to 1e-6, and in some cases (bandgap guidance near a band gap edge or extreme values of the wavelength to pitch ratio) values up to 1e10 are needed. The default value of this threshold is set to 1e-10. However, when a minimum of the de- terminant is refined by the Broyden/zooming algorithm until the precision thresholds set for the real and imaginary parts are reached and the value of the determinant, although being a local minimum, is not below determinant mode threshold, FIBRE computes an eigenvalue decomposition for this minimum anyway. If an eigenvalue with magnitude less than eigen-value threshold (see below) is found, FIBRE automatically adjusts the determinant mode threshold to 100× the magnitude of the determinant for which the mode was found. This avoids time to be spent in excessive refinement for the next modes to be searched. It is therefore rare to have to adjust this threshold, since FIBRE adjusts it on its own. If you want to avoid FIBRE to adjust this threshold automatically, you can use the optimization=paranoid option. (Synonyms: det mode threshold, determinant threshold)


eigen_value_threshold = eigen-value threshold [REAL]: This sets the threshold be- low which the modulus of an eigenvalue is considered to be zero, ie the value the modulus of an eigenvalue has to reach before the associated eigenvector is considered to be a mode. The default value of this threshold is 1e-10, and is generally sufficient for most simulations. For more complex structures (large number of rings or large diameter on pitch ratios) you might have to increase the threshold up to 1e-8 or 1e-6. You will know when you have to change this threshold from looking at the result file. If for a given minimum the result files mention that refining the root failed, but the smallest eigenvalue has a relatively small magnitude compared to the second smallest eigenvalue, you should re-run the same simulation using an eigenvalue threshold slightly above the magnitude of the smallest eigenvalue found. Note that if you rerun the same simulation just changing the eigen-value threshold, the determinant map will not have to be re-evaluated, but will be loaded from the determinant file, so that the second simulation should be much faster than the first. If you need to raise this threshold, you will have to check more thoroughly that the modes you get were sufficiently refined, through checking eg the Wijngaard test. (Synonyms: eigenvalue threshold, eigen-value threshold)


real_precision_threshold = real precision threshold [REAL]: Defines the limit precision for the real part of the effective index. The software stops refining the current minimum of the determinant if the absolute precision on the real part of nef f is less than real_precision_threshold and no mode has been found. The default value of this threshold is 1e-13. Lowering this threshold does not give higher precision on the real part (the main criterion for stopping the refinement of a mode is the magnitude of the eigenvalue), but may cause the refinement to slow down if the determinant mode threshold is inadequate. On the contrary, increasing this threshold may lead to inaccurate results if the eigenvalue threshold is inadequate. It is rare one has to change this value and it is recommended not to change it. (Synonyms: real precision threshold, real precision)


imag_precision_threshold = imaginary precision threshold [REAL]: Defines the limit precision for the imaginary part of the effective index. The software stops refining the current minimum of the determinant if the relative precision on the imaginary part of neff is less than imag_precision_threshold and no mode has been found. The default value of this threshold is 1e-6. Lowering this threshold does not give higher precision on the imaginary part (the main criterion for stopping the refinement of a mode is the magnitude of the eigenvalue), but may cause the refinement to slow down if the determinant mode threshold is inadequate. It is rare one has to change this value and it is recommended not to change it. (Synonyms: imag precision threshold, imaginary precision threshold, imag precision, imaginary precision)


degeneracy threshold = degeneracy threshold [REAL]: When symmetries are taken into account, classes of symmetry are treated separately and eigenvalues are (except for the rare cases of accidental degeneracies) non-degenerate. The software checks that the ratio of the modulus of the two smallest eigenvalues is less than this threshold. If this is not the case, the software does not consider that a mode has been found and continues the quest. When symmetries are not taken into account, twofold degeneracies occur. The threshold is then used to correctly deal with degenerate modes: if after an eigenvalue decomposition, more than one eigenvalues have magni- tude smaller than the eigenvalue threshold and their ratio is smaller than the condition threshold, they are considered degenerate modes. The modes then get the same ordinal number and are distinguished by the degeneracy number (the file names of the Fourier-Bessel coefficient files then end with d1, d2 etc., corresponding to the degeneracy number). The default value for this parameter is 1e-3, and cases where this value is inadequate have never occurred to the present day. (Synonyms: condition threshold, condition_threshold)


minima_threshold = minima threshold [real]: Sets the value below which a local minimum of the initial determinant map will be refined. The default value of this parameter is 1d30, which in practice means that all minima will be refined. In some very rare cases numerical instabilities appear associated with a diverging determinant (this can be seen by visualizing the determinant map: the determinant then takes very large values [of the order of 1d30 or more] and seems to fluctuate chaotically in that region), leading to false minima with large values of the determinant. In these cases it can save computational time to lower the minima threshold down to about 1e3. (Synonyms: minima threshold, minimum threshold)


upper_real_threshold = upper real threshold [real]: This threshold limits the acceptable values of the real part of the effective index for the zooming algorithm to values such that |(neff)−nmax| > upper real threshold, with nmax being the largest value of the real part of the refractive indices encountered in the structure. This is to avoid numerical errors occurring when the effective index is too close to nmax , and to avoid the zooming algorithm to enter an infinite loop. The default value of this threshold is 1e-4. You may want to decrease this value if you are looking for modes close to nmax , but avoid using values smaller than 1e-6 since this can lead the zooming algorithm to loose an unacceptable amount of time trying to follow a valley crossing nmax . (Synonyms: upper real threshold)


lower_real_threshold = lower real threshold [real]: This threshold limits the acceptable values of the real part of the effective index for the zooming algorithm to values such that |(neff)−nmin| > lower real threshold, with nmin being the smallest value of the real part of the refractive indices encountered in the structure. This is to avoid numerical errors occurring when the effective index is too close to nmin , and to avoid the zooming algorithm to enter an infinite loop. The default value of this threshold is 1e-4. You may want to decrease this value if you are looking for modes close to nmin , but avoid using values smaller than 1e-6 since this can lead the zooming algorithm to loose an unacceptable amount of time trying to follow a valley crossing nmin . (Synonyms: lower real threshold)


lower_imag_threshold = lower imaginary threshold [real]: This threshold limits the smallest acceptable value of the imaginary part of the effective index for the zooming algorithm. This is to avoid numerical errors occurring when the effective index is too close to the real axis, and to avoid the zooming algorithm to enter an infinite loop. The default value of this threshold is 1e-15. It is rare to have to change this threshold, but if you observe numeric instabilities or divergences in the determinant map close to the real axis (this might occur for lossy structures) you might want to increase this threshold. On the other hand, if you know that the imaginary part of the effective index is going to be smaller than 1e-15, you should set the imaginary part to zero artificially and search fro modes on the real axis only. (See stop n_eff and n_width on how to do this.) (Synonyms: lower imag threshold, lower imaginary threshold )


upper_imag_threshold = upper imaginary threshold [real]: This threshold limits the largest acceptable value of the imaginary part of the effective index. This is to avoid numerical errors (especially divergences) occurring when the imaginary part of the effective index is too large. The default value of this threshold is 1e-1. It is extremely rare to have to change this threshold. (Synonyms: upper imag threshold, upper imaginary threshold)