IMP logo
IMP Reference Guide  develop.f6c15b4169,2024/11/06
The Integrative Modeling Platform
IMP::atom::SmoothingFunction Class Referenceabstract

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

#include <IMP/atom/smoothing_functions.h>

+ Inheritance diagram for IMP::atom::SmoothingFunction:

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).

Definition at line 33 of file smoothing_functions.h.

Public Member Functions

virtual double operator() (double score, double distance) const =0
 Smooth the score at a given distance. More...
 
virtual DerivativePair operator() (double score, double deriv, double distance) const =0
 Smooth the score and its first derivative at a given distance. More...
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
virtual VersionInfo get_version_info () const
 Get information about the module and version of the object. More...
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 
virtual std::string get_type_name () const
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Member Function Documentation

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

Smooth the score at a given distance.

Returns
the smoothed score.

Implemented in IMP::atom::ForceSwitch.

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.

Implemented in IMP::atom::ForceSwitch.


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