IMP logo
IMP Reference Guide  2.15.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-2021 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/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 atom::MolecularDynamics for more details
24  */
25 class IMPISDEXPORT MolecularDynamics : public atom::MolecularDynamics {
26  public:
27  /** Score based on the provided model */
28  MolecularDynamics(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 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 */
virtual void propagate_velocities(const ParticleIndexes &ps, double step_size)
Second part of velocity Verlet (update velocity)
virtual void propagate_coordinates(const ParticleIndexes &ps, double step_size)
First part of velocity Verlet (update coordinates and half-step velocity)
Simple molecular dynamics optimizer.
A decorator for nuisance parameters particles.
Base class for all optimizers.
FloatKey vnuis_
Keys of the xyz velocities.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
Simple molecular dynamics optimizer.
virtual bool get_is_simulation_particle(ParticleIndex p) const
Return true if the passed particle is appropriate for the simulation.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
virtual Float get_kinetic_energy() const
Return the current kinetic energy of the system, in kcal/mol.
virtual void assign_velocities(Float temperature)
Assign velocities representative of the given temperature.
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:20
Molecular dynamics optimizer on 1-D and 3-D particles.