# md.improper

Overview

 Improper Base class improper force. Harmonic Harmonic improper force.

Details

Improper forces.

Improper force classes apply a force and virial on every particle in the simulation state commensurate with the potential energy:

$U_\mathrm{improper} = \sum_{(i,j,k,l) \in \mathrm{impropers}} U_{ijkl}(\chi)$

Each improper is defined by an ordered quadruplet of particle tags in the hoomd.State member improper_group. HOOMD-blue does not construct improper groups, users must explicitly define impropers in the initial condition.

In an improper group (i,j,k,l), $$\chi$$ is the signed improper angle between the planes passing through ($$\vec{r}_i, \vec{r}_j, \vec{r}_k$$) and ($$\vec{r}_j, \vec{r}_k, \vec{r}_l$$). This is the same definition used in dihedrals. Typically, researchers use impropers to force molecules to be planar.

Improper force classes assign 1/4 of the potential energy to each of the particles in the improper group:

$U_m = \frac{1}{4} \sum_{(i,j,k,l) \in \mathrm{impropers}} U_{ijkl}(\chi) [m=i \lor m=j \lor m=k \lor m=l]$

and similarly for virials.

class hoomd.md.improper.Harmonic

Bases: Improper

Harmonic improper force.

Harmonic computes forces, virials, and energies on all impropers in the simulation state with:

$U(r) = \frac{1}{2}k \left( \chi - \chi_{0} \right )^2$
params

The parameter of the harmonic impropers for each improper type. The dictionary has the following keys:

• k (float, required), potential constant $$k$$ $$[\mathrm{energy}]$$.

• chi0 (float, required), equilibrium angle $$\chi_0$$ $$[\mathrm{radian}]$$.

Type

TypeParameter [improper type, dict]

Example:

harmonic = hoomd.md.improper.Harmonic()
harmonic.params['A-B-C-D'] = dict(k=1.0, chi0=0)

class hoomd.md.improper.Improper

Bases: Force

Base class improper force.

Note

Improper is the base class for all improper forces. Users should not instantiate this class directly.