UM 2p5 parameters 6and7

From CUDOS
Jump to: navigation, search

User Manual Index > 2.5 Parameters

2.5.6 File name keywords

verbose file = file name [character string]: Redefines the progress file name to file name. By default, the progress file is called progress.txt. Its content depends on the value of verbose. Each time this keyword is used, subsequent verbose output is directed to file name. You can redefine the progress file name at any time in a parameter file. You can hence have different progress files with different names for different simulations in a same parameter file. (Synonyms: progress file)

file suffix = suffix [character string]: The characters defined by this keyword are added to all output file names (except the error and progress files). A typical file name for an output file is <file name radix><suffix><file type, mode and wavelength dependent suffix>.<file dependent extension>. The default value for this parameter is the empty string. (Synonyms: file extension, file_extension, pers_name, file_name_extension, file name extension)

file name = file name radix [character string]: Defines the file name radix on which all output file names (except the error file and the verbose file) are based, as described for file suffix. By default the file name radix is the name of the last structure file (as saved or as loaded) without the .txt extension. If no structure file name has been defined, the default radix is INTERNAL. (Synonyms: file name radix, output file name radix)

overwrite =overwrite [logical]: fibre automatically generates a number of output files with various names. By default, if a file with the same name as an output file exists prior to execution of fibre, it will be deleted and overwriten. This can lead to loss of data if one omits to change file name extensions or names between two simulations. If this flag is set to .false., the program will stop before overwriting any files. If set to .true. (default value), overwriting is allowed and will solely cause a warning in the error file. Note that the ’errors.txt’, determinant map and temporary files are not affected by this option and will always be overwritten.


2.5.7 Keywords relating to the algorithm

optimization = option [character string], where option is one of the following:

paranoid Optimizes execution for maximum accuracy, with no compromises or self adjustment of parameters. This does not necessarily lead to safer execution,or more accurate results. This mode, intended for debugging and for modes which are extremely delicate to find, is generally not recommended. In this mode the determinant mode threshold is not changed from its initial value by the program, and when computing dispersion curves an eigenvalue decomposition is computed for each wavelength step.
normal Normal execution mode. The eigenvalue threshold is updated automatically, and when computing dispersion curves an eigenvalue decomposition is computed for each wavelength step. This is the default value.
fast Optimizes execution for speed: The eigenvalue threshold is updated automatically, and when computing dispersion curves an eigenvalue decomposition is only computed when a mode is saved to a file (see number of points between log.) This option is not supported for the search of modes (search modes keyword).

Note that the optimization option also affects the default optional argument of suggest order.

skip real borders val [logical]: val is either .true. (default) or .false. . When true, minima on the edges parallel to the imaginary part of the effective index region over which the initial determinant map is computed are ignored. When false, all minima, including those on the latter edges, are refined. Minima on the edges of the determinant map are most likely not to be true local minima but points in valleys with minima far outside the region of effective index of interest. It is recommended to keep this parameter to .true.: when set to .false. a lot of time can be lost trying to track down the minium of the mentioned valleys. (Synonyms: skip_real_borders)

order = order [integer]: Sets the order of truncature of the Fourier-Bessel expansions for all cylinders. (Synonyms: ORDER, Order)

cladding order = order [integer]: Sets the order of truncature of the Fourier-Bessel expansions for the cladding and the jacket. (Synonyms: gorder, GORDER, Gorder, Cladding Order, CLADDING ORDER, corder, Corder, CORDER)


Action keywords

suggest order = option [character string]: Asks fibre to evaluate automatically the order of truncature needed for the cylinders and for the jacket and cladding. In other words, using this keyword sets the parameters order and cladding order automatically. The choice of the order of truncature is based on [2] and our further experience. An important quantity for the choice of the order of truncature is the largest argument of Bessel and Hankel functions occurring during the simulation. The latter is proportional to the difference between effective indices of the modes and refractive indices of the structure, to the wavenumber in vacuum 2π/λ and to the longest distance occurring during the simulation. The longest distance to occur during the simulation is basically the longest distance between any two different centers of cylinders, however, this leads almost always to overestimates of the order of truncature. fibre lets the user choose which distance to take into account to evaluate the order of truncature, through the choice of option which is one of the following. Here we introduce λ, the wavelength as defined prior to the occurrence of the suggest order keyword, and ∆nmax , the maximum magnitude of the difference between all refractive indices in the structure and the effective index anywhere in the effective index range to be scanned:

fast  : (default value when optimization is set to fast) optimizes the choice of the order of truncature for speed: results are generally inaccurate, but can give a good idea of where to look for what mode in subsequent more precise simulations. With this setting, order is defined by 2π/λRmax ∆nmax where Rmax is the maximum radius of all cylinders. (Synonyms: FAST)
normal : This is the default setting if optimization is set to normal. The resulting choice of the order of truncature, based on the radius of cylinders, gives good accuracy if the cylinders are not too close to each other. With this setting, order is defined by 1.5 × 2π/λRmax ∆nmax + 1 where Rmax is the maximum radius of all cylinders. (Synonyms: NORMAL)
close cylinders : Same as normal, but adds 2 to the value of order. This is a safe choice if the cylinders are close to each other (eg diameter on pitch ratios larger than say 0.5 for C6v structures).
second nearest neighbour  : Uses twice the minimal distance between cylinders to evaluate order. With this setting, order=1.5 × 2π/λ2 × dmin ∆nmax + 1 where dmin is the shortest distance between the centers of any two cylinders. (Synonyms: second neighbour)
core  : Uses the distance rcore between the origin and the center of the closest cylinder, or if a cylinder is centered on the origin, the radius of that central cylinder. With this setting, order=1.5 × 2π/λ2 × rcore ∆nmax + 1.
average : Uses the average distance < d > between cylinders. With this setting, order=1.5 × 2π/λ2× < d > ∆nmax + 1.
rigorous : Uses the actual longest distance dmax occurring between any two interfaces (including the jacket) or center of cylinders. With this setting, order=1.5 × 2π/λ2 × dmax ∆nmax + 1.
precise : (default value when optimization is set to paranoid) Same as rigorous, but adds 3 to the obtained value of the order of truncature. (Synonyms: precision, PRECISE, PRECISION, accurate, accuracy, paranoid, PARANOID)

For cladding order, the distance d used is either the jacket radius (if the refractive indices of the cladding and the jacket are different) or the cladding inner radius (if the refractive indices of the jacket and cladding are the same but are different from the refractive index of the matrix), the only difference between the different options is the corrective factor. The order of truncature of the Fourier-Bessel expansion for the cladding and the jacket is

• fast option: 2π/λ∆nmax d + 1
• paranoid option: 1.5 × 2π/λ∆nmax d + 1
• all other options: 2 × 2π/λ∆nmax d + 1

Note that all options beyond close cylinders usually lead to orders of truncature much higher than what is needed for reasonable accuracy. Further, increasing the order of truncature does not necessarily lead to more accurate results: indeed, the numerical precision on Bessel functions decreases with their order, and the accuracy of the determinant diminishes with increasing matrix size.

(Synonyms: eval order, auto order)

Table 1: Example of a structure file
6 symmetry C6v
2 number of cylinders in the irreductible sector
5 order of truncature for cylinder Bessel expansion
72 order of truncature for cladding Bessel expansion
(2.102,0.0d+0) matrix epsilon
(1.0d0,0.0d0) exterior epsilon
6.50d0 6.655172d0 cladding inner and outer radius
(1.315d0,0.0d+0) cladding epsilon
0.0d0 0.0d0 0.2d0 (1.0d0,0.0d0) 0 0 cylinder 1: r,theta,radius,epsilon, symmcat,axis
1.0d0 0.314159265358d0 0.2d0 (1.0d0,0.0d0) 0 0 cylinder 2: r,theta,radius,epsilon, symmcat,axis