IMP
2.3.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
LangevinThermostatOptimizerState.h
Go to the documentation of this file.
1
/**
2
* \file IMP/atom/LangevinThermostatOptimizerState.h
3
* \brief Maintains temperature during molecular dynamics using
4
* a Langevin thermostat.
5
*
6
* Copyright 2007-2014 IMP Inventors. All rights reserved.
7
*
8
*/
9
10
#ifndef IMPATOM_LANGEVIN_THERMOSTAT_OPTIMIZER_STATE_H
11
#define IMPATOM_LANGEVIN_THERMOSTAT_OPTIMIZER_STATE_H
12
13
#include <IMP/atom/atom_config.h>
14
#include <
IMP/kernel/Particle.h
>
15
#include <
IMP/base_types.h
>
16
#include <
IMP/OptimizerState.h
>
17
18
IMPATOM_BEGIN_NAMESPACE
19
20
//! Maintains temperature during molecular dynamics.
21
/** The thermostat scales velocities using the algorithm described in
22
G. Bussi and M. Parrinello "Accurate sampling using Langevin dynamics",
23
Phys. Rev. E 75, 056707 (2007)
24
*/
25
class
IMPATOMEXPORT
LangevinThermostatOptimizerState
:
public
OptimizerState
{
26
public
:
27
LangevinThermostatOptimizerState
(
Model
*m, ParticleIndexesAdaptor pis,
28
double
temperature,
double
gamma);
29
30
//! Set the particles to use.
31
void
set_particles
(
const
kernel::Particles
&pis) { pis_ = pis; }
32
33
double
get_temperature() {
return
temperature_; }
34
35
double
get_gamma() {
return
gamma_; }
36
37
void
set_temperature(
double
temperature) { temperature_ = temperature; }
38
39
void
set_gamma(
double
gamma) { gamma_ = gamma; }
40
41
//! Rescale the velocities now
42
void
rescale_velocities()
const
;
43
44
IMP_OBJECT_METHODS
(
LangevinThermostatOptimizerState
);
45
46
protected
:
47
virtual
void
do_update
(
unsigned
int
)
IMP_OVERRIDE
;
48
49
private
:
50
kernel::Particles
pis_;
51
double
temperature_;
52
double
gamma_;
53
54
//! Keys of the xyz velocities
55
FloatKey
vs_[3];
56
};
57
58
IMP_OBJECTS
(
LangevinThermostatOptimizerState
,
59
LangevinThermostatOptimizerStates
);
60
61
IMPATOM_END_NAMESPACE
62
63
#endif
/* IMPATOM_LANGEVIN_THERMOSTAT_OPTIMIZER_STATE_H */
IMP::kernel::Key< 0, true >
IMP::atom::LangevinThermostatOptimizerState
Maintains temperature during molecular dynamics.
Definition:
LangevinThermostatOptimizerState.h:25
base_types.h
Import IMP/kernel/base_types.h in the namespace.
IMP::kernel::OptimizerState::do_update
virtual void do_update(unsigned int)
Definition:
kernel/OptimizerState.h:119
IMP::atom::LangevinThermostatOptimizerState::set_particles
void set_particles(const kernel::Particles &pis)
Set the particles to use.
Definition:
LangevinThermostatOptimizerState.h:31
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
IMP::kernel::OptimizerState
Shared optimizer state that is invoked upon commitment of new coordinates.
Definition:
kernel/OptimizerState.h:43
IMP::base::Vector< base::Pointer< Particle > >
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions in in int...
IMP_OBJECTS
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Definition:
object_macros.h:52
OptimizerState.h
Import IMP/kernel/OptimizerState.h in the namespace.
IMP_OVERRIDE
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Definition:
compiler_macros.h:75
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73