where rij=minimum_image(rj−ri).
Pair applies a short range cutoff using a hoomd.md.nlist.NeighborList for
performance and assumes that both U(r) and its derivatives are 0 when
rij≥rcut. Pair also ignores particle pairs that are
excluded in the neighbor list.
Specifically, the force F on each pair of particles i,j
is:
F={−∇Upair(r)0r<rcutr≥rcut
where the cutoff radius rcut is given by Pair.r_cut.
Tip
Set Pair.r_cut to 0 to skip computations for non-interacting pairs.
Pair splits half the energy from each pair interaction onto particles
i and j:
The XPLOR smoothing function S(r) ensures that both the potential energy
and the force going smoothly to 0 at r=rcut, reducing the
rate of energy drift in long simulations. ron controls the
point at which the smoothing starts. Set it to modify only the tail of the
potential. The WCA potential and it’s first derivative already go smoothly to 0
at the cutoff, so there is no need to apply the smoothing function. In such
mixed systems, set ron to a value greater than
rcut for those pairs that interact via WCA in order to
enable shifting of the WCA potential to 0 at the cutoff.
Tail correction
Some pair potentials can optionally apply isotropic integrated long range tail
corrections when the tail_correction parameter is True. These
corrections are only valid when the shifting/smoothing mode is set to
"none". Following Sun 1998, the
pressure and energy corrections ΔP and ΔE are given
by:
where n is the number of unique particle types in the system,
ρi is the number density of particles of type i in the
system, Uij(r) is the pair potential between particles of type
i and j, and Ni is the number of particles of type
i in the system. These expressions assume that the radial pair
distribution functions gij(r) are unity at the cutoff and beyond.
The pressure shift ΔP appears in the additional virial term
Wadditional (Force.additional_virial) and the energy shift
appears in the additional energy Uadditional
(Force.additional_energy).
Warning
The value of the tail corrections depends on the number of each type of
particle in the system, and these are precomputed when the pair
potential object is initialized. If the number of any of the types of
particles changes, the tail corrections will yield invalid results.