IMP
2.2.0
The Integrative Modeling Platform
IMP Mainpage
All IMP Modules
Related Pages
Modules
Namespaces
Classes
Files
Examples
Indexes
File List
File Members
IMP
All IMP Modules
All IMP Modules and Applications
Argument Index
Class Examples
Design example
Developer Guide
Factory Index
Function Examples
Installation
Introduction
For IMP 2.2
Tools
Dependencies
EMageFit protocol
EMageFit scripts and tools
Integrative docking utility programs
Deprecated List
Modules
Namespaces
Classes
Files
File List
File Members
Examples
Indexes
Class Usage
Class Examples
Class Factories
Function Examples
symmetry/BallMover.h
Go to the documentation of this file.
1
/**
2
* \file IMP/symmetry/BallMover.h
3
* \brief A mover that keeps a particle in a box
4
*
5
* Copyright 2007-2014 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPSYMMETRY_BALL_MOVER_H
10
#define IMPSYMMETRY_BALL_MOVER_H
11
12
#include "symmetry_config.h"
13
#include <
IMP/core/MonteCarlo.h
>
14
#include <
IMP/core/MonteCarloMover.h
>
15
#include <
IMP/algebra.h
>
16
17
IMPSYMMETRY_BEGIN_NAMESPACE
18
19
//! Move a particle and keep it in the primitive cell of a periodic lattice
20
class
IMPSYMMETRYEXPORT
BallMover
:
public
core::MonteCarloMover
{
21
public
:
22
/** The particle is moved within a primitive cell of a periodic lattice
23
\param[in] p is the master particle
24
\param[in] ps are the slave particles
25
\param[in] max_tr is the maximum translation during a step
26
\param[in] ctrs is a list of all cell centers
27
\param[in] trs is the list of transformations from primitive to all cells
28
*/
29
BallMover
(
kernel::Particle
*p,
kernel::Particles
ps,
Float
max_tr,
30
algebra::Vector3Ds
ctrs,
algebra::Transformation3Ds
trs);
31
32
protected
:
33
virtual
kernel::ModelObjectsTemp
do_get_inputs
()
const
IMP_OVERRIDE;
34
virtual
core::MonteCarloMoverResult
do_propose
() IMP_OVERRIDE;
35
virtual
void
do_reject
() IMP_OVERRIDE;
36
IMP_OBJECT_METHODS
(
BallMover
);
37
38
private
:
39
//! Master particle
40
IMP::base::PointerMember<kernel::Particle>
p_;
41
//! List of slave particles
42
kernel::Particles
ps_;
43
//! Maximum translation
44
Float
max_tr_;
45
//! List of centers of all (including primitive) cells
46
algebra::Vector3Ds
ctrs_;
47
//! List of transformations from primitive to all (including primitive) cells
48
algebra::Transformation3Ds
trs_;
49
// master particle old coordinates
50
algebra::Vector3D
oldcoord_;
51
// slave particles old coordinates
52
algebra::Vector3Ds
oldcoords_;
53
};
54
55
IMPSYMMETRY_END_NAMESPACE
56
57
#endif
/* IMPSYMMETRY_BALL_MOVER_H */
MonteCarlo.h
Simple Monte Carlo optimizer.
IMP::base::PointerMember
A smart pointer to a ref-counted Object that is a class memeber.
Definition:
base/Pointer.h:147
IMP::symmetry::BallMover
Move a particle and keep it in the primitive cell of a periodic lattice.
Definition:
symmetry/BallMover.h:20
algebra.h
A container which has pairs which ensure a set is connected.
IMP::core::MonteCarloMover::do_reject
virtual void do_reject()=0
Implement reset_proposed_move()
IMP::core::MonteCarloMoverResult
Definition:
MonteCarloMover.h:29
IMP::base::Vector< base::Pointer< Particle > >
IMP::core::MonteCarloMover
A base class for classes which perturb particles.
Definition:
MonteCarloMover.h:41
MonteCarloMover.h
The base class for movers for MC optimization.
IMP::core::MonteCarloMover::do_propose
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
base/object_macros.h:25
IMP::kernel::Particle
Class to handle individual model particles.
Definition:
kernel/Particle.h:34
IMP::algebra::Vector3D
VectorD< 3 > Vector3D
Definition:
VectorD.h:395
IMP::kernel::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::Float
double Float
Basic floating-point value (could be float, double...)
Definition:
base/types.h:20