The force constant potential

Jump to navigation Jump to search

Special requirements

  • When you use this potential, currently you need to add -DUSE_FCP in the makefile. In this case, you cannot use any other potential.
  • Neighbor list is not used for this potential, but you still need to specify the MN and r_c parameters in You can choose any reasonable values for them and just remember that they will not be used for calculating the forces and related quantities.

Potential form

In the force constant potential, the potential energy is calculated as a Taylor expansion in terms of the atomic displacements [math]\{u_i^{a}\}[/math] relative to a set of reference (equilibrium) positions as $$ U = U_2 + U_3 + U_4 + U_5 + U_6 + \cdots; $$ $$ U_2 = \frac{1}{2!} \sum_{ij} \sum_{ab} \Phi_{ij}^{ab} u_{i}^{a} u_{j}^{b}; $$ $$ U_3 = \frac{1}{3!} \sum_{ijk} \sum_{abc} \Phi_{ijk}^{abc} u_{i}^{a} u_{j}^{b} u_{k}^{c}; $$ $$ U_4 = \frac{1}{4!} \sum_{ijkl} \sum_{abcd} \Phi_{ijkl}^{abcd} u_{i}^{a} u_{j}^{b} u_{k}^{c} u_{l}^{d}; $$ $$ U_5 = \frac{1}{5!} \sum_{ijklm} \sum_{abcde} \Phi_{ijklm}^{abcde} u_{i}^{a} u_{j}^{b} u_{k}^{c} u_{l}^{d} u_{m}^{e}; $$ $$ U_6 = \frac{1}{6!} \sum_{ijklmn} \sum_{abcdef} \Phi_{ijklmn}^{abcdef} u_{i}^{a} u_{j}^{b} u_{k}^{c} u_{l}^{d} u_{m}^{e} u_{n}^{f}. $$ Here, [math]\Phi_{ij}^{ab}[/math], [math]\Phi_{ijk}^{abc}[/math], [math]\Phi_{ijkl}^{abcd}[/math], [math]\Phi_{ijklm}^{abcde}[/math], and [math]\Phi_{ijklmn}^{abcdef}[/math] are the second-order, third-order, fourth-order, fifth-order, and sixth-order force constants. The indices [math]i[/math], [math]j[/math], [math]k[/math], [math]l[/math], [math]m[/math], and [math]n[/math] refer to the atoms and can take integer values from 0 to [math]N-1[/math], where [math]N[/math] is the number of atoms in the system. The indices [math]a[/math], [math]b[/math], [math]c[/math], [math]d[/math], [math]e[/math], and [math]f[/math] refer to the axes in the Cartesian coordinate system and can take integer values [math]0[/math], [math]1[/math], and [math]2[/math], which correspond to the [math]x[/math], [math]y[/math], and [math]z[/math] axes, respectively. In GPUMD, we only consider force constants up to the sixth order.

Potential files

One needs to prepared quite a few files related to this potential, but they can be conveniently generated by using the hiPhive package [1,2], except for the driver potential file below (which is very easy to prepare).

The driver potential file

The driver potential file for this potential model reads

fcp number_of_atom_types 
  • fcp is the name of this potential and tells the code that we are using the force constant potential.
  • number_of_atom_types is the number of atom types defined in the file.
  • highest_order is the highest order of the force constants used in the potential. For example, when highest_order is 4, second-order, third-order, and fourth-order forces constants will be used (and should be prepared).
  • path_to_force_constant_files is the path to the force constant files (see below). Important convention: Write something like /path/to/your/folder instead of /path/to/your/folder/. That is, there should be no / after the folder name.

The force constant files

The force constant data should be prepared in some files named as

These files should be in the folder you specified in the driver potential file (see above). If you only consider force constants up to the 4th order, you don't need the files with numbers 5 and 6. These files can be generated by the hiPhive package [1]. We therefore do not discuss the formats of these files.

The equilibrium position file

Because this potential is defined in terms of the atom displacements, one has to define the equilibrium (reference) positions of the atoms in the system. A file called is used for this purpose. This file should be in the folder you specified in the driver potential file (see above). The format of this file is:

x_0 y_0 z_0
x_1 y_1 z_1
x_2 y_2 z_2
x_3 y_3 z_3

That is, each line gives the position of one atom. The order of the atoms should be consistent with that in the file. The coordinates are in units of angstrom. This file can be generated by the hiPhive package [1].


  • Ref. [3] needs to be cited for publications using this potential.


  • [1] The hiPhive package:
  • [2] Fredrik Eriksson, Erik Fransson, and Paul Erhart, The Hiphive Package for the Extraction of High‐Order Force Constants by Machine Learning, Adv. Theory. Sim., 1800184 (2019).
  • [3] Joakim Brorsson, Arsalan Hashemi, Zheyong Fan, Erik Fransson, Fredrik Eriksson, Martti Puska, Tapio Ala-Nissilä, Arkady V. Krasheninnikov, Hannu-Pekka Komsa, and Paul Erhart, In preparation.