home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 20241121.develop.d97d4ead1f
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: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