mstk.forcefield.LinearAngleTerm¶
- class mstk.forcefield.LinearAngleTerm(type1, type2, type3, k)¶
Linear angle described by the distance between the center atom and its equilibrated position
For angle i-j-k, the energy function is
>>> U = k_linear * (r_j - r_j_0)^2 >>> r_j_0 = a * r_i + (1-a) * r_k >>> a = b_jk / (b_ij + b_jk)
The k_linear can be converted from the k_theta in HarmonicAngleTerm
>>> k_linear = k_theta * 2 * (b_ij + b_jk)^2 / (b_ij * b_jk)^2
To be consistent with other angle terms, the k_theta is defined as the force constant, in unit of kJ/mol/rad^2
This term itself does not contain bond length parameters for i-j and j-k bonds Instead, it expects two
BondTermbetween each side atom type and type2 existing in theForceFieldobject. If such a BondTerm does not exist, then the ForceField is invalid and cannot be used to construct aSystem.During the initialization, the two side atom types will be sorted by their string.
- Parameters:
type1 (str) –
type2 (str) –
type3 (str) –
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, k)calc_a_k_linear(b12, b23)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
Whether or not this angle term is linear.
nameThe name of this force field term.
- calc_a_k_linear(b12, b23)¶
- property is_linear¶
Whether or not this angle term is linear.
- Returns:
is
- Return type:
bool