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-thdelta
. \(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