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
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: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