DLVO

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

Bases: Pair

DLVO colloidal interaction.

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}].

  • name (str) – Name of the force instance.

  • mode (str) – Energy shifting mode.

DLVO computes the DLVO dispersion and electrostatic interaction pair force on every particle in the simulation state with:

VDLVO(r)=A6[2a1a2r2(a1+a2)2+2a1a2r2(a1a2)2+log(r2(a1+a2)2r2(a1a2)2)]+a1a2a1+a2Zeκ(r(a1+a2))\begin{split} V_{\mathrm{DLVO}}(r) = &- \frac{A}{6} \left[ \frac{2a_1a_2}{r^2 - (a_1+a_2)^2} + \frac{2a_1a_2}{r^2 - (a_1-a_2)^2} \\ + \log \left( \frac{r^2 - (a_1+a_2)^2}{r^2 - (a_1-a_2)^2} \right) \right] \\ & + \frac{a_1 a_2}{a_1+a_2} Z e^{-\kappa(r - (a_1+a_2))} \end{split}

where a1a_1 is the radius of first particle in the pair, a2a_2 is the radius of second particle in the pair, AA is the Hamaker constant, ZZ is proportional to the surface electric potential, and κ\kappa is the screening parameter.

The first term corresponds to the attractive van der Waals interaction with and the second term to the repulsive double-layer interaction between two spherical surfaces. See “Intermolecular and Surface Forces” Israelachvili 2011, pp. 317.

Example:

nl = hoomd.md.nlist.Cell()
dlvo = hoomd.md.pair.DLVO(nlist=nl)
dlvo.params[('A', 'A')] = dict(A=1.0, kappa=1.0, Z=2, a1=1, a2=1)
dlvo.params[('A', 'B')] = dict(A=2.0, kappa=0.5, Z=3, a1=1, a2=3)
dlvo.params[('B', 'B')] = dict(A=2.0, kappa=0.5, Z=3, a1=3, a2=3)

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 DLVO:

params

The potential parameters. The dictionary has the following keys:

  • A (float, required) - Hamaker constant AA [energy][\mathrm{energy}]

  • a1 (float, required) - Radius of first particle a1a_1 [length][\mathrm{length}]

  • a2 (float, required) - Radius of second particle a2a_2 [length][\mathrm{length}]

  • kappa (float, required) - screening parameter κ\kappa [length1][\mathrm{length}^{-1}]

  • Z surface electric potential (float, required) - ZZ [energylength1][\mathrm{energy} \cdot \mathrm{length}^{-1}]

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