The main input file for an elegant run consists of a series of namelists, which function as commands. Most of the namelists direct elegant to set up to run in a certain way. A few are ``action'' commands that begin the actual simulation. FORTRAN programmers should note that, unlike FORTRAN namelists, these namelists need not come in a predefined order; elegant is able to detect which namelist is next in the file and react appropriately.
Each namelist has a number of variables associated with it, which are used to control details of the run. These variables come in three data types: (1) long, for the C long integer type. (2) double, for the C double-precision floating point type. (3) STRING, for a character string enclosed in double quotation marks. All variables have default values, which are listed on the following pages. STRING variables often have a default value listed as NULL, which means no data; this is quite different from the value ``'', which is a zero-length character string. long variables are often used as logical flags, with a zero value indicating false and a non-zero value indicating true.
On the following pages the reader will find individual descriptions of each of the namelist commands and their variables. Each description contains a sequence of the form
&<namelist-name> <variable-type> <variable-name> = <default-value>; . . . &endThis summarizes the parameters of the namelist. Note, however, that the namelists are invoked in the form
&<namelist-name> [<variable-name> = <value> ,] [<array-name>[<index>] = <value> [,<value> ...] ,] . . . &endThe square-brackets enclose an optional component. Not all namelists require variables to be given-the defaults may be sufficient. However, if a variable name is given, it must have a value. Values for
STRING
variables
must be enclosed in double quotation marks. Values for double
variables may be in floating-point, exponential, or integer format
(exponential format uses the `e' character to introduce the exponent).
Array variables take a list of values, with the first value being placed in the slot indicated by the subscript. As in C, the first slot of the array has subscript 0, not 1. The namelist processor does not check to ensure that you do not put elements into nonexistent slots beyond the end of the array; doing so may cause the processor to hang up or crash.
Wildcards are allowed in a number of places in elegant and the SDDS Toolkit. The wildcard format is very similar to that used in UNIX:
*
-- stands for any number of characters, including none.
?
-- stands for any single character.
[<list-of-characters>]
-- stands for any single character from the list. The list may include
ranges, such as a-z
, which includes all characters between and including `a' and `z' in the ASCII
character table.
*
, ?
, [
, and ]
are entered literally by preceeding the character by a
backslash (e.g., \*
).
In many places where a filename is required in an elegant namelist, the user may supply a so-called ``incomplete'' filename. An incomplete filename has the sequence ``%s'' imbedded in it, for which is substituted the ``rootname.'' The rootname is by default the filename (less the extension) of the lattice file. The most common use of this feature is to cause elegant to create names for all output files that share a common filename but differ in their extensions. Post-processing can be greatly simplified by adopting this naming convention, particularly if one consistently uses the same extension for the same type of output. Recommended filename extensions are given in the lists below.
When elegant reads a namelist command, one of its first actions is to print the namelist back to the standard output. This printout includes all the variables in the namelist and their values. Occasionally, the user may see a variable listed in the printout that is not in this manual. These are often obsolete and are retained only for backward compatibility, or else associated with a feature that is not fully supported. Use of such ``undocumented features'' is discouraged.