md.angle
Overview
Base class angle force. |
|
Harmonic angle force. |
|
Cosine squared angle force. |
|
Tabulated bond force. |
Details
Angle forces.
Angle force classes apply a force and virial on every particle in the simulation state commensurate with the potential energy:
Each angle is defined by an ordered triplet of particle tags in the
hoomd.State
member angle_group
. HOOMD-blue does not construct angle
groups, users must explicitly define angles in the initial condition.
In the angle group (i,j,k), \(\theta\) is the angle between the vectors \(\vec{r}_{ij}\) and \(\vec{r}_{kj}\).
Angle force classes assign 1/3 of the potential energy to each of the particles in the angle group:
and similarly for virials.
- class hoomd.md.angle.Angle
Bases:
Force
Base class angle force.
Angle
is the base class for all angle forces.Warning
This class should not be instantiated by users. The class can be used for
isinstance
orissubclass
checks.
- class hoomd.md.angle.CosineSquared
Bases:
Angle
Cosine squared angle force.
CosineSquared
computes forces, virials, and energies on all angles in the simulation state with:\[U(\theta) = \frac{1}{2} k \left( \cos\theta - \cos\theta_0 \right)^2\]CosineSquared
is used in the gromos96 and MARTINI force fields.- params
The parameter of the harmonic bonds for each particle type. The dictionary has the following keys:
k
(float
, required) - potential constant \(k\) \([\mathrm{energy}]\)t0
(float
, required) - rest angle \(\theta_0\) \([\mathrm{radians}]\)
- Type
TypeParameter[
angle type
, dict]
Examples:
cosinesq = angle.CosineSquared() cosinesq.params['A-A-A'] = dict(k=3.0, t0=0.7851) cosinesq.params['A-B-A'] = dict(k=100.0, t0=1.0)
- class hoomd.md.angle.Harmonic
Bases:
Angle
Harmonic angle force.
Harmonic
computes forces, virials, and energies on all angles in the simulation state with:\[U(\theta) = \frac{1}{2} k \left( \theta - \theta_0 \right)^2\]- params
The parameter of the harmonic bonds for each particle type. The dictionary has the following keys:
k
(float
, required) - potential constant \(k\) \([\mathrm{energy} \cdot \mathrm{radians}^{-2}]\)t0
(float
, required) - rest angle \(\theta_0\) \([\mathrm{radians}]\)
- Type
TypeParameter[
angle type
, dict]
Examples:
harmonic = angle.Harmonic() harmonic.params['A-A-A'] = dict(k=3.0, t0=0.7851) harmonic.params['A-B-A'] = dict(k=100.0, t0=1.0)
- class hoomd.md.angle.Table(width)
Bases:
Angle
Tabulated bond force.
- Parameters
width (int) – Number of points in the table.
Table
computes computes forces, virials, and energies on all angles in the simulation given the user defined tables \(U\) and \(\tau\).The torque \(\tau\) is:
\[\tau(\theta) = \tau_\mathrm{table}(\theta)\]and the potential \(V(\theta)\) is:
\[U(\theta) =U_\mathrm{table}(\theta)\]Provide \(\tau_\mathrm{table}(\theta)\) and \(U_\mathrm{table}(\theta)\) on evenly spaced grid points points in the range \(\theta \in [0,\pi]\).
Table
linearly interpolates values when \(\theta\) lies between grid points. The torque must be specificed commensurate with the potential: \(\tau = -\frac{\partial U}{\partial \theta}\).- params
The potential parameters. The dictionary has the following keys:
U
((width,)numpy.ndarray
offloat
, required) - the tabulated energy values \([\mathrm{energy}]\). Must have a size equal towidth
.tau
((width,)numpy.ndarray
offloat
, required) - the tabulated torque values \([\mathrm{force} \cdot \mathrm{length}]\). Must have a size equal towidth
.
- Type
TypeParameter
[angle type
,dict
]