IMP
2.4.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Classes
Examples
include
IMP
symmetry
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-2015 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 member.
Definition:
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
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
algebra.h
Include all non-deprecated headers in IMP.algebra.
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::kernel::Particle
Class to handle individual model particles.
Definition:
kernel/Particle.h:37
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:
types.h:20
IMP_OVERRIDE
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Definition:
compiler_macros.h:75