IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
RepulsiveDistancePairScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/isd/RepulsiveDistancePairScore.h
3  * \brief A simple quadric repulsive term between two atoms. Restraint is zero
4  * when the distance equals the sum of the radii plus the shift.
5  *
6  * Copyright 2007-2022 IMP Inventors. All rights reserved.
7  */
8 
9 #ifndef IMPISD_REPULSIVE_DISTANCE_PAIR_SCORE_H
10 #define IMPISD_REPULSIVE_DISTANCE_PAIR_SCORE_H
11 
12 #include <IMP/isd/isd_config.h>
13 #include <IMP/core/XYZR.h>
14 #include <IMP/PairScore.h>
15 #include <IMP/Pointer.h>
16 #include <IMP/generic.h>
17 
18 IMPISD_BEGIN_NAMESPACE
19 
20 //! A repulsive potential on the distance between two atoms
21 /** \see XYZR
22  \see SphereDistancePairScore
23  \see DistancePairScore
24  \see LennardJonesPairScore
25  */
26 class IMPISDEXPORT RepulsiveDistancePairScore : public PairScore {
27  double x0_, k_;
28 
29  public:
30  RepulsiveDistancePairScore(double d0, double k);
31 
32  double get_rest_length() const { return x0_; }
33  double get_stiffness() const { return k_; }
34 
35  virtual double evaluate_index(Model *m,
36  const ParticleIndexPair &p,
37  DerivativeAccumulator *da) const override;
39  Model *m, const ParticleIndexes &pis) const override;
42  ;
43 };
44 
46 
47 IMPISD_END_NAMESPACE
48 
49 #endif /* IMPISD_REPULSIVE_DISTANCE_PAIR_SCORE_H */
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
#define IMP_PAIR_SCORE_METHODS(Name)
Definition: pair_macros.h:25
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
Define PairScore.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Definition: object_macros.h:44
A nullptr-initialized pointer to an IMP Object.
Decorator for a sphere-like particle.
virtual double evaluate_index(Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da) const =0
Compute the score and the derivative if needed.
Class for adding derivatives from restraints to the model.
A repulsive potential on the distance between two atoms.
Compile-time generic restraint and constraint support.