Atomic environment descriptors
Multiple atomic environment descriptors (symmetry functions) are already
implemented. Use them via the symfunction_short
keyword (see
this page).
Original atom-centered symmetry functions
Taken from the original 2007 paper
J. Behler and M. Parrinello, Phys. Rev. Lett. 98, 146401 (2007)
these are the basic radial and angular symmetry functions:
Radial symmetry function (
nnp::SymFncExpRad
):\[G^2_i = \sum_{j \neq i} \mathrm{e}^{-\eta(r_{ij} - r_s)^2} f_c(r_{ij})\]Angular symmetry function (
nnp::SymFncExpAngn
):\[\begin{split}G^3_i = 2^{1-\zeta} \sum_{\substack{j,k\neq i \\ j < k}} \left( 1 + \lambda \cos \theta_{ijk} \right)^\zeta \mathrm{e}^{-\eta( r_{ij}^2 + r_{ik}^2 + r_{jk}^2 ) } f_c(r_{ij}) f_c(r_{ik}) f_c(r_{jk})\end{split}\]
Atom-centered symmetry functions (continued)
In 2011 more symmetry functions were presented here:
J. Behler, J. Chem. Phys. 134, 074106 (2011)
Amongst others a variant of the above angular symmetry function was introduced:
Modified angular symmetry function (
nnp::SymFncExpAngw
, for historic reasons the type number here is 9):\[\begin{split}G^9_i = 2^{1-\zeta} \sum_{\substack{j,k\neq i \\ j < k}} \left( 1 + \lambda \cos \theta_{ijk} \right)^\zeta \mathrm{e}^{-\eta( r_{ij}^2 + r_{ik}^2 ) } f_c(r_{ij}) f_c(r_{ik})\end{split}\]
Note
The implementation of both angular symmetry functions described above also supports an additional shift parameter \(r_s\) in the exponential function (analogous to the radial symmetry function or the weighted symmetry functions below). Specifying the shift parameter is optional, omitting it will reproduce the formulae given above.
Weighted atom-centered symmetry functions
In 2018 an approach to overcome limitiations for systems with many different atom species was put forward here:
Here two variants of the original symmetry functions were presented:
Weighted radial symmetry function (
nnp::SymFncExpRadWeighted
)\[G^{12}_i = \sum_{j \neq i} Z_j \, \mathrm{e}^{-\eta(r_{ij} - r_s)^2} f_c(r_{ij})\]Weighted angular symmetry function (
nnp::SymFncExpAngnWeighted
)\[\begin{split}G^{13}_i = 2^{1-\zeta} \sum_{\substack{j,k\neq i \\ j < k}} Z_j Z_k \, \left( 1 + \lambda \cos \theta_{ijk} \right)^\zeta \mathrm{e}^{-\eta \left[ (r_{ij} - r_s)^2 + (r_{ik} - r_s)^2 + (r_{jk} - r_s)^2 \right] } f_c(r_{ij}) f_c(r_{ik}) f_c(r_{jk})\end{split}\]
Low-cost polynomial symmetry functions with compact support
In 2020 a new set of computationally efficient symmetry functions was proposed here:
Bircher, M. P.; Singraber, A.; Dellago, C., arXiv:2010.14414 [cond-mat, physics:physics] (2020).
In contrast to the above definitions these polynomial symmetry functions do not require the computation of expensive exponential terms because they are based solely on polynomial window functions in the radial and angular domain. As shown in the publication a significant increase in performance ensues without sacrificing descriptive power. Furthermore, they are well suited to describe complex atomic environments because their angular sensitivity can be easily controlled via the free hyperparameters. The following variants of polynomial symmetry functions are implemented (here \(C(x, x_\text{low}, x_\text{high})\) is a function with compact support \(\left[x_\text{low}, x_\text{high}\right]\)):
Radial symmetry function (
nnp::SymFncCompRad
)\[G^{20}_i = \sum_{\substack{j \neq i}} C(r_{ij}, r_l, r_c)\]Angular symmetry function, narrow variant (
nnp::SymFncCompAngn
)\[\begin{split}G^{21}_i = \sum_{\substack{j,k\neq i \\ j < k}} C(r_{ij}, r_l, r_c) C(r_{ik}, r_l, r_c) C(r_{jk}, r_l, r_c) C(\theta_{ijk}, \theta_l, \theta_r)\end{split}\]Angular symmetry function, wide variant (
nnp::SymFncCompAngw
)\[\begin{split}G^{22}_i = \sum_{\substack{j,k\neq i \\ j < k}} C(r_{ij}, r_l, r_c) C(r_{ik}, r_l, r_c) C(\theta_{ijk}, \theta_l, \theta_r)\end{split}\]Weighted radial symmetry function (
nnp::SymFncCompRadWeighted
)\[G^{23}_i = \sum_{\substack{j \neq i}} Z_j C(r_{ij}, r_l, r_c)\]Weighted angular symmetry function, narrow variant (
nnp::SymFncCompAngnWeighted
)\[\begin{split}G^{24}_i = \sum_{\substack{j,k\neq i \\ j < k}} Z_j Z_k C(r_{ij}, r_l, r_c) C(r_{ik}, r_l, r_c) C(r_{jk}, r_l, r_c) C(\theta_{ijk}, \theta_l, \theta_r),\end{split}\]Weighted angular symmetry function, wide variant (
nnp::SymFncCompAngwWeighted
)\[\begin{split}G^{25}_i = \sum_{\substack{j,k\neq i \\ j < k}} Z_j Z_k C(r_{ij}, r_l, r_c) C(r_{ik}, r_l, r_c) C(\theta_{ijk}, \theta_l, \theta_r),\end{split}\]