many_body¶
Triplet force classes apply a force and virial on every particle in the simulation state commensurate with the potential energy:
\[U_\mathrm{many-body} = \frac{1}{2} \sum_{i=0}^\mathrm{N_particles-1}
\sum_{j \ne i}
\sum_{j \ne k} U(\vec{r}_{ij}, \vec{r}_{ik})\]
where \(\vec{r}_{ij} = \mathrm{minimum\_image}(\vec{r}_j - \vec{r}_i)\).
Triplet
applies a short range cutoff for performance and assumes that both
\(U(\vec{r}_{ij}, \vec{r}_{ik})\) and its derivatives are 0 when
\(r_{ij} > r_\mathrm{cut}\) or \(r_{ik} > r_\mathrm{cut}\).
Specifically, the force \(\vec{F}\) applied to each particle \(i\) is:
\[\begin{split}\vec{F_i} =
\begin{cases}
-\nabla V(\vec r_{ij}, \vec r_{ik})
& r_{ij} < r_{\mathrm{cut}}
\land r_{ik} < r_{\mathrm{cut}} \\
0 & \mathrm{otherwise}
\end{cases}\end{split}\]
The per particle energy terms are:
\[U_i = \frac{1}{2} \sum_{j \ne i}
\sum_{j \ne k} U(\vec{r}_{ij}, \vec{r}_{ik})
[r_{ij} < r_{\mathrm{cut}} \land r_{ik} < r_{\mathrm{cut}}]\]
Classes