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
atom
version 20241221.develop.63b38c487d
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-2022 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/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
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
)
override
;
48
49
private
:
50
Particles
pis_;
51
double
temperature_;
52
double
gamma_;
53
};
54
55
IMP_OBJECTS
(
LangevinThermostatOptimizerState
,
56
LangevinThermostatOptimizerStates
);
57
58
IMPATOM_END_NAMESPACE
59
60
#endif
/* IMPATOM_LANGEVIN_THERMOSTAT_OPTIMIZER_STATE_H */
IMP::atom::LangevinThermostatOptimizerState::set_particles
void set_particles(const Particles &pis)
Set the particles to use.
Definition:
LangevinThermostatOptimizerState.h:31
IMP::atom::LangevinThermostatOptimizerState
Maintains temperature during molecular dynamics.
Definition:
LangevinThermostatOptimizerState.h:25
base_types.h
Basic types used by IMP.
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
IMP::OptimizerState::do_update
virtual void do_update(unsigned int)
Definition:
OptimizerState.h:133
IMP::Vector< Pointer< Particle > >
IMP::ParticleIndexesAdaptor
Take Decorator, Particle or ParticleIndex.
Definition:
particle_index.h:50
IMP::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
Model.h:86
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
IMP_OBJECTS
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Definition:
object_macros.h:44
IMP::OptimizerState
Shared optimizer state that is invoked upon commitment of new coordinates.
Definition:
OptimizerState.h:45
OptimizerState.h
Shared optimizer state.