mstk.forcefield.SDKAngleTerm

class mstk.forcefield.SDKAngleTerm(type1, type2, type3, theta, k)

Angle term in SDK function form

The energy function is

>>> U = k * (theta-theta0)^2 + LJ96
>>> LJ96 = 6.75 * epsilon * ((sigma/r)^9 - (sigma/r)^6) + epsilon, r < 1.144714 * sigma

The angle is in unit of radian, and the force constant is in unit of kJ/mol/rad^2.

This term itself does not contain parameters epsilon and sigma. Instead, it expects a MieTerm between type1 and type3 existing in the ForceField object. If such a MieTerm does not exist, or the repulsion and attraction of this MieTerm do not equal to 9 and 6, then the ForceField is invalid and cannot be used to construct a System.

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

Parameters:
  • type1 (str) –

  • type2 (str) –

  • type3 (str) –

  • theta (float) –

  • k (float) –

type1
Type:

str

type2
Type:

str

type3
Type:

str

theta
Type:

float

k
Type:

float

fixed
Type:

bool

Methods

__init__(type1, type2, type3, theta, k)

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

to_zfp()

Pack the attributes of a term into a dict so that can be saved into ZFP xml file.

Attributes

is_linear

Whether or not this angle term is linear.

name

The name of this force field term.

property is_linear

Whether or not this angle term is linear.

Returns:

is

Return type:

bool