4.18. Interpolation or combination with a pairwise potential TensorFlow

Note

Supported backends: TensorFlow TensorFlow

4.18.1. Theory

In applications like the radiation damage simulation, the interatomic distance may become too close, so that the DFT calculations fail. In such cases, the DP model that is an approximation of the DFT potential energy surface is usually replaced by an empirical potential, like the Ziegler-Biersack-Littmark (ZBL) screened nuclear repulsion potential in the radiation damage simulations. The DeePMD-kit package supports the interpolation between DP and an empirical pairwise potential

\[ E_i = (1-w_i) E_i^{\mathrm{DP}} + w_i (E_i^0 + E_i^{\mathrm{pair}}),\]

where the \(w_i\) is the interpolation weight and the \(E_i^{\mathrm{pair}} \) is the atomic contribution due to the pairwise potential \(u^{\mathrm{pair}}(r)\), i.e.

\[ E_i^{\mathrm{pair}} = \sum_{j\in n(i)} u^{\mathrm{pair}}(r_{ij}).\]

The interpolation weight \(w_i\) is defined by

\[\begin{split} w_i = \begin{cases} 1, & \sigma_i \lt r_a, \\ u_i^3 (-6 u_i^2 +15 u_i -10) +1, & r_a \leq \sigma_i \lt r_b, \\ 0, & \sigma_i \geq r_b, \end{cases}\end{split}\]

where \(u_i = (\sigma_i - r_a ) / (r_b - r_a)\). \(E_i^0\) is the atom energy bias. In the range \([r_a, r_b]\), the DP model smoothly switched off and the pairwise potential smoothly switched on from \(r_b\) to \(r_a\). The \(\sigma_i\) is the softmin of the distance between atom \(i\) and its neighbors,

\[ \sigma_i = \dfrac {\sum\limits_{j\in n(i)} r_{ij} e^{-r_{ij} / \alpha_s}} {\sum\limits_{j\in n(i)} e^{-r_{ij} / \alpha_s}},\]

where the scale \(\alpha_s\) is a tunable scale of the interatomic distance \(r_{ij}\). The pairwise potential \(u^{\textrm{pair}}(r)\) is defined by a user-defined table that provides the value of \(u^{\textrm{pair}}\) on an evenly discretized grid from 0 to the cutoff distance.[1]

DeePMD-kit also supports combination with a pairwise potential:

\[ E_i = E_i^{\mathrm{DP}} + E_i^{\mathrm{pair}},\]

4.18.2. Table file

The table file should be a text file that can be read by numpy.loadtxt(). The first column is the distance between two atoms, where upper range should be larger than the cutoff radius. Other columns are two-body interaction energies for pairs of certain types, in the order of Type_0-Type_0, Type_0-Type_1, …, Type_0-Type_N, Type_1-Type_1, …, Type_1-Type_N, …, and Type_N-Type_N.

The interaction should be smooth at the cut-off distance.

Note

In instances where the interaction at the cut-off distance is not delineated within the table file, extrapolation will be conducted utilizing the available interaction data. This extrapolative procedure guarantees a smooth transition from the table-provided value to 0 whenever feasible.

4.18.3. Interpolation with a short-range pairwise potential

"model": {
  "use_srtab": "H2O_tab_potential.txt",
  "smin_alpha": 0.1,
  "sw_rmin": 0.8,
  "sw_rmax": 1.0,
  "_comment": "Below uses a normal DP model"
}

sw_rmin and sw_rmax must be smaller than the cutoff radius of the DP model.

4.18.4. Combination with a pairwise potential

To combine with a pairwise potential, use the linear model:

"model": {
  "type": "linear_ener",
  "weights": "sum",
  "models": [
    {
      "_comment": "Here uses a normal DP model"
    },
    {
      "type": "pairtab",
      "tab_file": "dftd3.txt",
      "rcut": 10.0,
      "sel": 534
    }
  ]
}

The rcut can be larger than that of the DP model.