jaxdem.forces.lennardjones#

Classes

LennardJones([laws])

Lennard-Jones (LJ) 12-6 interaction with a per-pair cutoff and energy shift.

class jaxdem.forces.lennardjones.LennardJones(laws: Tuple[ForceModel, ...] = ())[source]#

Bases: ForceModel

Lennard-Jones (LJ) 12-6 interaction with a per-pair cutoff and energy shift.

Uses material-pair parameter:
  • epsilon_eff[mi, mj]

The length scale \(\sigma_{ij}\) is derived from particle radii (like spring.py):

\[\sigma_{ij} = R_i + R_j\]

Potential (for \(r < r_c = 2.5 \sigma_{ij}\)):

\[U(r) = 4 \epsilon \left[\left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] - U(r_c)\]

else:

\[U(r) = 0\]

Force (for \(r < r_c\)):

\[\mathbf{F} = 24 \epsilon \left(2 \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6\right) \frac{1}{r^2}\, \mathbf{r}_{ij}\]
RC_FACTOR: ClassVar[float] = 2.5#
static force(i: int, j: int, pos: jax.Array, state: State, system: System) Tuple[jax.Array, jax.Array][source][source]#
static energy(i: int, j: int, pos: jax.Array, state: State, system: System) jax.Array[source][source]#
property required_material_properties: Tuple[str, ...][source]#

A static tuple of strings specifying the material properties required by this force model.

These properties (e.g., ‘young_eff’, ‘restitution’, …) must be present in the System.mat_table for the model to function correctly. This is used for validation.