IMP  2.3.0
The Integrative Modeling Platform
RemoveRigidMotionOptimizerState.h
Go to the documentation of this file.
1 /**
2  * \file IMP/atom/RemoveRigidMotionOptimizerState.h
3  * \brief Remove rigid rotation and translation during molecular dynamics.
4  *
5  * Copyright 2007-2014 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPATOM_REMOVE_RIGID_MOTION_OPTIMIZER_STATE_H
10 #define IMPATOM_REMOVE_RIGID_MOTION_OPTIMIZER_STATE_H
11 
12 #include <IMP/atom/atom_config.h>
13 #include <IMP/kernel/Particle.h>
14 #include <IMP/base_types.h>
15 #include <IMP/OptimizerState.h>
16 
17 IMPATOM_BEGIN_NAMESPACE
18 
19 //! Removes rigid translation and rotation from the particles.
20 class IMPATOMEXPORT RemoveRigidMotionOptimizerState : public OptimizerState {
21  public:
24 
25  //! Set the particles to use.
26  void set_particles(const kernel::Particles &pis) { pis_ = pis; }
27 
28  //! Remove rigid motion now
29  void remove_rigid_motion() const;
30 
32 
33  protected:
34  virtual void do_update(unsigned int call) IMP_OVERRIDE;
35 
36  private:
37  void remove_linear() const;
38  void remove_angular() const;
39  kernel::Particles pis_;
40 
41  //! Keys of the xyz velocities
42  FloatKey vs_[3];
43 };
44 
46 
47 IMPATOM_END_NAMESPACE
48 
49 #endif /* IMPATOM_REMOVE_RIGID_MOTION_OPTIMIZER_STATE_H */
Import IMP/kernel/base_types.h in the namespace.
virtual void do_update(unsigned int)
void set_particles(const kernel::Particles &pis)
Set the particles to use.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Shared optimizer state that is invoked upon commitment of new coordinates.
Removes rigid translation and rotation from the particles.
Classes to handle individual model particles. (Note that implementation of inline functions in in int...
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Definition: object_macros.h:52
Import IMP/kernel/OptimizerState.h in the namespace.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:73