WangFrenkel

class hoomd.md.pair.WangFrenkel(nlist, default_r_cut=None, default_r_on=0.0, mode='none')

Bases: Pair

Wang-Frenkel pair potential.

Parameters:
  • nlist (hoomd.md.nlist.NeighborList) – Neighbor list

  • default_r_cut (float) – Default cutoff radius [length][\mathrm{length}].

  • default_r_on (float) – Default turn-on radius [length][\mathrm{length}].

  • mode (str) – Energy shifting/smoothing mode.

WangFrenkel computes the Wang-Frenkel pair force on every particle in the simulation state:

U(r)=ϵα([σr]2μ1)([Rr]2μ1)2νU(r) = \epsilon \alpha \left( \left[\frac{\sigma}{r}\right]^{2\mu} -1\right) \left(\left[\frac{R}{r}\right]^{2\mu} -1 \right)^{2\nu}
α=2ν(Rσ)2μ(2ν+12ν((Rσ)2μ1))2ν+1\alpha = 2 \nu \left(\frac{R}{\sigma}\right)^{2\mu} \left(\frac{2 \nu + 1} {2\nu \left(\left(\frac{R}{\sigma}\right)^{2\mu} - 1\right)}\right) ^{2\nu + 1}

The potential was introduced in Xipeng Wang et al. 2020.

Warning

Set R and r_cut to the same value so the potential goes to 0 smoothly at the cutoff.

Example:

nl = nlist.Cell()
WangFrenkel = pair.WangFrenkel(nlist=nl, default_r_cut=3.0)
WangFrenkel.params[("A", "A")] = dict(
    epsilon=1.0, sigma=1.0, R=2 ** (1 / 6), mu=12, nu=6
)
WangFrenkel.r_cut[("A", "A")] = 2 ** (1.0 / 6.0)
WangFrenkel.params[(["A", "B"], ["C", "D"])] = dict(
    epsilon=1.5, sigma=2.0, R=2.5, mu=2, nu=2
)

Members inherited from AutotunedObject:

property kernel_parameters

Kernel parameters. Read more...

property is_tuning_complete

Check if kernel parameter tuning is complete. Read more...

tune_kernel_parameters()

Start tuning kernel parameters. Read more...


Members inherited from Force:

additional_energy

Additional energy term. Read more...

additional_virial

Additional virial tensor term WadditionalW_\mathrm{additional}. Read more...

cpu_local_force_arrays

Local force arrays on the CPU. Read more...

energies

Energy contribution UiU_i from each particle. Read more...

energy

The potential energy UU of the system from this force. Read more...

forces

The force Fi\vec{F}_i applied to each particle. Read more...

gpu_local_force_arrays

Local force arrays on the GPU. Read more...

torques

The torque τi\vec{\tau}_i applied to each particle. Read more...

virials

Virial tensor contribution WiW_i from each particle. Read more...


Members inherited from Pair:

nlist

Neighbor list used to compute the pair force. Read more...

mode

Energy smoothing/cutoff mode. Read more...

r_cut

Cuttoff radius beyond which the energy and force are 0. Read more...

r_on

Radius at which the XPLOR smoothing function starts. Read more...

compute_energy()

Compute the energy between two sets of particles. Read more...


Members defined in WangFrenkel:

params

The potential parameters. The dictionary has the following keys:

  • epsilon (float, required) - ε\varepsilon [energy][\mathrm{energy}]

  • sigma (float, required) - σ\sigma [length][\mathrm{length}]

  • R (float, required) - RR [length][\mathrm{length}]

  • mu (int, required) - μ\mu [dimensionless][\mathrm{dimensionless}]

  • nu (int, required) - ν\nu [dimensionless][\mathrm{dimensionless}]

Type: TypeParameter [tuple [particle_type, particle_type], dict]