Rosetta Utilities  2014.35
Namespaces | Functions
angle_deriv.hh File Reference

inline function for computing f1/f2 derivatives for a function of an angle More...

#include <numeric/xyzVector.hh>
#include <numeric/conversions.hh>
#include <utility/assert.hh>

Namespaces

 numeric
 Unit headers.
 
 numeric::deriv
 

Functions

template<class P >
void numeric::deriv::helper (xyzVector< P > const &M, xyzVector< P > const &w, xyzVector< P > &F1, xyzVector< P > &F2)
 
template<class P >
void numeric::deriv::p1_theta_deriv (xyzVector< P > const &p1, xyzVector< P > const &p2, xyzVector< P > const &p3, xyzVector< P > &F1, xyzVector< P > &F2)
 
template<class P >
void numeric::deriv::x_and_dtheta_dx (xyzVector< P > const &v1, xyzVector< P > const &v2, P const n1, P const n2, P &x, P &dtheta_dx)
 
template<class P >
void numeric::deriv::p1_theta_deriv (xyzVector< P > const &p1, xyzVector< P > const &v1, xyzVector< P > const &v2, P const n1, P const n2, P const x, P const dtheta_dx, xyzVector< P > &F1, xyzVector< P > &F2)
 
template<class P >
void numeric::deriv::angle_p1_deriv (xyzVector< P > const &p1, xyzVector< P > const &p2, xyzVector< P > const &p3, P &theta, xyzVector< P > &f1, xyzVector< P > &f2)
 compute f1/f2 atom derivative vectors for the first point defining an angle. Templated on the precision of the coordinates being represented. Returns the angle, theta, defined by p1->p2->p3, which should be used to evaluate dE_dtheta. dE_dtheta should then be multiplied into both derivative vectors that are returned. The values of the output variables f1 and f2 are overwritten. Theta is computed in radians. More...
 
template<class P >
void numeric::deriv::angle_p2_deriv (xyzVector< P > const &p1, xyzVector< P > const &p2, xyzVector< P > const &p3, P &theta, xyzVector< P > &f1, xyzVector< P > &f2)
 compute f1/f2 atom derivative vectors for the middle point defining an angle. Templated on the precision of the coordinates being represented. Returns the angle, theta, defined by p1->p2->p3, which should be used to evaluate the dfunc. dE_dtheta should then be multiplied into both derivative vectors that are returned. The values of the output variables f1 and f2 are overwritten. Theta is computed in radians. More...
 
template<class P >
void numeric::deriv::angle_p1_p2_p3_deriv (xyzVector< P > const &p1, xyzVector< P > const &p2, xyzVector< P > const &p3, P &theta, xyzVector< P > &f1_p1, xyzVector< P > &f2_p1, xyzVector< P > &f1_p2, xyzVector< P > &f2_p2, xyzVector< P > &f1_p3, xyzVector< P > &f2_p3)
 

Detailed Description

inline function for computing f1/f2 derivatives for a function of an angle

Author
Phil Bradley did all the hard work deriving the math represented here.
Andrew Leaver-Fay copy-and-pasted Phil's code into this file from the AngleConstraint.cc file for general use.