Source code for gamdpy.interactions.potential_functions.exponential_repulsion

import numba
from math import exp

[docs] def exponential_repulsion(dist, params): r""" The exponential repulsion pair potential (EXP) .. math:: u(r) = \varepsilon \exp(-r/\sigma) Parameters ---------- dist : float Distance between particles params : array-like σ, ε """ # Extract parameters sigma = numba.float32(params[0]) # σ epsilon = numba.float32(params[1]) # ɛ # Helper variables one = numba.float32(1.0) # 1 kappa = one/sigma # κ = 1/σ kappa_dist = kappa * dist # κ·r inv_dist = one / dist # 1/r exp_kappa_dist = epsilon * exp(-kappa_dist) # ɛ·exp(-κ·r) # u(r) = ɛ·exp(-κ·r) u = exp_kappa_dist # -u'(r)/r = ɛ·exp(-κ·r)·κ/r s = exp_kappa_dist * kappa * inv_dist # u''(r) = ɛ·exp(-κ·r)·κ² d2u_dr2 = exp_kappa_dist * kappa * kappa return u, s, d2u_dr2