mstk.forcefield.ImproperTerm

class mstk.forcefield.ImproperTerm(type1, type2, type3, type4)

Base class for all improper terms.

Subclasses should be implemented for each functional form, e.g. PeriodicImproperTerm.

During the initialization, the three side atom types will be sorted by their string.

Improper term is usually used to keep 3-coordinated structures in the same plane. The first atom is the central atom, following the convention of GROMACS and CHARMM. However, the definition of the value of improper i-j-k-l is vague. CHARMM defines the value of the improper as the angle between plane i-j-k and j-k-l. Whereas OPLS defines the value as the angle between j-k-i and k-i-l.

ImproperTerm allows wildcard(*) for side atoms. During force field matching, the terms with wildcard will have lower priority. The terms with wildcard will be used only if exact match cannot be found.

Parameters:
  • type1 (str) –

  • type2 (str) –

  • type3 (str) –

  • type4 (str) –

type1
Type:

str

type2
Type:

str

type3
Type:

str

type4
Type:

str

Methods

__init__(type1, type2, type3, type4)

evaluate_energy(val)

Evaluate the energy for a force field term like HarmonicBondTerm, PeriodicDihedralTerm, etc...

get_alias()

Return a short alias for the name of this class

to_zff()

Pack the attributes of a term into a string so that can be saved into a line in ZFF file.

to_zff_header()

Header string to explain a line in ZFF format

Attributes

name

The name of this force field term.

property name

The name of this force field term.

Returns:

name

Return type:

str