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
CellMover.h
Go to the documentation of this file.
1
/**
2
* \file IMP/spb/CellMover.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_CELL_MOVER_H
10
#define IMPSPB_CELL_MOVER_H
11
12
#include <
IMP/SingletonContainer.h
>
13
#include <
IMP/algebra/Transformation3D.h
>
14
#include <
IMP/algebra/Vector3D.h
>
15
#include <
IMP/core/MonteCarloMover.h
>
16
#include <
IMP/core/rigid_bodies.h
>
17
#include <IMP/spb/spb_config.h>
18
19
IMPSPB_BEGIN_NAMESPACE
20
21
//! Apply a mover that moves particles inside the unit cell.
22
/** The mover takes into account the fact that the unit cell size
23
changes from one step to the next.
24
*/
25
class
IMPSPBEXPORT
CellMover
:
public
core::MonteCarloMover
{
26
public
:
27
CellMover
(
Particle
*p,
Particles
ps,
Float
max_translation);
28
29
// IMP_MOVER(CellMover);
30
protected
:
31
virtual
core::MonteCarloMoverResult
do_propose
()
override
;
32
virtual
void
do_reject
()
override
;
33
virtual
IMP::ModelObjectsTemp
do_get_inputs
()
const override
;
34
35
IMP_OBJECT_METHODS
(
CellMover
);
36
IMP_SHOWABLE
(
CellMover
);
37
38
private
:
39
Float
old_scale_;
40
algebra::Vector3Ds
oldcoords_;
41
algebra::Transformation3Ds
oldtrs_;
42
IMP::PointerMember<IMP::Particle>
p_;
43
Particles
ps_;
44
Float
max_translation_;
45
Particles
ps_norb_;
46
std::vector<core::RigidBody> rbs_;
47
48
Particles
get_particles
(
Particles
ps);
49
std::vector<core::RigidBody> get_rigid_bodies(
Particles
ps);
50
algebra::Vector3D
get_transformed(
Float
cf,
algebra::Vector3D
oc);
51
};
52
53
IMPSPB_END_NAMESPACE
54
55
#endif
/* IMPSPB_CELL_MOVER_H */
SingletonContainer.h
A container for Singletons.
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::spb::CellMover
Apply a mover that moves particles inside the unit cell.
Definition:
CellMover.h:25
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
rigid_bodies.h
functionality for defining rigid bodies
MonteCarloMover.h
The base class for movers for Monte Carlo optimization.
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: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