AngularStep

class hoomd.hpmc.pair.AngularStep(isotropic_potential)

Bases: Pair

Angular-step pair potential (HPMC).

Parameters:

isotropic_potential (hoomd.hpmc.pair.Pair) – the isotropic part of the interaction between the particles.

AngularStep computes the the given isotropic potential multiplied by a step function that is dependent on the relative orientation between any two patches:

\[U(\vec{r}_{ij}, \mathbf{q}_i, \mathbf{q}_j) = U_\mathrm{isotropic}(\vec{r}_{ij}) \cdot \max \left(1, \sum_{m=1}^{N_{\mathrm{patches},i}} \sum_{n=1}^{N_{\mathrm{patches},j}} f(\mathbf{q}_i \vec{d}_{m,i} \mathbf{q}_i^*, \mathbf{q}_j \vec{d}_{n,j} \mathbf{q}_j^*, \delta_{m,i}, \delta_{n,j}) \right)\]

where \(U_\mathrm{isotropic}\) is the isotropic potential. For a given particle \(i\), \(N_{\mathrm{patches},i}\) is the number of patches, \(\vec{d}_{n,i}\) is the n-th director, and \(\delta_{n,i}\) is the n-th delta. \(f_{ij}(\vec{a}, \vec{b}, \delta_a, \delta_b)\) is an orientational masking function given by:

\[\begin{split}f(\vec{a}, \vec{b}, \delta_a, \delta_b) = \begin{cases} 1 & \hat{a} \cdot \hat{r}_{ij} \ge \cos \delta_{a} \land \hat{b} \cdot \hat{r}_{ji} \ge \cos \delta_{b} \\ 0 & \text{otherwise} \\ \end{cases}\end{split}\]

One example of this form of potential is the Kern-Frenkel model that is composed of a square well potential and an orientational masking function.

Example

angular_step = hoomd.hpmc.pair.AngularStep(
               isotropic_potential=square_well)
angular_step.mask['A'] = dict(directors=[(1.0, 0, 0)], deltas=[0.1])
simulation.operations.integrator.pair_potentials = [angular_step]

Set the patch directors \(\vec{d}_m\) and delta \(\delta_m\) values for each particle type. Patch directors are the directional unit vectors that represent the patch locations on a particle, and deltas are the half opening angles of the patch in radian.


Members inherited from Pair:

property energy

Potential energy contributed by this potential \([\mathrm{energy}]\). Read more...


Members defined in AngularStep:

mask

The mask definition.

The mask describes the distribution of patches on the particle’s surface and the masking function determines the interaction scale factor as a function of two interacting particle’s masks.

The dictionary has the following keys:

  • directors (list [tuple [float, float, float]]): List of directional vectors of the patches on a particle.

  • deltas (list [float]): List of delta values (the half opening angle of the patch in radian) of the patches.

Type: TypeParameter [particle_type, dict]

property isotropic_potential

Get the isotropic part of the interactions between patchy particles.

This property returns the isotropic component of pairwise interaction potentials for patchy particle systems.

Example

angular_step.isotropic_potential