Source code for gamdpy.interactions.potential_functions.harmonic_bond_function

import numpy as np
import numba
import math
from numba import cuda

[docs] def harmonic_bond_function(dist: float, params: np.ndarray) -> tuple: """ Harmonic bond potential .. math:: u(r) = \\frac{1}{2} k (r - r_0)^2 Parameters ---------- dist : float Distance between particles params : array-like r₀, k Returns ------- u : float Potential energy s : float Force multiplier, -u'(r)/r umm : float Second derivative of potential energy See Also -------- gamdpy.Bonds """ length = params[0] strength = params[1] u = numba.float32(0.5) * strength * (dist - length) ** 2 s = -strength * (dist - length) / dist umm = strength return u, s, umm # U(r), s == -U'(r)/r, U''(r)