# hoomd.hpmc.external.field

Overview

 ExternalField Base class external field. Harmonic Restrain particle positions and orientations with harmonic springs.

Details

Apply external fields to HPMC simulations.

class hoomd.hpmc.external.field.ExternalField

Bases:

Base class external field.

Provides common methods for all external field subclasses.

Note

Users should use the subclasses and not instantiate ExternalField directly.

class hoomd.hpmc.external.field.Harmonic(reference_positions, reference_orientations, k_translational, k_rotational, symmetries)

Bases: ExternalField

Restrain particle positions and orientations with harmonic springs.

Parameters

Harmonic computes harmonic spring energies between the particle positions/orientations and given reference positions/orientations:

$\begin{split}U_{\mathrm{external},i} & = U_{\mathrm{translational},i} + U_{\mathrm{rotational},i} \\ U_{\mathrm{translational},i} & = \frac{1}{2} k_{translational} \cdot (\vec{r}_i-\vec{r}_{0,i})^2 \\ U_{\mathrm{rotational},i} & = \frac{1}{2} k_{rotational} \cdot \min_j \left[ (\mathbf{q}_i-\mathbf{q}_{0,i} \cdot \mathbf{q}_{\mathrm{symmetry},j})^2 \right]\end{split}$

where $$k_{translational}$$ and $$k_{rotational}$$ correspond to the parameters k_translational and k_rotational, respectively, $$\vec{r}_i$$ and $$\mathbf{q}_i$$ are the position and orientation of particle $$i$$, the $$0$$ subscripts denote the given reference quantities, and $$\mathbf{q}_{\mathrm{symmetry}}$$ is the given set of symmetric orientations from the symmetries parameter.

Note

Harmonic does not support execution on GPUs.

k_translational

The translational spring constant $$[\mathrm{energy} \cdot \mathrm{length}^{-2}]$$.

Type

hoomd.variant.Variant

k_rotational

The rotational spring constant $$[\mathrm{energy}]$$.

Type

hoomd.variant.Variant

reference_positions

The reference positions to which particles are restrained $$[\mathrm{length}]$$.

Type

(N_particles, 3) numpy.ndarray of float

reference_orientations

The reference orientations to which particles are restrained $$[\mathrm{dimensionless}]$$.

Type

(N_particles, 4) numpy.ndarray of float

symmetries

The orientations that are equivalent through symmetry, i.e., the rotation quaternions that leave the particles unchanged $$[\mathrm{dimensionless}]$$.

Type

(N_symmetries, 4) numpy.ndarray of float

property energy

The total energy of the harmonic field $$[\mathrm{energy}]$$.

$\sum_{i=0}^\mathrm{N_particles-1} U_{\mathrm{external},i}$

(Loggable: category=”scalar”)

Type

float

property energy_rotational

The energy associated with rotational fluctuations $$[\mathrm{energy}]$$.

$\sum_{i=0}^\mathrm{N_particles-1} U_{\mathrm{rotational},i}$

(Loggable: category=”scalar”)

Type

float

property energy_translational

The energy associated with positional fluctuations $$[\mathrm{energy}]$$.

$\sum_{i=0}^\mathrm{N_particles-1} U_{\mathrm{translational},i}$

(Loggable: category=”scalar”)

Type

float