Atomic coordinates


You can define the input atomic coordinates in the Atoms block key:

   {N} AtomType Coords {F=Fragment}
This is an optional integer by which you may number the atoms. The numbers should be 1,2,3, et cetera if any reference is made to them in other parts of input. The reason for this restriction is that ADF numbers the atoms internally according to their occurrence in the input file and it applies this internal numbering when any subsequent references are interpreted.

The name of an atom type. It must begin with the standard one- or two-character symbol for the chemical element (e.g. H, He, Li,...). Optionally it may be appended by .text, where text is any string (not containing delimiters). Examples: H, Mn.3,

Note: Atom type is not identical to chemical element. An atom type is defined by all characteristics of the basic atom to which it in fact refers: the nuclear charge, the basis functions, the frozen core, the density functional and any other features that were applied in generating that basic atom.


The xyz coordinates of the atom (see Units of length and angle). Example:

   O  0.000000  0.000000   0.000000
   H  0.758602  0.000000   0.504284
   H  0.758602  0.000000  -0.504284

Specifies that the atom belongs to a particular fragment. The fragment name must be of the form fragtype/n, where fragtype is the name of one of the types of fragments in the molecule. The integer n, after the slash, counts the individual fragments of that type. The numbering suffix /n is not required if there is only one fragment of that type.

When f=fragment is omitted altogether, the fragment type is taken to be the atom type that was specified earlier on the same line. (The numbering /n is then added automatically by the program, by counting the number of times that this single-atom fragment type occurs in the list of atoms).

note: Input items are generally case insensitive. Exceptions are the names of files and directories. Since (to be discussed below) the name of the fragment type as it is defined under atoms (explicitly with the f=option, or implicitly as the name of the atom type) might also directly indicate the fragment file, the specification of fragment types is in principle case-sensitive. Errors may occur if you are sloppy in this respect. However, you must not give different fragment types names that differ only by case: at various places in the program fragment type names are compared in a case-insensitive way

The INLINE key can be used to include a file containing the atomic coordinates:


Note: .xyz files might include headers. Since the INLINE key simply copies the content of the file to the ADF input, you have to remove the header from your .xyz file.


It is possible to specify the atomic coordinates in a Z-matrix format.

ATOMS Zmatrix
   {N} AtomType Coords {F=Fragment}

For Z-matrix coordinates you put first the three connection numbers, then the values of the bond length, bond angle and dihedral angle (see Units of length and angle). Example:

Ge 2 1 5 2.1 95.3 24.8

defines that a Germanium atom is located with a distance 2.1 Angstrom from the second atom in the input list, that the angle (Ge-atom2-atom1) is 95.3 degrees and that the dihedral angle between the planes (Ge-atom2-atom1) and (atom2-atom1-atom5) is 24.8 degrees.

To avoid any confusion as regards the direction (sign) of the dihedral angle, here is the definition used in ADF: Let the connection numbers for an atom P refer to the atoms Q, R and S, in that order. Choose a local coordinate frame such that Q is at the origin, R on the positive z-axis and S in the xz-plane with a positive x-value. The three Z-matrix coordinates bond length, bond angle and dihedral angle of P are then precisely its spherical coordinates r, q, and -f: the distance to the origin, the angle that PQ makes with the positive z-axis (0.π) and the negative of the angle that the projection of PQ on the xy-plane makes with the positive x-axis (0..2π, or -π..+π).

The connection numbers and internal coordinate values of the first atom in a Z-matrix have no meaning. Similarly, the second atom requires only a bond-length specification and the third atom only a bond length and a bond angle. However, for each atom three connection numbers are read from input and interpreted, and you must therefore supply zeros for them if they don’t refer to any atoms. The corresponding meaningless Z-matrix coordinate values can be omitted. More in general: missing coordinate values are set to zero (also for Cartesian coordinates input). Z-matrix values that are meaningless because they correspond to zero connection numbers are ignored, whatever their value is in the input file.

In a Z-matrix definition the three reference atoms, with respectively 3, 2, and 1 connection numbers equal to zero, do not have to be the first three in the input list. The program will scan the list for any atom that has 3 connection numbers zero, then for one that has only a bond length specification, etc. If the Z-matrix is not properly defined, for instance if more than one atom occurs with all three connection numbers equal to zero, or when not every atom is somehow connected to all others, the program will abort.

If a subgroup of the true nuclear symmetry is used and Z-matrix format is used for the coordinates, the program will place the atoms in the standard Z-matrix frame: first atom at the origin, second on the positive x-axis, third in the xy-plane with positive y-value.

Dummy Atoms

Dummy atoms may be useful in the construction of a Z-matrix, for instance to obtain a set of internal coordinates that reflect the symmetry of the molecule better. They may also be useful in a Z-matrix to avoid an ill-defined dihedral angle, which occurs when three (almost) co-linear atoms span either of the two planes that define the angle. In geometry optimizations this must absolutely be avoided if such internal coordinates are used as optimization parameters.

Dummy atoms are input with the chemical symbol xx. XX-type atoms can be inserted in the list of atoms like any other atom types. The name (xx) can have a suffix of the form .*text*. No fragment files must be supplied for dummies.

There are no symmetry constraints on the positions of the dummies. Dummy atoms may be placed asymmetrically. If the atomic coordinates are input as Cartesians, any dummy atoms are irrelevant. Their coordinates will be printed but otherwise they are ignored. The dummies serve only to set up the Z-matrix in a proper way.

Mixed Cartesian and Z-matrix

The key ATOMS can also be used to supply coordinates in a format that gives the values for the Cartesian coordinates and the connection matrix, which defines a Z-matrix.

 {N} AtomType Coords {F=Fragment}
Signals this particular format for the coordinates
As for Z-matrix input: three integers and three real values. The integers are the connection numbers that define the Z-matrix structure, but the reals are the Cartesian coordinates.

With ZCart input, the z-matrix is internally generated from the Cartesian coordinates and the connection numbers.

This feature is convenient when for instance Cartesian coordinates are easily available but you want to run a Geometry Optimization in internal coordinates, for which a Z-matrix structure is required.

The zcart option comes in handy also to satisfy symmetry-related orientation requirements when you basically wish to use Z-matrix coordinates.

With zcart input the program defines the type of coordinates in the input file as Cartesian. This is significant in Geometry Optimizations, where the optimization variables are by default taken as the input coordinate type.

MOPAC format

It is possible to specify the atomic coordinates in MOPAC format:

   {N} AtomType Coords {F=Fragment}

The MOPAC style input requires that the records in the data block have the following format:

AtomType distance idist angle iangle dihedral idehedral

The three internal coordinate values (distance, angle, dihedral) are each followed directly by the connection number.

Orientation of Local Atomic Coordinates

As discussed before the atomic positions are input with the key ATOMS. One option has thus far not been mentioned: the possibility to redefine the local coordinate frame of an atom.

ATOMS {type of coordinates}
   {n} AtomType coordinates {F=fragment} {Z=xx yy zz} {X=xx yy zz}

Except for the z= option all aspects have been examined already before.

z=xx yy zz
defines a reorientation of the local atomic z-axis; it is interpreted as a direction vector with components (xx,yy,zz) pointing away from the atom. In the local, reoriented frame the local atomic x-axis will be rotated to the plane defined by the directions of the molecular z-axis and the local atomic z-axis. This feature can be used only for single-atom fragments (otherwise it is ignored). Its purpose is to give more flexibility in the analysis of the final molecular orbitals in terms of the atomic orbitals. In such a case it may be very helpful to redefine the orientation of say the p-orbitals of an atom. For instance, you may orient all p-orbitals towards the origin by specifying for each atom z= -x -y -z (with x,y,z the coordinates of that atom). By default the local and molecular z-axes are identical.
x=xx yy zz
defines a reorientation of the local atomic x-axis; it is interpreted as a direction vector with components (xx,yy,zz) pointing away from the atom. Together with the z vector this defines the xz plane. The y axis is then given by the vector product z * x. This is used for analysis (see orientation of the z-axis).

ASCII Output Files with Atomic Coordinates

You may want to have a special result file that contains the atomic coordinates corresponding to all the geometries processed in the calculation, for instance to feed it to a ‘movie’ generator to display the development of an optimization run. This is regulated with the key FILE:

FILE filetype filename { filetype2 filename2 }
Specifies the format of the output. Currently supported are three varieties: mol and xyz
The file to which the output is written; the file should not yet exist. The name may include a full or relative path with respect to the directory where the calculation runs.

The same input record may contain any number of pairs-of-arguments, for instance to specify that both a mol-type and a xyz-type result file are to be generated. The key may also occur more than once in the input stream, in which case the argument lists are effectively all concatenated (by the program).

Symmetry Key

Together with the point group symmetry, a tolerance parameter can be supplied.

SYMMETRY {symbol} {tol=tolerance}

The Schönfliess symmetry symbol. A complete list of allowed values for this argument is given in Appendix Symmetry.

To disable symmetry (\(C_1\) symmetry group) you can specify:

The tolerance (absolute deviation in the Cartesian coordinates) for atomic positions being symmetry equivalent. The same tolerance applies to check the mapping of fragments on attached fragment files with the actual fragments. If the tolerance is specified it is interpreted in the chosen unit of length (units). The default tolerance is 0.001 Angstrom and the maximum is 0.1 a.u.

Input atomic coordinates that are slightly (within the tolerance) off from their correct positions are adjusted by the program.

The point group symmetry specified in input with a Schönfliess type symbol puts restrictions on the orientation of the atomic system. Unless the input-specified symmetry equals the true symmetry of the nuclear frame (in which case ADF will adjust the orientation of the molecule, if necessary), the user must take care of this by supplying the Cartesian coordinates (in the appropriate orientation).