IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/21
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-2022 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 override;
32 
33  //! Assign velocities representative of the given temperature
34  void assign_velocities(Float temperature) override;
35 
36  protected:
37  bool get_is_simulation_particle(ParticleIndex pi) const override;
38 
39  void setup_degrees_of_freedom(const ParticleIndexes &ps) override;
40 
41  //! First part of velocity Verlet (update coordinates and half-step velocity)
43  double step_size) override;
44 
45  //! Second part of velocity Verlet (update velocity)
47  double step_size) override;
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:86
Simple molecular dynamics simulator.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
virtual bool get_is_simulation_particle(ParticleIndex p) const override
Return true if the passed particle is appropriate for the simulation.
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:19
Molecular dynamics optimizer on 1-D and 3-D particles.