IMP logo
IMP Reference Guide  develop.27926d84dc,2024/04/20
The Integrative Modeling Platform
IMP::atom::RigidBodyDiffusion Class Reference

#include <IMP/atom/Diffusion.h>

+ Inheritance diagram for IMP::atom::RigidBodyDiffusion:

Detailed Description

A rigid body that is diffusing, so it also has coordinates and a rotational diffusion coefficient. The units on the rotational coefficient are \(radians^2/fs\).

The translational and rotational diffusion coefficients are computed automatically using IMP::atom::get_einstein_diffusion_coefficient(radius) and IMP::atom::get_einstein_rotational_diffusion_coefficient(radius) for radius IMP::core::XYZR(m, pi).get_radius() and default IMP temperature of 297.15, but they can be overridden explicitly.

Note that different translational and rotational coefficients should probably be set manually if the temperature is not the default IMP temperature.

See Also
Diffusion
BrownianDynamics

Definition at line 136 of file Diffusion.h.

Public Member Functions

 RigidBodyDiffusion (::IMP::Model *m,::IMP::ParticleIndex id)
 
 RigidBodyDiffusion (const IMP::ParticleAdaptor &d)
 
double get_rotational_diffusion_coefficient () const
 returns the rotational diffusion coefficient in \(radians^2/fs\) More...
 
void set_rotational_diffusion_coefficient (double d) const
 sets the rotational diffusion coefficient in \(radians^2/fs\) More...
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::atom::Diffusion
 Diffusion (::IMP::Model *m,::IMP::ParticleIndex id)
 
 Diffusion (const IMP::ParticleAdaptor &d)
 
double get_diffusion_coefficient () const
 get diffusion coefficient in \(A^2/fs\) More...
 
void set_diffusion_coefficient (double d)
 set diffusion coefficient in \(A^2/fs\) More...
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::core::XYZ
 XYZ (::IMP::Model *m,::IMP::ParticleIndex id)
 
 XYZ (const IMP::ParticleAdaptor &d)
 
void add_to_derivative (int i, Float v, DerivativeAccumulator &d)
 
void add_to_derivatives (const algebra::Vector3D &v, DerivativeAccumulator &d)
 Add the vector v to the derivative vector of the x,y,z coordinates. More...
 
Float get_coordinate (int i) const
 Get the ith coordinate. More...
 
const algebra::Vector3Dget_coordinates () const
 Convert it to a vector. More...
 
bool get_coordinates_are_optimized () const
 Get whether the coordinates are optimized. More...
 
Float get_derivative (int i) const
 
algebra::Vector3D get_derivatives () const
 Get the vector of derivatives accumulated by add_to_derivatives(). More...
 
algebra::Vector3D get_vector_to (const XYZ &b) const
 Get the vector from this particle to another. More...
 
Float get_x () const
 
Float get_y () const
 
Float get_z () const
 
void set_coordinate (unsigned int i, Float v)
 set the ith coordinate More...
 
void set_coordinates (const algebra::Vector3D &v)
 set all coordinates from a vector More...
 
void set_coordinates_are_optimized (bool tf) const
 Set whether the coordinates are optimized. More...
 
void set_x (Float t)
 
void set_y (Float t)
 
void set_z (Float t)
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::Decorator
bool get_is_valid () const
 Returns true if constructed with a non-default constructor. More...
 
Modelget_model () const
 Returns the Model containing the particle. More...
 
Particleget_particle () const
 Returns the particle decorated by this decorator. More...
 
ParticleIndex get_particle_index () const
 Returns the particle index decorated by this decorator. More...
 
 operator Particle * () const
 
 operator ParticleIndex () const
 
Particleoperator-> () const
 

Static Public Member Functions

static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndex p)
 Return true if the particle is an instance of an RigidBodyDiffusion. More...
 
static FloatKey get_rotational_diffusion_coefficient_key ()
 Get the D key. More...
 
static RigidBodyDiffusion setup_particle (IMP::ParticleAdaptor pa)
 
static RigidBodyDiffusion setup_particle (Model *m, ParticleIndex pi)
 
- Static Public Member Functions inherited from IMP::atom::Diffusion
static FloatKey get_diffusion_coefficient_key ()
 Get the D key. More...
 
static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndex p)
 Return true if the particle is an instance of Diffusion. More...
 
static Diffusion setup_particle (Model *m, ParticleIndex pi, Float D)
 Setup the particle with the specified diffusion coefficient. More...
 
static Diffusion setup_particle (IMP::ParticleAdaptor pa, Float D)
 
static Diffusion setup_particle (IMP::ParticleAdaptor pa, algebra::Vector3D v, Float D)
 
static Diffusion setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D v, Float D)
 Setup the particle with the specified coordinates and diffusion coefficient. More...
 
static Diffusion setup_particle (Model *m, ParticleIndex pi)
 
static Diffusion setup_particle (IMP::ParticleAdaptor pa)
 
- Static Public Member Functions inherited from IMP::core::XYZ
static FloatKey get_coordinate_key (unsigned int i)
 
static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndex pi)
 
static const FloatKeysget_xyz_keys ()
 Get a vector containing the keys for x,y,z. More...
 
static XYZ setup_particle (IMP::ParticleAdaptor pa)
 
static XYZ setup_particle (Model *m, ParticleIndex pi)
 
static XYZ setup_particle (IMP::ParticleAdaptor pa, algebra::Vector3D v)
 
static XYZ setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D v)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Decorator
 Decorator (Model *m, ParticleIndex pi)
 
 Decorator (ParticleAdaptor p)
 

Member Function Documentation

static bool IMP::atom::RigidBodyDiffusion::get_is_setup ( Model m,
ParticleIndex  p 
)
static

Return true if the particle is an instance of an RigidBodyDiffusion.

Definition at line 174 of file Diffusion.h.

+ Here is the call graph for this function:

double IMP::atom::RigidBodyDiffusion::get_rotational_diffusion_coefficient ( ) const

returns the rotational diffusion coefficient in \(radians^2/fs\)

Definition at line 160 of file Diffusion.h.

+ Here is the call graph for this function:

static FloatKey IMP::atom::RigidBodyDiffusion::get_rotational_diffusion_coefficient_key ( )
static

Get the D key.

void IMP::atom::RigidBodyDiffusion::set_rotational_diffusion_coefficient ( double  d) const

sets the rotational diffusion coefficient in \(radians^2/fs\)

Definition at line 168 of file Diffusion.h.

+ Here is the call graph for this function:

static RigidBodyDiffusion IMP::atom::RigidBodyDiffusion::setup_particle ( Model m,
ParticleIndex  pi 
)
static

Setup this particle with automatically inferred translation and rotational diffusion coefficients The diffusion coefficients are computed using core::XYZR::get_radius() for the Stokes radius and the default IMP temperature of 297.15K.

Note
If the simulation temperature or particle radius change, the diffusion coefficient must be changed explicitly e.g., using set_diffusion_coefficient()
The particle must have been decorated with core::XYZR for this constructor to be used The diffusion coefficients are inferred automatically from the particle's radius using IMP::atom::get_einstein_diffusion_coefficient(radius) and IMP::atom::get_einstein_rotational_diffusion_coefficient(radius).
Returns
a RigidBodyDiffusion object that decorates particle pi

Definition at line 157 of file Diffusion.h.

static RigidBodyDiffusion IMP::atom::RigidBodyDiffusion::setup_particle ( IMP::ParticleAdaptor  pa)
static
Returns
a RigidBodyDiffusion object that decorates the particle specified by pa
See Also
setup_particle(m, p)

Definition at line 157 of file Diffusion.h.


The documentation for this class was generated from the following file: