Atomic coordinates
******************

See also

* Geometry, System definition section of the AMS manual


Cartesian
=========

You can define the input atomic coordinates in the "Atoms" sub-block
key of the "System" block in AMS. Note that in AMS you cannot add an
integer to number the atoms. Starting from AMS2026, the so-called dot
notation for naming atoms (like H.1 and H.2) is no longer supported.
An alternative to the dot notation for naming atoms may be the use of
different regions or the use of explicit different atomic fragments.

   System
      Atoms
         AtomType Coords {adf.F=Fragment}
         ...
      End
   End

"AtomType"
   The name of an *atom type*. Normally it must be the standard one-
   or two-character symbol for the chemical element (*e.g.* H, He, Li,
   ...). Note that starting from AMS2026 it may no longer be appended
   with .text. Thus the dot notation is no longer supported: using,
   for example, "Mn.3" or "Cu.dz-new" will cause errors in AMS2026. An
   alternative to the dot notation for naming atoms may be the use of
   different regions or the use of explicit different atomic
   fragments. Ghost atoms are an exception; they must be denoted with
   Gh.atom, for example, Gh.C, see the section on ghost atoms.

   **Note**: *Atom type* is not identical to *chemical element*. An
   atom type is defined by all characteristics of the basic atom to
   which it 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.

"Coords"
   The xyz coordinates of the atom. Example:

      ATOMS
         O  0.000000  0.000000   0.000000
         H  0.758602  0.000000   0.504284
         H  0.758602  0.000000  -0.504284
      END

"adf.F=Fragment"
   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 fragment types in the molecule. The integer
   n, after the pipe "|", counts the individual fragments of that
   type. The numbering suffix "|n" is not required if there is only
   one fragment of that type.

   When "adf.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, as discussed below,
   the name of the fragment type as it is defined under atoms
   (explicitly with the "adf.f=Fragment" 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 type names that
   differ only by case: at various places in the program fragment type
   names are compared in a case-insensitive way.


Z-Matrix
========

It is possible to specify the input geometry as a Z-Matrix.

   System
      Atoms Z-Matrix
         C
         H   1 1.089000
         H   1 1.089000  2  109.4710
         H   1 1.089000  2  109.4710  3  120.0000
         H   1 1.089000  2  109.4710  3 -120.0000
      End
   End

Only the first atom may be a dummy atom in a Z-matrix. Use the
chemical symbol XX for the dummy atom.


Orientation of Local Atomic Coordinates
=======================================

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

   ATOMS {type of coordinates}
      AtomType coordinates {adf.F=fragment} {Z="xx yy zz"} {X="xx yy zz"}
      ...
   End

Except for the z= and x= options, all aspects have already been
discussed.

"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 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 \vec{z}  \times \vec{x}. This is used for analysis (see
   orientation of the z-axis).


Symmetry Key
============

Note that this is a specification of the "Symmetry" key in the Engine
ADF part of the input. You can use the System%Symmetrize key in the
AMS part of the input, such that AMS will symmetrize the coordinates.
ADF will not adjust coordinates. Thus, input atomic coordinates that
are off from their correct positions, even if they are only slightly
off, are not adjusted by ADF. There exists a System%Symmetry key in
the AMS part of the input, which can be used with the
System%Symmetrize key to symmetrize coordinates. Note that the
symmetry used in AMS does not have to be the same as is used in ADF.

The point group symmetry and symmetry tolerance can be supplied.

   Symmetry [AUTO | NOSYM | ATOM | C(LIN) | D(LIN) | C(I) | C(S) | C(2) | C(2V) | C(3V) | C(4V) | 
             C(5V) | C(6V) | C(7V) | C(8V) | C(2H) | D(2) | D(3) | D(4) | D(5) | D(6) | D(7) | 
             D(8) | D(2D) | D(3D) | D(4D) | D(5D) | D(6D) | D(7D) | D(8D) | D(2H) | D(3H) | 
             D(4H) | D(5H) | D(6H) | D(7H) | D(8H) | O(H) | T(D)]

"Symmetry"
   Type:
      Multiple Choice

   Default value:
      AUTO

   Options:
      [AUTO, NOSYM, ATOM, C(LIN), D(LIN), C(I), C(S), C(2), C(2V),
      C(3V), C(4V), C(5V), C(6V), C(7V), C(8V), C(2H), D(2), D(3),
      D(4), D(5), D(6), D(7), D(8), D(2D), D(3D), D(4D), D(5D), D(6D),
      D(7D), D(8D), D(2H), D(3H), D(4H), D(5H), D(6H), D(7H), D(8H),
      O(H), T(D)]

   Description:
      Use (sub)symmetry with this Schoenflies symbol. Can only be used
      for molecules. Orientation should be correct for the
      (sub)symmetry. Coordinates must be symmetric within
      SymmetryTolerance.

   SymmetryTolerance float

"SymmetryTolerance"
   Type:
      Float

   Default value:
      1e-07

   Description:
      Tolerance used to detect symmetry in the system. If symmetry
      Schoenflies symbol is specified, the coordinates must be
      symmetric within this tolerance.

The point group symmetry specified in input with a Schönflies type
symbol puts restrictions on the orientation of the atomic system. If
symmetry is specified, you must take care of supplying the *Cartesian*
coordinates in the appropriate orientation.
