The stand-alone version of ATOMS, 'atoms.pl', is intended to be run from a command line and behaves very similarly to the Fortran version of ATOMS. Specifically, any input files that you used with the Fortran version can be used with this version.
To use this version of ATOMS, just type atoms.pl at the command line. If there is a file called 'atoms.inp' in the current directory, it will be read and used to generate output. Alternately you specify any file name in any directory by explicitly mentioning it as an argument on the command line:
atoms.pl other_file.inpYou can read from standard input by giving '-' as the filename. This reads input until the end of the redirected file or until you type ^D.
cat some_file | atoms.pl -You can also use command line switches as described in Section . This example:
atoms.pl -pF other_file.inptells ATOMS to write a P1 file using the data in a specific file, but not to write a 'feff.inp' file.
The input files for ATOMS is a loosely formated flat text file. Most of the file consists of keyword/value pairs, such as
rmax = 5.0Keywords are separated from values by whitespace, commas, and equals signs. The exact definition of what separated keywords and values is ``zero or more tabs or spaces; followed by a single comma, equals sign, tab or space; followed by zero or more tabs or spaces.'' As a regular expression this is [ \t]*[ \t=,][ \t]* .
The last keyword in the file must be atoms, which tells ATOMS that the list of unique coordinates begins on the next line. Everything after the keyword atoms is assumed to be part of the unique coordinates list and any keywords appearing after atoms will not be interpreted correctly.
Here is an example of an input file for superconducting yttrium barium copper oxide:
title YBCO: Y Ba2 Cu3 O7 space P M M M rmax=5.2 a 3.823 b 3.886 c 11.681 core=cu2 atoms Y 0.5 0.5 0.5 Ba 0.5 0.5 0.184 Cu 0 0 0 cu1 Cu 0 0 0.356 cu2 O 0 0.5 0 o1 O 0 0 0.158 o2 O 0 0.5 0.379 o3 O 0.5 0 0.377 o4
output type filenamewhere type is the name of a valid atp file without the file extension. filename will be the name to which the output file is written. An example:
output feff8 my_feff8_file.inpSee Chapter for more details about available output file types.
shift x y zThe shift coordinates can be numbers or simple fractions like 1/2 and 2/3. See Section .
The following keywords were recognized by the Fortran version of ATOMS and are now deprecated.
fdat feout nepoints xanes modules message noanomalous self i0 mcmaster dafs qvec reflections refile egrid index correctionsThe functionality of several of these keywords has been subsumed by the atp files (see Chapter and Appendix ). The keywords having to do with DAFS are either handled by the programs written to do the DAFS simulations. A few of these options were simply discarded.
The old Fortran version of ATOMS allowed the user to specify a basis list rather than an atoms list. That is, the sodium chloride structure, for example, could be expressed as FCC with a two atom basis. I found basis lists rarely to be useful and dropped support for them in the new version of ATOMS.
A keyword completion algorithm is used to interpret the keywords. Thus sh will be recognized as shift. However g is ambiguous as it could complete to gamma or geom.
When the input file parser encounters an unknown keyword, it and its value are both silently ignored. Unknown keywords are presumed to take only a single value. Although this may lead to user-confusion, it allows the parser to be sufficiently flexible to allow new programs to use the same parser, the same input files, and new keywords.
The algorithm for interpreting small math expressions in the atoms list is handy, but rather weak. The math expressions cannot have white spaces and must be valid perl syntax since they are evaluated as such. The math expression is taint checked, so an input file probably cannot hide a Trojan horse.
There are several command line switches which can be used to control the behavior of ATOMS from the command line. Command line switches can be clustered, for example atoms.pl -psF is the same as atoms.pl -p -s -F.
atoms.pl -t feff -o foo.inpwill write a FEFF6 output file and call it 'foo.inp'. This can be used also with user-defined atp files.
atoms.pl -t my_atp -o foobar.datwill write an output file using the user-supplied 'my_atp.atp' file and call it 'foobar.dat'.
You may use the -o switch alone to redirect the output to a filename of your choice, however you should be aware that its use is ambiguous in some situations. If you are generating only one output file, then that file will be called by the value of the -o switch. If you are generating multiple output files from a single run of ATOMS, then the first file generated will be called the name given by the -o switch. The ambiguous part is that the order in which the output files are generated is unpredictable. This is due in part to the variety of ways of specifying output and in part to the data structure used in the code to store this infomration. If you are making many output files in a single run, it is probably a poor idea to use the -o switch.