home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.20.2
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
isd
version 2.20.2
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
>
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
(
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)
42
void
propagate_coordinates
(
const
ParticleIndexes
&ps,
43
double
step_size)
override
;
44
45
//! Second part of velocity Verlet (update velocity)
46
void
propagate_velocities
(
const
ParticleIndexes
&ps,
47
double
step_size)
override
;
48
49
//! Keys of the xyz velocities
50
FloatKey
vnuis_
;
51
};
52
53
IMPISD_END_NAMESPACE
54
55
#endif
/* IMPISD_MOLECULAR_DYNAMICS_H */
IMP::atom::MolecularDynamics::propagate_velocities
virtual void propagate_velocities(const ParticleIndexes &ps, double step_size)
Second part of velocity Verlet (update velocity)
IMP::atom::MolecularDynamics::propagate_coordinates
virtual void propagate_coordinates(const ParticleIndexes &ps, double step_size)
First part of velocity Verlet (update coordinates and half-step velocity)
MolecularDynamics.h
Simple molecular dynamics optimizer.
IMP::Index< ParticleIndexTag >
IMP::atom::MolecularDynamics::MolecularDynamics
MolecularDynamics(Model *m)
Nuisance.h
A decorator for nuisance parameters particles.
Optimizer.h
Base class for all optimizers.
IMP::Vector< ParticleIndex >
IMP::isd::MolecularDynamics::vnuis_
FloatKey vnuis_
Keys of the xyz velocities.
Definition:
isd/MolecularDynamics.h:50
IMP::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
Model.h:86
IMP::atom::MolecularDynamics
Simple molecular dynamics simulator.
Definition:
atom/MolecularDynamics.h:108
IMP::Key< 0 >
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
IMP::atom::MolecularDynamics::get_is_simulation_particle
virtual bool get_is_simulation_particle(ParticleIndex p) const override
Return true if the passed particle is appropriate for the simulation.
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::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:19
IMP::isd::MolecularDynamics
Molecular dynamics optimizer on 1-D and 3-D particles.
Definition:
isd/MolecularDynamics.h:25