IMP  2.2.0
The Integrative Modeling Platform
isd/MolecularDynamics.h
Go to the documentation of this file.
1 /**
2  * \file IMP/isd/MolecularDynamics.h
3  * \brief Simple molecular dynamics optimizer.
4  *
5  * Copyright 2007-2014 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPISD_MOLECULAR_DYNAMICS_H
10 #define IMPISD_MOLECULAR_DYNAMICS_H
11 
12 #include <IMP/isd/isd_config.h>
13 #include <IMP/kernel/Particle.h>
14 #include <IMP/Optimizer.h>
16 #include <IMP/isd/Nuisance.h>
17 
18 IMPISD_BEGIN_NAMESPACE
19 
20 //! Molecular dynamics optimizer on 1-D and 3-D particles
21 /** The particles to be optimized must be XYZs or Nuisances, and should have a
22  * non-optimizable mass.
23  * \see MolecularDynamics in the atom module for more details
24  */
25 class IMPISDEXPORT MolecularDynamics : public atom::MolecularDynamics {
26  public:
27  /** Score based on the provided model */
28  MolecularDynamics(kernel::Model *m = nullptr);
29 
30  //! \return the current kinetic energy of the system, in kcal/mol
31  Float get_kinetic_energy() const;
32 
33  //! Assign velocities representative of the given temperature
34  void assign_velocities(Float temperature);
35 
36  protected:
38 
39  void setup_degrees_of_freedom(const kernel::ParticleIndexes &ps);
40 
41  //! First part of velocity Verlet (update coordinates and half-step velocity)
43  double step_size);
44 
45  //! Second part of velocity Verlet (update velocity)
47  double step_size);
48 
49  //! Keys of the xyz velocities
51 };
52 
53 IMPISD_END_NAMESPACE
54 
55 #endif /* IMPISD_MOLECULAR_DYNAMICS_H */
MolecularDynamics(kernel::Model *m)
Simple molecular dynamics optimizer.
A decorator for nuisance parameters particles.
virtual void propagate_velocities(const kernel::ParticleIndexes &ps, double step_size)
Second part of velocity Verlet (update velocity)
Import IMP/kernel/Optimizer.h in the namespace.
FloatKey vnuis_
Keys of the xyz velocities.
Simple molecular dynamics optimizer.
Classes to handle individual model particles.
virtual Float get_kinetic_energy() const
virtual void propagate_coordinates(const kernel::ParticleIndexes &ps, double step_size)
First part of velocity Verlet (update coordinates and half-step velocity)
virtual void assign_velocities(Float temperature)
Assign velocities representative of the given temperature.
double Float
Basic floating-point value (could be float, double...)
Definition: base/types.h:20
virtual bool get_is_simulation_particle(kernel::ParticleIndex p) const
Molecular dynamics optimizer on 1-D and 3-D particles.
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:72