atomicrex supports a number of different potential types that are listed at the end of this section and described in the following sections. The potential type(s) are specified in the <potentials> block of the main input file. It can be useful to move this block to a separate file and incorporate it via XML inclusions as demonstrated in this example. The <potentials> can comprise several subblocks, which define several different potentials. It is thereby possible to combine (superimpose) several potential types. The potential specific blocks share several attributes: the id attribute is used to set a unique identifier for each potential; species-a and species-b identify which atom types the potential is dealing with. The use of the attributes is illustrated in the following code segment:

  <eam id="Al" species-a="Al" species-b="Al">
  <eam id="SiAl" species-a="Si" species-b="Al">
  <abop id="Si" species-a="Si" species-b="Si">

Each potential is associated with a set of parameters that represent the degrees of freedom of the potential. The user has to specify which parameters are allowed to vary during the optimization process (and are thus “dynamic” DOFs as opposed to “static” DOFs). This is accomplished by including a <fit-dof> block inside the respective potential block that contains a list of elements named by the parameter they are associated with. These elements have several attributes:

  • The enabled attribute allows one to switch the DOF from dynamic (False) to static (True). This allows one to include or exclude a certain parameter from the fit.

  • The reset attribute specifies whether the DOF is reset to the initial value specified by the user each time a new relaxation round is performed.

  • The min and max attributes specify the range, within which the parameter is allowed to vary.

  • The tag attribute is used by some potential forms such as Tersoff and analytic bond-order potentials to associate parameters with certain mixed interactions.

A <fit-dof> block could thus look as follows:

  <twomu enabled="True" min="0.1" max="2.0">
  <beta enabled="False">

More examples can be found in the following sections and in the examples section.