angle Class Reference

Residual and gradient calculations for angle restraint. More...

#include <angle.h>

List of all members.

Public Member Functions

 angle ()
 Default constructor. Some data members are not initialized!
 angle (af::tiny< scitbx::vec3< double >, 3 > const &sites_, double angle_ideal_, double weight_)
 Constructor.
 angle (af::const_ref< scitbx::vec3< double > > const &sites_cart, angle_proxy const &proxy)
 Coordinates are copied from sites_cart according to proxy.i_seqs, parameters are copied from proxy.
double residual () const
 weight * delta**2.
af::tiny< scitbx::vec3< double >, 3 > gradients (double epsilon=1.e-100) const
 Gradients with respect to the three sites.
void add_gradients (af::ref< scitbx::vec3< double > > const &gradient_array, angle_proxy::i_seqs_type const &i_seqs) const
 Support for angle_residual_sum.

Public Attributes

af::tiny< scitbx::vec3< double >, 3 > sites
 Cartesian coordinates of sites forming the angle.
double angle_ideal
 Parameter (usually as passed to the constructor).
double weight
 Parameter (usually as passed to the constructor).
bool have_angle_model
 false in singular situations.
double angle_model
 Value of angle formed by the sites.
double delta
 Smallest difference between angle_model and angle_ideal taking the periodicity into account.


Detailed Description

Residual and gradient calculations for angle restraint.

Member Function Documentation

double residual (  )  const [inline]

weight * delta**2.

See also: Hendrickson, W.A. (1985). Meth. Enzym. 115, 252-270.

References angle::delta, and angle::weight.

af::tiny<scitbx::vec3<double>, 3> gradients ( double  epsilon = 1.e-100  )  const [inline]

Gradients with respect to the three sites.

The formula for the gradients is singular at delta = 0 and delta = 180. However, the gradients converge to zero near these singularities. To avoid numerical problems, the gradients are set to zero exactly if the intermediate result 1/(1-cos(angle_model)**2) < epsilon.

See also: http://salilab.org/modeller/manual/manual.html, "Features and their derivatives"

References angle::delta, angle::have_angle_model, and angle::weight.

Referenced by angle::add_gradients().

void add_gradients ( af::ref< scitbx::vec3< double > > const &  gradient_array,
angle_proxy::i_seqs_type const &  i_seqs 
) const [inline]

Support for angle_residual_sum.

Not available in Python.

References angle::gradients().


Member Data Documentation

double delta

Smallest difference between angle_model and angle_ideal taking the periodicity into account.

See also: angle_delta_deg

Referenced by angle::gradients(), and angle::residual().


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

Generated on Thu Sep 4 16:12:57 2008 for cctbx by  doxygen 1.5.6