home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.20.2
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 2.20.2
PbcBoxedMover.h
Go to the documentation of this file.
1
/**
2
* \file IMP/spb/PbcBoxedMover.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_PBC_BOXED_MOVER_H
10
#define IMPSPB_PBC_BOXED_MOVER_H
11
12
#include <
IMP/algebra/Vector3D.h
>
13
#include <
IMP/core.h
>
14
#include <
IMP/core/MonteCarlo.h
>
15
#include <IMP/spb/spb_config.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
PbcBoxedMover
:
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
PbcBoxedMover
(
Particle
*p,
Particles
ps,
Float
max_tr,
31
algebra::Vector3Ds
centers,
32
algebra::Transformation3Ds
transformations,
Particle
*px,
33
Particle
*py,
Particle
*pz);
34
35
protected
:
36
virtual
IMP::ModelObjectsTemp
do_get_inputs
()
const override
;
37
virtual
core::MonteCarloMoverResult
do_propose
()
override
;
38
virtual
void
do_reject
()
override
;
39
IMP_OBJECT_METHODS
(
PbcBoxedMover
);
40
IMP_SHOWABLE
(
PbcBoxedMover
);
41
42
private
:
43
Float
max_tr_;
44
algebra::Transformation3Ds
transformations_;
45
algebra::Vector3Ds
centers_;
46
algebra::Vector3Ds
oldcoords_;
47
IMP::PointerMember<IMP::Particle>
p_;
48
IMP::Particles
ps_;
49
IMP::PointerMember<IMP::Particle>
px_;
50
IMP::PointerMember<IMP::Particle>
py_;
51
IMP::PointerMember<IMP::Particle>
pz_;
52
53
algebra::Vector3D
get_vector(
algebra::Vector3D
center);
54
algebra::Transformation3D
get_transformation(
algebra::Transformation3D
trans);
55
};
56
57
IMPSPB_END_NAMESPACE
58
59
#endif
/* IMPSPB_PBC_BOXED_MOVER_H */
IMP::spb::PbcBoxedMover
Move a particle and keep it in a box.
Definition:
PbcBoxedMover.h:24
IMP::algebra::Transformation3D
Simple 3D transformation class.
Definition:
Transformation3D.h:37
MonteCarlo.h
Simple Monte Carlo optimizer.
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< Pointer< Particle > >
IMP::core::MonteCarloMover
A base class for classes which perturb particles.
Definition:
MonteCarloMover.h:44
IMP::PointerMember< IMP::Particle >
IMP::core::MonteCarloMover::do_propose
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
IMP::algebra::Vector3D
VectorD< 3 > Vector3D
Definition:
VectorD.h:425
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