potfit wiki

open-source force-matching

User Tools

Site Tools


potential_files

Potential files


The interactions currently supported by potfit are either defined in terms of tabulated functions or given by analytic parameters. Typical functions are central pair potentials, which depend on the distance of two atoms and the two atom types involved. For tabulated potentials such functions are given with steps which are equidistant in the distance, which is the fundamental difference to IMD, where those functions are tabulated with steps equidistant in the square of the distance. Each potential file consists of a header and a body, which are fundamentally different for tabulated and analytic potentials.

The number of potentials required for a specific interaction is given on the bottom of each interaction page.

Potential File Header

The header is comparable to headers in IMD. It specifies in which format the current file is, and how many data columns the tabulated function has for each argument. The number of data columns depends on the potential model used. The header has the following format:

## this is just a comment line
#F 3 n
#T <TYPE>
#C Mg Zn
#I 0 1 .... n entries (this line is optional)
#G 2 3 .... n entries (this line is optional)
## this is another comment line
#E this is the very last header line

Header lines start with the hash character #. If the second character is F, then the format specifier 0, 3 or 4 (to distinguish from IMD potential files, format types 1 or 2) and the number n of data columns of the functions are read from the rest of the line. The very last header line must have a character E at the second position. Header lines with a second character different from C, F, E, T or G are treated as comments, but it is recommended that such lines start with two # characters.

The line starting with #T specifies the type of potential this file contains. This is very helpful if you are dealing with different potentials. <TYPE> can be PAIR, EAM, ADP or ELSTAT.

The line #I defines whether a whole potential function should be kept constant during a force matching run. Each digit corresponds to one function table, so there should be n digits in total. A value of 0 allows potfit to change the corresponding potential function, a value of 1 keeps it fixed. This is useful for example if a third component is to be added to a binary system and only the additional potentials are to be allowed to change.

The line #G specifies whether the gradient of the interpolation splines should be treated as fixed or as an additional degree of freedom. Each digit corresponds to one function table, so there should be n digits in total. The information is bit-coded, 0 declares both lower and upper gradient fixed, 1 allows adjusting the gradient at the upper end, 2 at the lower end, and 3 at both ends. This does not apply to analytic potentials.

The line #C specifies the chemical elements the potentials belong to. Currently this line is not read for potentials, it is only given in the output to facilitate the handling of potential files. In addition there will also be a comment on how the potentials are ordered, for the ternary system AlPdMn a header for an EAM-potential could look like the following:

#F 0 12
#C Al Pd Mn
## Al-Al Al-Pd Al-Mn Pd-Pd Pd-Mn Mn-Mn Al Pd Mn Al Pd Mn
#I 0 0 0 0 0 0 0 0 0 0 0 0
#E

The order of the different potential functions for a specific potential can be found on the corresponding potential page.

Format 0

The potential format 0 is used for analytical potentials exclusively. All of the above apply here, except for the #G line.

Every analytic potential has to be specified as follows:

type identifier
cutoff value
# rmin 1.0
p_1 value min max
p_2 value min max
...

The type keyword has to be followed by the unique identifier for your potential. You can also enable the smooth cutoff option by adding a _sc at the end. After the cutoff keyword the cutoff radius for this potential has to be given. This is independent for every potential and can thus be different for different potentials. The next line starting with # is a comment which is written by potfit. It indicates the minimum neighbor distance for this interaction. Following these lines, the values for the analytic parameters have to be specified. Each line starts with an identifier for that parameter followed by the starting value, the minimum and maximum value for that parameter. The order of these parameters is fixed, for the implemented analytic functions the order can be found here.

A sample format 0 potential file for a binary system with an EAM potential is available here.

Format 3

In a potential file in format 3, each data column has its own range and spacing. Sampling points are equidistant in the atomic distance r or (when using EAM-type interactions) electron density n. If we have n data columns, the file starts with n lines of the form

x_begin x_end steps

specifying the start, end, and the number of function values in each data set. n data columns. The argument x is either the atom distance, or the host electron density. These n lines are then followed by n blocks with the function values, one for each atom type pair or atom type. The spacing of function values is computed from the begin, end, and number of function values of the corresponding table and can be different for the different data columns.

If the #G header line is specified, each data block must be preceded by two values specifying the gradient of the function at the lower and upper boundaries. A value of 10^30 or higher triggers the usage of natural splines (curvature 0 at boundaries). You should not make the gradient variable at boundaries where natural splines are specified. This will lead to undesired results.

For potential functions that are a function of distance (e.g. pair potentials, EAM transfer functions), a smooth cutoff at the final sampling value is assumed and the value is not varied.

A sample format 3 potential file for a binary system for an EAM potential is available with or without the #G header line.

Format 4

As with potential files in format 3 each data column has its own spacing. But with potential format 4 the requirement that the sampling points be equidistant is dropped. Arbitrarily spaced sampling points are possible, but the sampling points have to be given in order.

Preceding the data columns is a header with one line per column, containing the number of sampling points in the corresponding column. Seperated by blank lines then the data columns follow. Each of the columns has the form

r_0     f(r_0)
r_1     f(r_1)
...
r_steps f(r_steps)

Please note that $r_0 < r_1 < \ldots < r_{steps}$ is required. The order of the columns is the same as with format 3.

Similarly as for format 3, for potential functions that are a function of distance (e.g. pair potentials, EAM transfer functions), a smooth cutoff at the final sampling value is assumed and the value is not varied.

A sample format 4 potential file for a binary system (EAM potential) is available here (with the #G header line).

potential_files.txt · Last modified: 2017/10/24 19:00 by pbro