IMP logo

IMP::atom::SmoothingFunction Class Reference


Detailed Description

Base class for smoothing nonbonded interactions as a function of distance.

The class is given the score (and optionally its first derivative) at a given distance and returns a smoothed form of the score. Smoothing functions are used to avoid a discontinuity in the scoring function and/or its derivatives at the cutoff distance (the distance threshold used by IMP::core::ClosePairsFinder), as this can lead to nonphysical motions of the system. They are used by physical scoring functions that drop off slowly with distance, such as CoulombPairScore, in combination with a ClosePairsFinder.

Smoothing functions usually offset the score by a constant value (a shift function) or smooth it from its normal value to zero over a defined range (a switch function, such as ForceSwitch).

Inheritance diagram for IMP::atom::SmoothingFunction:

Inheritance graph
[legend]

Public Member Functions

virtual DerivativePair operator() (double score, double deriv, double distance) const =0
 Smooth the score and its first derivative at a given distance.
virtual double operator() (double score, double distance) const =0
 Smooth the score at a given distance.

Friends

template<class T >
void IMP::internal::unref (T *)

Member Function Documentation

virtual DerivativePair IMP::atom::SmoothingFunction::operator() ( double  score,
double  deriv,
double  distance 
) const [pure virtual]

Smooth the score and its first derivative at a given distance.

Returns:
a DerivativePair containing the smoothed score and its first derivative.

virtual double IMP::atom::SmoothingFunction::operator() ( double  score,
double  distance 
) const [pure virtual]

Smooth the score at a given distance.

Returns:
the smoothed score.


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

Generated on Mon Mar 8 23:08:52 2010 for IMP by doxygen 1.5.8