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(rij,qi,qj)=Uisotropic(rij)max(1,m=1Npatches,in=1Npatches,jf(qidm,iqi,qjdn,jqj,δm,i,δn,j))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 UisotropicU_\mathrm{isotropic} is the isotropic potential. For a given particle ii, Npatches,iN_{\mathrm{patches},i} is the number of patches, dn,i\vec{d}_{n,i} is the n-th director, and δn,i\delta_{n,i} is the n-th delta. fij(a,b,δa,δb)f_{ij}(\vec{a}, \vec{b}, \delta_a, \delta_b) is an orientational masking function given by:

f(a,b,δa,δb)={1a^r^ijcosδab^r^jicosδb0otherwisef(\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}

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 dm\vec{d}_m and delta δm\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 [energy][\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