The Lennard-Jones Potential

Creates the Lennard-Jones pairwise interaction structure which can then be fitted to point pattern data.

models, spatial

In a pairwise interaction point process with the Lennard-Jones pair potential, each pair of points in the point pattern, a distance $d$ apart, contributes a factor $$\exp \left{ - \left( \frac{\sigma}{d} \right)^{12} + \tau \left( \frac{\sigma}{d} \right)^6 \right}$$ to the probability density, where $\sigma$ and $\tau$ are positive parameters to be estimated.

See Examples for a plot of this expression. This potential causes very strong inhibition between points at short range, and attraction between points at medium range. Roughly speaking, $\sigma$ controls the scale of both types of interaction, and $\tau$ determines the strength of attraction. The potential switches from inhibition to attraction at $d=\sigma/\tau^{1/6}$. Maximum attraction occurs at distance $d = (\frac 2 \tau)^{1/6} \sigma$ and the maximum achieved is $\exp(\tau^2/4)$. Interaction is negligible for distances $d > 2 \sigma \max{1,\tau^{1/6}}$.

This potential is used (in a slightly different parameterisation) to model interactions between uncharged molecules in statistical physics. The function ppm(), which fits point process models to point pattern data, requires an argument of class "interact" describing the interpoint interaction structure of the model to be fitted. The appropriate description of the Lennard-Jones pairwise interaction is yielded by the function LennardJones(). See the examples below. The ``canonical regular parameters'' estimated by ppm are $\theta_1 = \sigma^{12}$ and $\theta_2 = \tau \sigma^6$.


  • An object of class "interact" describing the Lennard-Jones interpoint interaction structure.

See Also

ppm, pairwise.family, ppm.object

  • LennardJones
X <- rpoispp(100)
   ppm(X, ~1, LennardJones(), correction="translate")
   # Typically yields very small values for theta_1, theta_2
   # so the values of sigma, tau may not be sensible
   # How to plot the pair potential function (exponentiated)
   plotLJ <- function(sigma, tau) {
        dmax <- 2 * sigma * max(1, tau)^(1/6)
        d <- seq(dmax * 0.0001, dmax, length=1000)
        plot(d, exp(- (sigma/d)^12 + tau * (sigma/d)^6), type="l",
                main=substitute(list(sigma==s, tau==t),
        abline(h=1, lty=2)
Documentation reproduced from package spatstat, version 1.15-2, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.