home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.22.0
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
npctransport
version 2.22.0
BodyStatisticsOptimizerState.h
Go to the documentation of this file.
1
/**
2
* \file npctransport/BodyStatisticsOptimizerState.h
3
* \brief Track the rotational correlation time of a rigid body particle
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*/
7
8
#ifndef IMPNPCTRANSPORT_BODY_STATISTICS_OPTIMIZER_STATE_H
9
#define IMPNPCTRANSPORT_BODY_STATISTICS_OPTIMIZER_STATE_H
10
11
#include "npctransport_config.h"
12
#include <
IMP/Particle.h
>
13
#include <
IMP/algebra/Transformation3D.h
>
14
#include <
IMP/OptimizerState.h
>
15
//#include <IMP/optimizer_state_macros.h>
16
#include <
IMP/core/PeriodicOptimizerState.h
>
17
#include <
IMP/npctransport/typedefs.h
>
18
#include <deque>
19
20
IMPNPCTRANSPORT_BEGIN_NAMESPACE
21
22
class
Statistics;
23
24
/** Track the rotational correlation time of a rigid body particle*/
25
/** The correlation with at most the last 100 updates is tracked*/
26
class
IMPNPCTRANSPORTEXPORT
BodyStatisticsOptimizerState
27
:
public
core::PeriodicOptimizerState
{
28
private
:
29
typedef
core::PeriodicOptimizerState
P
;
30
Particle
*p_;
31
WeakPointer<IMP::npctransport::Statistics>
statistics_manager_;
32
33
// time series of the positions of particles in the chain:
34
std::deque<algebra::Transformation3D> positions_;
35
std::deque<double> times_fs_;
36
37
Particle
*get_particle()
const
{
return
p_; }
38
39
void
add_orientation(
algebra::Rotation3D
rot) { positions_.push_back(rot); }
40
41
double
get_dt()
const
;
42
43
public
:
44
/**
45
@param p the particle being wrapped
46
@param statistics_manager an optional statistical manager to which statistical updates are sent
47
(of e.g. zr-distribution that are collectively gathered)
48
@param periodicity frame interval for statistics, equiv. to set_period(1)
49
*/
50
BodyStatisticsOptimizerState
51
(
Particle
*p,
52
IMP::npctransport::Statistics
* statistics_manager =
nullptr
,
53
unsigned
int
periodicity=1);
54
55
double
get_correlation_time()
const
;
56
57
double
get_diffusion_coefficient
()
const
;
58
59
void
reset
()
override
;
60
61
/** updates the z-r distriubution table in owner's statistics
62
for this particle type (distribution of z coordinates and r coordinates)
63
*/
64
void
update_particle_type_zr_distribution_map();
65
66
virtual
void
do_update
(
unsigned
int
call_num)
override
;
67
68
IMP_OBJECT_METHODS
(
BodyStatisticsOptimizerState
);
69
};
70
IMP_OBJECTS
(
BodyStatisticsOptimizerState
,
BodyStatisticsOptimizerStates
);
71
72
IMPNPCTRANSPORT_END_NAMESPACE
73
74
#endif
/* IMPNPCTRANSPORT_BODY_STATISTICS_OPTIMIZER_STATE_H */
IMP::WeakPointer
Smart pointer to Object-derived classes that does not refcount.
Definition:
WeakPointer.h:77
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
PeriodicOptimizerState.h
Angle restraint between three particles.
IMP::OptimizerState::do_update
virtual void do_update(unsigned int)
Definition:
OptimizerState.h:133
IMP::npctransport::Statistics
Statistics and order parameters about the simulations.
Definition:
npctransport/Statistics.h:63
IMP::Vector
A more IMP-like version of the std::vector.
Definition:
Vector.h:50
IMP::OptimizerState::reset
virtual void reset()
Reset counters, as if at the start of an optimize run.
Transformation3D.h
Simple 3D transformation class.
IMP::algebra::Rotation3D
3D rotation class.
Definition:
Rotation3D.h:52
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
typedefs.h
description
IMP::Particle
Class to handle individual particles of a Model object.
Definition:
Particle.h:43
OptimizerState.h
Shared optimizer state.
IMP::atom::get_diffusion_coefficient
double get_diffusion_coefficient(const algebra::Vector3Ds &displacements, double dt)
IMP::npctransport::BodyStatisticsOptimizerState
Definition:
BodyStatisticsOptimizerState.h:26