home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 20241221.develop.63b38c487d
PbcBoxedRigidBodyMover.h
Go to the documentation of this file.
1
/**
2
* \file IMP/spb/PbcBoxedRigidBodyMover.h
3
* \brief A mover that transform a rigid body
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPSPB_PBC_BOXED_RIGID_BODY_MOVER_H
10
#define IMPSPB_PBC_BOXED_RIGID_BODY_MOVER_H
11
12
#include <
IMP/SingletonContainer.h
>
13
#include <
IMP/algebra/Transformation3D.h
>
14
#include <
IMP/algebra/Vector3D.h
>
15
#include <
IMP/core/MonteCarlo.h
>
16
#include <IMP/spb/spb_config.h>
17
18
IMPSPB_BEGIN_NAMESPACE
19
20
//! Modify the transformation of a rigid body
21
/** The transformation of a rigid body is moved in a ball of given
22
size. The probability distribution is uniform over the ball.
23
\see MonteCarlo
24
*/
25
class
IMPSPBEXPORT
PbcBoxedRigidBodyMover
:
public
core::MonteCarloMover
{
26
public
:
27
/** The rigid body is rotated and translated to move
28
\param[in] d the rigid body decorator
29
\param[in] max_translation maximum translation during a step
30
\param[in] max_rotation maximum rotation angle in radians
31
*/
32
PbcBoxedRigidBodyMover
(
core::RigidBody
d,
Particles
ps,
Float
max_translation,
33
Float
max_rotation,
algebra::Vector3Ds
centers,
34
algebra::Transformation3Ds
transformations,
35
Particle
*px,
Particle
*py,
Particle
*pz);
36
37
protected
:
38
virtual
IMP::ModelObjectsTemp
do_get_inputs
()
const override
;
39
virtual
core::MonteCarloMoverResult
do_propose
()
override
;
40
virtual
void
do_reject
()
override
;
41
42
IMP_OBJECT_METHODS
(
PbcBoxedRigidBodyMover
);
43
IMP_SHOWABLE
(
PbcBoxedRigidBodyMover
);
44
45
private
:
46
algebra::Transformation3D
last_transformation_;
47
algebra::Vector3Ds
oldcoords_;
48
algebra::Transformation3Ds
oldtrs_;
49
Float
max_translation_;
50
Float
max_angle_;
51
algebra::Vector3Ds
centers_;
52
algebra::Transformation3Ds
transformations_;
53
core::RigidBody
d_;
54
IMP::Particles
ps_;
55
IMP::Particles
ps_norb_;
56
std::vector<core::RigidBody> rbs_;
57
58
// particles for scaling
59
IMP::PointerMember<IMP::Particle>
px_;
60
IMP::PointerMember<IMP::Particle>
py_;
61
IMP::PointerMember<IMP::Particle>
pz_;
62
63
algebra::Vector3D
get_vector(
algebra::Vector3D
center);
64
algebra::Transformation3D
get_transformation(
algebra::Transformation3D
trans);
65
IMP::Particles
get_particles
(
IMP::Particles
ps);
66
std::vector<core::RigidBody> get_rigid_bodies(
IMP::Particles
ps);
67
};
68
69
IMPSPB_END_NAMESPACE
70
71
#endif
/* IMPSPB_PBC_BOXED_RIGID_BODY_MOVER_H */
IMP::algebra::Transformation3D
Simple 3D transformation class.
Definition:
Transformation3D.h:37
SingletonContainer.h
A container for Singletons.
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
IMP::get_particles
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Get the particles from a list of indexes.
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::spb::PbcBoxedRigidBodyMover
Modify the transformation of a rigid body.
Definition:
PbcBoxedRigidBodyMover.h:25
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()
Transformation3D.h
Simple 3D transformation class.
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::core::RigidBody
A decorator for a rigid body.
Definition:
rigid_bodies.h:82
IMP::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0