# potfit wiki

open source force-matching

### Sidebar

User Guide

Examples

Potential Databases

More

potfiles:format0

# Potential File Format 0

## Format specification

The potential format 0 is used for analytical potentials exclusively. All header tokens are supported except for the #G line.

Each analytic potential function has to be specified as follows:

type identifier
cutoff value
param_1 value min max
param_2 value min max
...

#### type

The type keyword has to be followed by the unique identifier for the analytic function. To enable the smooth cutoff option _sc can be added at the end of the identifer (this also adds another parameter to the end potential function!).

Examples:

# plain Lennard-Jones potential
type lj
epsilon 1 0 2
sigma 1 0 2

# Lennard-Jones with smooth cutoff option enabled
type lj_sc
epsilon 1 0 2
sigma 1 0 2
h 1 0 2

All list of all supported analytic potential functions is available here.

#### cutoff

The cutoff keyword is required to specify the cutoff radius, which may be different for each potential function. The minimal distance for each potential function is calculated by potfit from the configuration file and will be present in the output potential as a comment after the cutoff line.

cutoff 7.0
# rmin 2.2

This indicates the minimum neighbor distance for this interaction is 2.2 units of distance.

#### parameter values

After the keywords 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.

Giving three times the same value will remove this parameter from the optimization table and use exactly that value when calculating forces/energies. This is usually called a fixed parameter.

### Global parameters

potfit supports global parameters, which can occur in different potentials. With this feature it is possible for any potential to “share” parameters with each other. To use them, you need a section starting with global <n> after the header in your potential file, where n is the number of global parameters. The format for the parameters is the same as for normal parameters: name value min max. If you want to use a global parameter in a potential, use the name of the global parameter and add an exclamation mark.

#F 0 3
#C Mg Zn
#I 0 0 0
#E

global 2
glob1 1 0 2
glob2 2 0 5

type lj
cutoff 8
glob1!
glob2!

type lj
cutoff 8
glob2!
glob1!

### Smooth Cutoff

The smooth cutoff function is very important for analytic potentials since it ensures that the potential and its gradient vanish at the desired cutoff radius. Therefore the potential is multiplied with a cutoff function $\Psi$.

$$V_{SC}(r)=\Psi\left(\frac{r-r_c}{h}\right)V(r)\qquad\text{where}\qquad\Psi(x)=\frac{x^4}{1+x^4}$$

To enable the smooth cutoff for a potential, _sc has to be added to the potential identifier.

type lj_sc
cutoff 7
epsilon 0.1 0 1
sigma 2.5 1 4
h 1 0 2

Potentials fitted with the _sc option will have an additional parameter h at the end. If you omit it, it will be kept fixed at a value of 1.

## Examples

format_0_example.txt
#F 0 1
#C Al
## Al-Al
#E

type lj_sc
cutoff 7.000000
# rmin 2.159655
epsilon 2100.0633799282 0.500000 10000.000000
sigma 10.3066290006 1.000000 20.000000
h 1 0.5 2

Many more examples are available in the potential examples section.