IMP
2.3.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
VelocityScalingOptimizerState.h
Go to the documentation of this file.
1
/**
2
* \file IMP/atom/VelocityScalingOptimizerState.h
3
* \brief Maintains temperature during molecular dynamics by velocity scaling.
4
*
5
* Copyright 2007-2014 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPATOM_VELOCITY_SCALING_OPTIMIZER_STATE_H
10
#define IMPATOM_VELOCITY_SCALING_OPTIMIZER_STATE_H
11
12
#include <IMP/atom/atom_config.h>
13
#include <
IMP/kernel/Particle.h
>
14
#include <
IMP/base_types.h
>
15
#include <
IMP/OptimizerState.h
>
16
17
IMPATOM_BEGIN_NAMESPACE
18
19
//! Maintains temperature during molecular dynamics by velocity scaling.
20
/** This OptimizerState, when used with the MolecularDynamics optimizer,
21
implements a simple thermostat by periodically rescaling the velocities.
22
(Note that this results in discontinuous dynamics.)
23
\see MolecularDynamics
24
*/
25
class
IMPATOMEXPORT
VelocityScalingOptimizerState
:
public
OptimizerState
{
26
public
:
27
VelocityScalingOptimizerState
(
kernel::Model
*m,
28
kernel::ParticleIndexesAdaptor
pis,
29
double
temperature);
30
31
//! Set the particles to use.
32
void
set_particles
(
const
kernel::Particles
&pis) { pis_ = pis; }
33
34
//! Set the temperature to use.
35
void
set_temperature
(
Float
temperature) { temperature_ = temperature; }
36
37
//! Rescale the velocities now
38
void
rescale_velocities()
const
;
39
40
IMP_OBJECT_METHODS
(
VelocityScalingOptimizerState
);
41
42
protected
:
43
virtual
void
do_update
(
unsigned
int
call)
IMP_OVERRIDE
;
44
45
private
:
46
kernel::Particles
pis_;
47
Float
temperature_;
48
unsigned
skip_steps_;
49
unsigned
call_number_;
50
51
//! Keys of the xyz velocities
52
FloatKey
vs_[3];
53
};
54
55
IMP_OBJECTS
(
VelocityScalingOptimizerState
,
VelocityScalingOptimizerStates
);
56
57
IMPATOM_END_NAMESPACE
58
59
#endif
/* IMPATOM_VELOCITY_SCALING_OPTIMIZER_STATE_H */
IMP::kernel::Key< 0, true >
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_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 > >
IMP::kernel::ParticleIndexesAdaptor
Definition:
kernel/particle_index.h:50
IMP::atom::VelocityScalingOptimizerState
Maintains temperature during molecular dynamics by velocity scaling.
Definition:
VelocityScalingOptimizerState.h:25
IMP::atom::VelocityScalingOptimizerState::set_particles
void set_particles(const kernel::Particles &pis)
Set the particles to use.
Definition:
VelocityScalingOptimizerState.h:32
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
IMP::Float
double Float
Basic floating-point value (could be float, double...)
Definition:
types.h:20
IMP::atom::VelocityScalingOptimizerState::set_temperature
void set_temperature(Float temperature)
Set the temperature to use.
Definition:
VelocityScalingOptimizerState.h:35
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