YLZ

class hoomd.md.pair.aniso.YLZ(nlist, default_r_cut=None)

Bases: AnisotropicPair

Yuan, Lee, Zhang (YLZ) potential.

Parameters:

The modulation function ψ\psi creates torques to align the orientation of a pair of particles as function of their axis of symmetry μ\mu in their local reference frame.

  1. A 2,4-Lennard-Jones potential truncated at its minimum rminr_{min}.

  2. A cosine potential defined between rminr_{min} and rcutr_{cut}.

U(rij,μi,μj)={u(r)+(1ψ(r^ij,μi,μj))ϵif r<rminu(r)ψ(r^ij,μi,μj)if rmin<r<rcutU(r_{ij},\mu_{i},\mu_{j})= \begin{cases} u\left(r\right)+\left(1-\psi\left(\hat{r}_{ij},\mu_i,\mu_j\right)\right) \epsilon & \text{if }r<r_{min}\\ u(r)\psi\left(\hat{r}_{ij},\mu_i,\mu_j\right)& \text{if }r_{min}<r<r_{cut} \end{cases}
u(r)={ϵ[(rminr)42(rminr)2]if r<rminϵ cos2ζ(π2rrminrcutrmin)if rmin<r<rcut\mathrm{u}(r)= \begin{cases} \epsilon\lbrack(\frac{r_{min}}{r})^{4}-2(\frac{r_{min}}{r})^{2}\rbrack & \text{if }r<r_{min}\\ -\epsilon\ cos^{2\zeta}(\frac{\pi}{2}\frac{r-r_{min}}{r_{cut}-r_{min}}) & \text{if }r_{min}<r<r_{cut} \end{cases}
ψ=1+β(a1)\psi = 1 + \beta(a-1)
a=μiμj(μir^ij)(μjr^ij)+ϕ(μiμj)r^ijϕ2a = \mu_{i}\cdot \mu_{j}-\left(\mu_{i}\cdot\hat{r}_{ij}\right) \left(\mu_{j}\cdot\hat{r}_{ij}\right)+\phi\left(\mu_{i}-\mu_{j} \right)\cdot\hat{r}_{ij}-\phi^2

The modulation function ψ\psi introduces torques that align particle orientations with respect to their symmetry axes μ\mu.

The potential was introduced in Hongyan Yuan, Changjin Huang, Ju Li, George Lykotrafitis, and Sulin Zhang 2010.

Example:

ylz = hoomd.md.pair.aniso.YLZ(nlist = neighbor_list,
                                      default_r_cut = 2.6)

ylz_params = {'eps': 1.0, 'phi': 0.0, 'beta': 1.774532,
                'rmin':1.122, 'twozeta': int(4)}

ylz.params.default = ylz_params
ylz.mu.default = (0, 0, 1)
simulation.operations.integrator.forces = [ylz]

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

params

The YLZ potential parameters unique to each pair of particle types. The dictionary has the following keys:

  • params (dict, required)

    • eps (float) - energy parameter ϵ\epsilon [energy][\mathrm{energy}]

    • phi (float) - parameter related to local curvature ϕ\phi

    • beta (float) - weight of energy penalty for misoriented particles β\beta

    • rmin (float) - cutoff where the 4,2 LJ begins rminr_{min} [length][\mathrm{length}]

    • twozeta (float) - exponent of the cosine potential 2ζ2\zeta

Example:

ylz_params = {'eps': 1.0, 'phi': 0.0, 'beta': 1.774532,
                'rmin':1.12, 'twozeta':int(2)}
ylz.params[('A', 'A')] = ylz_params
mu

μ\mu - axis of symmetry in the local reference frame (i.e. (μx,μy,μz)(\mu_x, \mu_y, \mu_z))

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

Example:

ylz.mu['A'] = (1.0, 0.0, 0.0)