OpenMD 3.0
Molecular Dynamics in the Open
|
"types/CharmmTorsionType.hpp" These torsion types are defined identically with functional form given in the following paper: More...
#include <CharmmTorsionType.hpp>
Public Member Functions | |
CharmmTorsionType (std::vector< CharmmTorsionParameter > ¶meters) | |
virtual void | calcForce (RealType cosPhi, RealType &V, RealType &dVdCosPhi) |
"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:
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.
OpenMD::CharmmTorsionType::CharmmTorsionType | ( | std::vector< CharmmTorsionParameter > & | parameters | ) |
Definition at line 58 of file CharmmTorsionType.cpp.
|
virtual |
Implements OpenMD::TorsionType.
Definition at line 88 of file CharmmTorsionType.cpp.