# 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.

Improper is the base class for all improper forces.

Warning

This class should not be instantiated by users. The class can be used for isinstance or issubclass checks.