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
spb
version 2.22.0
BoxedMover.h
Go to the documentation of this file.
1
/**
2
* \file IMP/spb/BoxedMover.h
3
* \brief A mover that keeps a particle in a box
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPSPB_BOXED_MOVER_H
10
#define IMPSPB_BOXED_MOVER_H
11
12
#include <IMP/spb/spb_config.h>
13
#include <
IMP/algebra/Vector3D.h
>
14
#include <
IMP/core.h
>
15
#include <
IMP/core/MonteCarloMover.h
>
16
17
IMPSPB_BEGIN_NAMESPACE
18
19
//! Move a particle and keep it in a box
20
/** The transformation of a rigid body is moved in a ball of given
21
size. The probability distribution is uniform over the ball.
22
\see MonteCarlo
23
*/
24
class
IMPSPBEXPORT
BoxedMover
:
public
core::MonteCarloMover
{
25
public
:
26
/** The particle is moved within a (hexagonal or cubic) box
27
\param[in] p is the particle
28
\param[in] max_tr is the maximum translation during a step
29
*/
30
BoxedMover
(
Particle
*p,
Float
max_tr,
algebra::Vector3Ds
centers);
31
32
protected
:
33
virtual
core::MonteCarloMoverResult
do_propose
()
override
;
34
virtual
void
do_reject
()
override
;
35
virtual
IMP::ModelObjectsTemp
do_get_inputs
()
const override
;
36
37
// IMP_MOVER(BoxedMover);
38
39
IMP_OBJECT_METHODS
(
BoxedMover
);
40
IMP_SHOWABLE
(
BoxedMover
);
41
42
private
:
43
Float
max_tr_;
44
algebra::Vector3Ds
centers_;
45
algebra::Vector3D
oldcoord_;
46
Particle
*p_;
47
};
48
49
IMPSPB_END_NAMESPACE
50
51
#endif
/* IMPSPB_BOXED_MOVER_H */
IMP::spb::BoxedMover
Move a particle and keep it in a box.
Definition:
BoxedMover.h:24
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
core.h
Include all non-deprecated headers in IMP.core.
IMP_SHOWABLE
#define IMP_SHOWABLE(Name)
Definition:
showable_macros.h:41
IMP::core::MonteCarloMover::do_reject
virtual void do_reject()=0
Implement reset_proposed_move()
IMP::core::MonteCarloMoverResult
Return value of the MonteCarloMover::propose() function.
Definition:
MonteCarloMover.h:31
IMP::Vector< VectorD< 3 > >
IMP::core::MonteCarloMover
A base class for classes which perturb particles.
Definition:
MonteCarloMover.h:44
MonteCarloMover.h
The base class for movers for Monte Carlo optimization.
IMP::core::MonteCarloMover::do_propose
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
IMP::algebra::Vector3D
VectorD< 3 > Vector3D
Definition:
VectorD.h:408
IMP::Float
double Float
Basic floating-point value (could be float, double...)
Definition:
types.h:19
Vector3D.h
Simple 3D vector class.
IMP::Particle
Class to handle individual particles of a Model object.
Definition:
Particle.h:43
IMP::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0