ATOMS is a crystallography program, but it was written by and is used by x-ray absorption spectroscopists. Absorption spectroscopy problems involving crystalline materials as the actual experimental subject or as model compounds for other, non-crystalline materials are quite common. ATOMS is primarily intended for use with the ab initio x-ray absorption theory code FEFF. To run FEFF one must supply a list of atomic coordinates describing the material of interest. Depending on the complexity of a structure, making a list of coordinates for a crystalline material can be a demanding and error-prone chore. Although capable of several other interesting calculations, the primary purpose of ATOMS is to generate lists of atomic coordinates starting from crystallographic data.
A crystalline material is described by its unit cell. A unit cell is one of seven space filling shapes which is decorated by the atoms contained in the unit cell. To completely describe a crystal, it is therefore necessary to describe the shape and contents of the unit cell. As an example, consider the rhombic form of elemental sulphur. The shape of this unit cell is such that is has sides of different lengths and all angles equal to 90 degrees. Describing the shape of unit cell thus takes 6 numbers, three of which are equal in this case. This form of sulphur has a very large unit cell, all the sides are over 10 Ångstroms and the cell contains 128 atoms. If the origin of space is placed at one vertex of the unit cell, the atoms may be identified by coordinates which are fractions of the lengths of the sides. Thus it takes 384 numbers to describe the contents of the unit cell. To describe the shape and contents of the cell thus requires 390 numbers. Fortunately, there's a better way.
Crystal structures are described using the symmetry properties of three dimensional space. It turns out that there are 230 unique ways of combining symmetry operations in three dimensional space. These 230 symmetry rules are called space groups. A concise notation consisting of the symbol of the space group of the crystal, the values of the lattice constants and angles, and the fractional coordinates of the unique atomic positions can be used to describe any crystal.
In the case of sulphur, the space group symbol is F D D D. This is a symbol for an orthorhombic unit cell. By specifying an orthorhombic symbol, we need not specify the values of the angles. That the cell is orthorhombic implies that the angles are all 90 degrees. We do need to specify the values of the lattice constants.
The 128 atoms in this unit cell may be divided into four sets of 32 atoms each. The atoms in each set are related to one another by the symmetry operations associated with the F D D D space group. Because F D D D denotes a particular set of symmetry operations, it is only necessary to specify one example from each set of 32 atoms. In each case, the other 31 positions can be generated from the first using the symmetry operations. This dramatically reduces the amount of information needed to describe the crystal. Instead of needing 390 numbers, we can use one symbol, F D D D, plus 15 numbers specifying the lattice constants and the fractional coordinates of the four representative atoms. These four representative atoms are the unique atomic positions.
Here is how sulphur is described using this crystallographic notation. The following lines are an input file for the ATOMS program. The lattice constants are the numbers a, b, and c. The unique coordinates are given in the list at the end of the example. The syntax and contents of this file will be explained fully in later chapters.
title Rhombic Sulphur
space F D D D
rmax=10.0 a=10.467 b=12.870 c=24.493
core=s3
atom
! At.type x y z tag
S 0.8554 0.9526 0.9516 s1
S 0.7844 0.0301 0.0763 s2
S 0.7069 0.9795 0.0040 s3
S 0.7862 0.9073 0.1290 s4
ATOMS knows how to interpret this kind of data and use it to fully
describe a unit cell. It can then make various interesting kinds of
calculations using that description of the unit cell, including its
primary purpose -- the generation of lists of atomic coordinates in a
form suitable for running FEFF.
ATOMS is written entirely in the Perl programming language. Perl
is an interpreted language. This means that ATOMS requires that
you have a program called Perl on your computer which is capable of
reading the source code for ATOMS and executing the commands
contained therein. This is not a prohibitive requirement. Perl is
available for virtually every kind of computer in use today and it is
free of cost. You can download the Perl interpreter from the Internet
or purchase it for minimal cost on a CD. See the installation
instructions in Chapter
and the resources in
Chapter
for details about where to find Perl.
This document describes the programs that come in the ATOMS distribution. That includes ATOMS, the program for creating atom lists from crystallographic data, and it includes several other programs. TkATOMS is a graphical program which is used to generate atom lists and also to perform several other useful calculations using crystallographic data. DAFS is a program for approximating the energy dependence of the x-ray scattering form factor using tables of anomalous scattering coefficients. POWDER is a program for simulating a powder diffraction spectrum. DAFS and POWDER use the same input files as ATOMS. WebATOMS is a version of ATOMS which runs as a CGI script on a web server. APT, the ATOMS Periodic Table is a graphical, periodic table interface to the x-ray absorption and anomalous scattering data used by ATOMS. TEMPLATE is a tiny script which generates empty FEFF input files useful for situations where you need to fill in atomic coordinates by hand.
Each of these programs is fairly short. For example, the first version of ATOMS mentioned above is about 200 lines long. The bulk of the functionality of all these programs is contained in reusable, object oriented code.
ATOMS and all files distributed in the ATOMS package are free software. Or Open Source software. Or software libre. Different people like different terms. The bottom line is that ATOMS is freely usable, freely available, freely redistributable, and available for scrutiny and modification. This is a very sensible way for scientific software to be. The purpose of this software is as an aid in the performance of science. Once we make and interpret measurements, we typically publish our data and our interpretations in readily available sources. Science works best and is most believable when we fully disclose all aspects of our ideas, measurements, and interpretations in the scientific literature. It is therefore natural that the software that is used in pursuit of scientific accomplishment be fully disclosed in a similar manner.
While it is true that I want ATOMS to be freely and readily
available for any use, I do need to protect certain personal
interests. ATOMS is almost entirely my own work. This document
carries my name next to its copyright notice. It is therefore
important to me that others do not pass off ATOMS as their own
work. It is also important that ATOMS not be modified in a manner
not approved by me and this unapproved modification be passed off as
my work. I also do not want anyone (unlikely as this may be)
garnering some significant wealth by redistributing my work without
making any significant enhancements. To this end I have placed the
ATOMS package under the terms of the Perl Artistic License, a copy
of which can be found in Appendix
.
The use of the Artistic License means that, in brief and legally inaccurate terms, you can use ATOMS, you can give ATOMS to someone else, you can write new software which uses ATOMS in some integral manner, you can modify ATOMS for you own use, you can modify ATOMS and contribute the modification to its author, you can modify ATOMS and distribute your modified version under certain conditions, and (most importantly) you can read the source code and know exactly what ATOMS does.
One of the appealing aspects of free software is that users are free
to fix bugs in the code. If you do so, please share your fix with me.
If you do not want to or are unable to correct a problem, please send
me a bug report. See FAQ
on page
for hints about filing useful bug reports.
Earlier versions of ATOMS were written in Fortran and were not free
software. Specifically, they were software licensed from the
University of Washington. While the current version of ATOMS bears
certain similarities to the earlier versions, it is not a derived
work. And while the ATOMS homepage on the World Wide Web is kindly
hosted by The FEFF Project at the University of Washington,
ATOMS is no longer managed by, distributed by, or in any way
associated with the University of Washington. Any questions or
comments about the science or functionality of the code should be
directed to its author, as should any questions concerning licensing
or redistribution which are not covered in the Perl Artistic License,
reprinted in Appendix
of this document.
The chapters in the document are intended as user documentation for ATOMS and related programs and the appendices are intended as technical documentation. The first several chapters provide general information relevant to any program in the ATOMS package. These are followed by chapters which document the use of the command line, Tk, and Web versions of ATOMS. The final chapter contains bibliographic and web references relevant to ATOMS.
The first appendix is a Frequently Asked Questions (FAQ) list which
may contain answers to questions not explicitly covered elsewhere in
the document. Before reporting a bug it is a good idea to check there
first. The second appendix is a technical reference on the syntax and
creation of ATOMS template files, which are used to structure the
various kinds of output files produced by ATOMS and are also partly
described in Chapter
. The third
appendix is a big list of all the different ways to specify space
group symbols. The fourth appendix contains the documentation
embedded in each of the perl modules distributed with ATOMS. These
are of interest to anyone interested in modifying ATOMS or in using
the modules in projects of their own.
Most of this document is written natively in LATEX and converted to
postscript, pdf, or html. Several parts of this document,
Chapter
, and
Appendices
and
, are generated automatically from
other sources and so follow different typographic conventions.
Elsewhere the typographic conventions outlined in
Table
are used.
| font | denotes |
| SMALL CAPS | names of programs |
| typewriter font | contents of files |
| 'quoted typewriter font' | file names |
| slanted typewriter font | commands executed at a command line |
The html version of this document was created using LATEX2HTML, release 98.1p1. It uses html markup conforming to HTML3.2, and so tables are used throughout the document. This may be a problem for some browsers. All images in this document are in the Portable Network Graphics (png) format. This, too, might be a problem for some browsers.
My name is Bruce Ravel. I wrote this document and virtually all of ATOMS. I am a physicist by training and graduated from the X-Ray Spectroscopy Group at the University of Washington in Seattle, Washington, USA in the summer of 1997. My thesis topic was XAFS studies of ferroelectric perovskites. I also developed a full-multiple scattering algorithm for computing XANES and local electronic densities of state which was eventually incorporated into FEFF8. I then spent two years as a National Research Fellow at the National Institute of Standards and Technology in Gaithersburg, MD, USA where I continued my studies in ferroelectric materials and also learned the Diffraction Anomalous Fine Structure (DAFS) technique. I then spent nearly a year as a visiting scientist at the Centre National de la Recherche Scientifique in Grenoble France and as a staff member at the D2AM beamline at the European Synchrotron Radiation Source. I am currently a post-doc at the Naval Research Laboratory doing x-ray absorption spectroscopy studies of half-metallic ferromagnetic materials.
I love to receive email about ATOMS and encourage you to contact me with comments, questions, suggestions, criticisms, and bug reports. The address ravel@phys.washington.edu always forwards to me no matter where I am. My personal homepage is
http://feff.phys.washington.edu/~raveland the ATOMS homepage is
http://feff.phys.washington.edu/~ravel/software/atoms/3.0.html.
ATOMS is nowhere near finished. Quite the contrary, I have a long way to go. Matt Newville -- the author of AUTOBK, FEFFIT, IFEFFIT and lots of other wonderful things -- and I have grand ideas for a huge set of low-level tools for instrumenting the various aspects of XAFS data analysis. We also hope to build a variety of sophisticated applications using these tools so the absorption spectroscopist can interact with data and theory in many interesting ways. In particular we hope to provide a variety of programmatic, graphical, and network-based tools.
The data structures already in use in ATOMS are well suited to various real-space structural manipulation and representation chores. I hope to develop a simple ball-and-stick viewer as a graphical backend to ATOMS. This would allow the user to view and edit crystal and molecular structures in an intuitive manner before running FEFF or progressing on to data analysis.
I also plan to develop ATOMS as a structural front-end to IFEFFIT. ATOMS is capable of generating abstract data about crystal structures in a way that can be very powerful when combined with an EXAFS fitting engine like IFEFFIT. This will allow the user to more easily construct detailed fitting models wherein th measured parameters represent essential features of the local structure rather and are used to calculate on-the-fly the interatomic distances used in the EXAFS equation.
And finally, I intend to further develop ATOMS as a graphic and programmatic front-end to FEFF8 and its successors.