home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
isd
version 20241221.develop.63b38c487d
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, std::allocator< 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