IMP Reference Guide
develop.86cca0715b,2025/05/19
The Integrative Modeling Platform
|
Lennard-Jones score between a pair of particles. More...
#include <IMP/atom/LennardJonesTypedPairScore.h>
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) |
![]() | |
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... | |
![]() | |
ModelObjectsTemp | get_inputs (Model *m, const ParticleIndexes &pis) const |
Get the ModelObjects read when the given list of particles is used. More... | |
![]() | |
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 | |
![]() | |
typedef ParticlePair | Argument |
typedef ParticleIndexPair | IndexArgument |
typedef PairModifier | Modifier |
typedef const ParticlePair & | PassArgument |
typedef const ParticleIndexPair & | PassIndexArgument |
![]() | |
virtual Restraints | do_create_current_decomposition (Model *m, const ParticleIndexPair &vt) const |
Override this to return your own decomposition. More... | |
![]() | |
Object (std::string name) | |
Construct an object with the given name. More... | |
virtual void | do_destroy () |
|
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.
|
overridevirtual |
Overload this method to specify the inputs.
Implements IMP::ParticleInputs.
Definition at line 163 of file LennardJonesTypedPairScore.h.
|
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.
Reimplemented from IMP::PairScore.
Definition at line 78 of file LennardJonesTypedPairScore.h.
|
overridevirtual |
Compute the score and the derivative if needed.
m | the model of vt |
vt | the index in m of an object of type ParticlePair |
da | a DerivativeAccumulator that weights computed derivatives. If nullptr, derivatives will not be computed. |
Implements IMP::PairScore.
Definition at line 84 of file LennardJonesTypedPairScore.h.
|
finaloverridevirtual |
Compute the score and the derivative if needed over a set.
m | the model of o |
o | objects of type ParticlePair, specified by index |
da | a derivative accumulator that weights computed derivatives. If nullptr, derivatives will not be computed. |
lower_bound | index of first item in o to evaluate |
upper_bound | index one past last item in o to evaluate |
all_indexes_checked | if 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. |
Reimplemented from IMP::PairScore.
Definition at line 78 of file LennardJonesTypedPairScore.h.
|
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.
Reimplemented from IMP::PairScore.
Definition at line 78 of file LennardJonesTypedPairScore.h.
|
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].
Reimplemented from IMP::PairScore.
Definition at line 78 of file LennardJonesTypedPairScore.h.
|
overridevirtual |
Get information about the module and version of the object.
Reimplemented from IMP::Object.
Definition at line 79 of file LennardJonesTypedPairScore.h.