jax_md_mod.custom_energy.stillinger_weber_energy

jax_md_mod.custom_energy.stillinger_weber_energy#

stillinger_weber_energy(dr, d_vect, mask=None, a=7.049556277, b=0.6022245584, p=4, lam=21.0, epsilon=2.16826, gamma=1.2, sigma=2.0951, cutoff=3.77118, three_body_strength=1.0)[source]#

Computes the stiling weber potential.

The Stillinger-Weber (SW) potential [1] is commonly used to model silicon and similar systems. This function uses the default SW parameters from the original paper. The SW potential was originally proposed to model diamond in the diamond crystal phase and the liquid phase, and is known to give unphysical amorphous configurations [2] [3]. For this reason, we provide a three_body_strength parameter. Changing this number to $1.5$ or $2.0$ has been known to produce more physical amorphous phase, preventing most atoms from having more than four nearest neighbors. Note that this function currently assumes nearest-image-convention.

References

Parameters:
  • dr – A ndarray of pairwise distances between particles

  • d_vect – An ndarray of pairwise displacements between particles

  • a – A scalar that determines the scale of two-body term

  • b – Factor for radial power term

  • p – Power in radial interaction

  • lam – A scalar that determines the scale of the three-body term

  • epsilon – A scalar that sets the energy scale

  • gamma – Exponential scale in three-body term

  • sigma – A scalar that sets the length scale

  • cutoff – Cut-off value defined as sigma * a

  • three_body_strength – A scalar that determines the relative strength of the angular interaction

  • mask – ndarray of size dr masking non-existing neighbors in neighborlist (if applicable)

Returns:

The Stilinger-Weber energy for a snapshot.