IMP logo
IMP Reference Guide  develop.86cca0715b,2025/05/19
The Integrative Modeling Platform
IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT > Class Template Referencefinal

Lennard-Jones score between a pair of particles. More...

#include <IMP/atom/LennardJonesTypedPairScore.h>

+ Inheritance diagram for IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >:

Detailed Description

template<class SmoothingFuncT>
class IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >

Lennard-Jones score between a pair of particles.

The two particles in the pair must be LennardJonesTyped particles. The form of the potential is

\[ -\epsilon \left[ w_{rep} \left(\frac{r_{min}}{r}\right)^{12} - 2 w_{att} \left(\frac{r_{min}}{r}\right)^{6}\right] \]

where \(\epsilon\) is the depth of the well between the two particles, \(r_{min}\) the distance corresponding to the minimum score, \(r\) the inter-particle distance, and \(w_{rep}\) and \(w_{att}\) the weights on the repulsive and attractive parts of the potential respectively; both weights are 1.0 by default.

The well depth is the geometric mean of the individual particles' well depths (as extracted by LennardJonesType::get_well_depth) and the minimum distance the sum of the particles' Lennard-Jones radii (as extracted by LennardJonesType::get_radius; note that this is not necessarily the same as the core::XYZR radius).

Definition at line 39 of file LennardJonesTypedPairScore.h.

Public Member Functions

 LennardJonesTypedPairScore (SmoothingFuncT *f)
 
virtual bool check_indexes (Model *m, const ParticleIndexes &pis) const override
 Check the given particle indexes for necessary attributes. More...
 
virtual ModelObjectsTemp do_get_inputs (Model *m, const ParticleIndexes &pis) const override
 Overload this method to specify the inputs. More...
 
double evaluate_if_good_indexes (Model *m, const ParticleIndexPairs &p, DerivativeAccumulator *da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=false) const override
 
virtual double evaluate_index (Model *m, const ParticleIndexPair &p, DerivativeAccumulator *da) const override
 Compute the score and the derivative if needed. More...
 
double evaluate_indexes (Model *m, const ParticleIndexPairs &p, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=false) const overridefinal
 Compute the score and the derivative if needed over a set. More...
 
double evaluate_indexes_delta (Model *m, const ParticleIndexPairs &p, DerivativeAccumulator *da, const std::vector< unsigned > &indexes, std::vector< double > &score, bool all_indexes_checked=false) const overridefinal
 Compute the change in score and the derivative if needed over a set. More...
 
double evaluate_indexes_scores (Model *m, const ParticleIndexPairs &p, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double > &score, bool all_indexes_checked=false) const overridefinal
 Compute the score and the derivative if needed over a set. More...
 
double get_attractive_weight () const
 
double get_repulsive_weight () const
 
virtual std::string get_type_name () const override
 
virtual ::IMP::VersionInfo get_version_info () const override
 Get information about the module and version of the object. More...
 
void set_attractive_weight (double attractive_weight)
 
void set_repulsive_weight (double repulsive_weight)
 
- Public Member Functions inherited from IMP::PairScore
 PairScore (std::string name="PairScore %1%")
 
Restraints create_current_decomposition (Model *m, const ParticleIndexPair &vt) const
 
virtual double evaluate_if_good_index (Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da, double max) const
 Compute the score and the derivative if needed, only if "good". More...
 
- Public Member Functions inherited from IMP::ParticleInputs
ModelObjectsTemp get_inputs (Model *m, const ParticleIndexes &pis) const
 Get the ModelObjects read when the given list of particles is used. More...
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
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)
 

Additional Inherited Members

- Public Types inherited from IMP::PairScore
typedef ParticlePair Argument
 
typedef ParticleIndexPair IndexArgument
 
typedef PairModifier Modifier
 
typedef const ParticlePairPassArgument
 
typedef const ParticleIndexPairPassIndexArgument
 
- Protected Member Functions inherited from IMP::PairScore
virtual Restraints do_create_current_decomposition (Model *m, const ParticleIndexPair &vt) const
 Override this to return your own decomposition. More...
 
- 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

template<class SmoothingFuncT >
bool IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::check_indexes ( Model m,
const ParticleIndexes pis 
) const
overridevirtual

Check the given particle indexes for necessary attributes.

If implemented, this method should return true and should assert that all particles have all attributes needed to evaluate the score (or raise an exception). After successfully calling this method, evaluate_indexes() and similar methods can be called with all_indexes_checked=true, and can opt to skip these checks. It is the caller's responsibility to call check_indexes() again if the set of possible indexes changes, or particles or attributes are removed.

Reimplemented from IMP::PairScore.

Definition at line 115 of file LennardJonesTypedPairScore.h.

template<class SmoothingFuncT >
ModelObjectsTemp IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::do_get_inputs ( Model m,
const ParticleIndexes pis 
) const
overridevirtual

Overload this method to specify the inputs.

Implements IMP::ParticleInputs.

Definition at line 163 of file LennardJonesTypedPairScore.h.

+ Here is the call graph for this function:

template<class SmoothingFuncT >
double IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::evaluate_if_good_indexes ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
double  max,
unsigned int  lower_bound,
unsigned int  upper_bound,
bool  all_indexes_checked = false 
) const
overridevirtual

Compute the score and the derivative if needed over a set, only if "good". This functions similarly to evaluate_indexes(), but may terminate the computation early if the total score is higher than max.

Returns
the score if score<= max or some arbitrary value > max otherwise.
Note
An implementation for this is provided by the IMP_PAIR_SCORE_METHODS() macro.

Reimplemented from IMP::PairScore.

Definition at line 78 of file LennardJonesTypedPairScore.h.

template<class SmoothingFuncT >
Float IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::evaluate_index ( Model m,
const ParticleIndexPair vt,
DerivativeAccumulator da 
) const
overridevirtual

Compute the score and the derivative if needed.

Parameters
mthe model of vt
vtthe index in m of an object of type ParticlePair
daa DerivativeAccumulator that weights computed derivatives. If nullptr, derivatives will not be computed.

Implements IMP::PairScore.

Definition at line 84 of file LennardJonesTypedPairScore.h.

+ Here is the call graph for this function:

template<class SmoothingFuncT >
double IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::evaluate_indexes ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
unsigned int  lower_bound,
unsigned int  upper_bound,
bool  all_indexes_checked = false 
) const
finaloverridevirtual

Compute the score and the derivative if needed over a set.

Parameters
mthe model of o
oobjects of type ParticlePair, specified by index
daa derivative accumulator that weights computed derivatives. If nullptr, derivatives will not be computed.
lower_boundindex of first item in o to evaluate
upper_boundindex one past last item in o to evaluate
all_indexes_checkedif true, all of the passed indexes have already been checked by check_indexes() for needed particle attributes, so a faster implementation (that doesn't check them again) can be used if available.
Note
An implementation for this is provided by the IMP_PAIR_SCORE_METHODS() macro.

Reimplemented from IMP::PairScore.

Definition at line 78 of file LennardJonesTypedPairScore.h.

template<class SmoothingFuncT >
double IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::evaluate_indexes_delta ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
const std::vector< unsigned > &  indexes,
std::vector< double > &  score,
bool  all_indexes_checked = false 
) const
finaloverridevirtual

Compute the change in score and the derivative if needed over a set.

The score for each o[indexes[x]] is updated in score[indexes[x]] and the total difference between the old and new score values (over the set) is returned.

Note
An implementation for this is provided by the IMP_PAIR_SCORE_METHODS() macro.

Reimplemented from IMP::PairScore.

Definition at line 78 of file LennardJonesTypedPairScore.h.

template<class SmoothingFuncT >
double IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::evaluate_indexes_scores ( Model m,
const ParticleIndexPairs o,
DerivativeAccumulator da,
unsigned int  lower_bound,
unsigned int  upper_bound,
std::vector< double > &  score,
bool  all_indexes_checked = false 
) const
finaloverridevirtual

Compute the score and the derivative if needed over a set.

Like regular evaluate_indexes(), but the score for each o[x] is also returned as score[x].

Note
An implementation for this is provided by the IMP_PAIR_SCORE_METHODS() macro.

Reimplemented from IMP::PairScore.

Definition at line 78 of file LennardJonesTypedPairScore.h.

template<class SmoothingFuncT >
virtual ::IMP::VersionInfo IMP::atom::LennardJonesTypedPairScore< SmoothingFuncT >::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 79 of file LennardJonesTypedPairScore.h.


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