OpenMD 3.0
Molecular Dynamics in the Open
Loading...
Searching...
No Matches
OpenMD::CharmmTorsionType Class Reference

"types/CharmmTorsionType.hpp" These torsion types are defined identically with functional form given in the following paper: More...

#include <CharmmTorsionType.hpp>

+ Inheritance diagram for OpenMD::CharmmTorsionType:

Public Member Functions

 CharmmTorsionType (std::vector< CharmmTorsionParameter > &parameters)
 
virtual void calcForce (RealType cosPhi, RealType &V, RealType &dVdCosPhi)
 

Detailed Description

"types/CharmmTorsionType.hpp" These torsion types are defined identically with functional form given in the following paper:

"A. D. MacKerell, Jr. et al., CHARMM: The energy function and its parameterization with an overview of the program," in The Encyclopedia of Computational Chemistry, edited by P. v. R. Schleyer, et al., volume 1, pages 271–277, John Wiley & Sons, New York, 1998.

This torsion potential has the form:

\[ V_{\mathrm{torsion}}(\phi) = \sum_n K_n \left( 1 + \cos(n \phi - \delta_n) \right) \]

Notes:

  1. OpenMD converts internally to Chebyshev polynomials for computational efficiency.
  2. Coefficients \( K_n \) are assumed to be in kcal / mol.
  3. Phase angles \( \delta_n \) are assumed to be in degrees.
  4. Periodicity values \( n \) are positive integers.

Internally convert CHARMM torsion functions to two polynomials based on Chebyshev polynomials in cos(phi):

\[ V_{\mathrm{torsion}}(\phi) = \sum_n K_n + \sum_n K_n \cos(\delta_n) T_n(\cos(\phi)) - \sum_n K_n \sin(\delta_n) U_{n-1}((\cos \phi)) \sin(\phi) \]

This conversion has used the cosine addition formula, and two identities of Chebyshev polynomials:

\[ T_n (\cos \phi) = \cos(n \phi) \]

for Chebyshev polynomials of the first type, and:

\[ U_{n-1} (\cos \phi) \sin(\phi) = \sin( n \phi ) \]

for Chebyshev polynomials of the second type. We're left with a simpler equation for the torsion potential in terms of only polynomials of the cosine and an additional sine of the angle:

\[ V_{\mathrm{torsion}}(\phi) = C + T(\cos(\phi)) + U(\cos(\phi)) \sin(\phi) \]

where:

\[ C = \sum_n K_n \]

\[ T(\cos(\phi)) = \sum_n K_n \cos(\delta_n) T_n(\cos(\phi)) \]

\[ U(\cos(\phi)) = \sum_n -K_n \sin(\delta_n) U_{n-1}(\cos(\phi)) \]

Definition at line 121 of file CharmmTorsionType.hpp.

Constructor & Destructor Documentation

◆ CharmmTorsionType()

OpenMD::CharmmTorsionType::CharmmTorsionType ( std::vector< CharmmTorsionParameter > & parameters)

Definition at line 58 of file CharmmTorsionType.cpp.

Member Function Documentation

◆ calcForce()

void OpenMD::CharmmTorsionType::calcForce ( RealType cosPhi,
RealType & V,
RealType & dVdCosPhi )
virtual

Implements OpenMD::TorsionType.

Definition at line 88 of file CharmmTorsionType.cpp.


The documentation for this class was generated from the following files: