IMP
2.4.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Classes
Examples
include
IMP
isd
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-2015 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
>
15
#include <
IMP/atom/MolecularDynamics.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
(
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
:
37
bool
get_is_simulation_particle
(
kernel::ParticleIndex
pi)
const
;
38
39
void
setup_degrees_of_freedom(
const
kernel::ParticleIndexes
&ps);
40
41
//! First part of velocity Verlet (update coordinates and half-step velocity)
42
void
propagate_coordinates
(
const
kernel::ParticleIndexes
&ps,
43
double
step_size);
44
45
//! Second part of velocity Verlet (update velocity)
46
void
propagate_velocities
(
const
kernel::ParticleIndexes
&ps,
47
double
step_size);
48
49
//! Keys of the xyz velocities
50
FloatKey
vnuis_
;
51
};
52
53
IMPISD_END_NAMESPACE
54
55
#endif
/* IMPISD_MOLECULAR_DYNAMICS_H */
IMP::kernel::Key< 0, true >
IMP::atom::MolecularDynamics::MolecularDynamics
MolecularDynamics(kernel::Model *m)
MolecularDynamics.h
Simple molecular dynamics optimizer.
Nuisance.h
A decorator for nuisance parameters particles.
IMP::atom::MolecularDynamics::propagate_velocities
virtual void propagate_velocities(const kernel::ParticleIndexes &ps, double step_size)
Second part of velocity Verlet (update velocity)
IMP::base::Vector< ParticleIndex >
Optimizer.h
Import IMP/kernel/Optimizer.h in the namespace.
IMP::isd::MolecularDynamics::vnuis_
FloatKey vnuis_
Keys of the xyz velocities.
Definition:
isd/MolecularDynamics.h:50
IMP::atom::MolecularDynamics
Simple molecular dynamics optimizer.
Definition:
atom/MolecularDynamics.h:132
IMP::base::Index< ParticleIndexTag >
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions in in int...
IMP::atom::MolecularDynamics::get_kinetic_energy
virtual Float get_kinetic_energy() const
Return the current kinetic energy of the system, in kcal/mol.
IMP::atom::MolecularDynamics::propagate_coordinates
virtual void propagate_coordinates(const kernel::ParticleIndexes &ps, double step_size)
First part of velocity Verlet (update coordinates and half-step velocity)
IMP::atom::MolecularDynamics::assign_velocities
virtual void assign_velocities(Float temperature)
Assign velocities representative of the given temperature.
IMP::Float
double Float
Basic floating-point value (could be float, double...)
Definition:
types.h:20
IMP::atom::MolecularDynamics::get_is_simulation_particle
virtual bool get_is_simulation_particle(kernel::ParticleIndex p) const
Return true if the passed particle is appropriate for the simulation.
IMP::isd::MolecularDynamics
Molecular dynamics optimizer on 1-D and 3-D particles.
Definition:
isd/MolecularDynamics.h:25
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73