IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP::core::NonRigidMember Class Reference

A decorator for a particle that is part of a rigid body but not rigid. More...

#include <IMP/core/rigid_bodies.h>

+ Inheritance diagram for IMP::core::NonRigidMember:

Detailed Description

A decorator for a particle that is part of a rigid body but not rigid.

NonRigidMembers, like RigidMembers, have internal coordinates and move along with the rigid body. However, it is expected that their internal coordinates will change, and so they are not part of structures that assume rigidity.

See Also
RigidBody

Definition at line 768 of file rigid_bodies.h.

Public Member Functions

 NonRigidMember (::IMP::Model *m,::IMP::ParticleIndex id)
 
 NonRigidMember (const IMP::ParticleAdaptor &d)
 
 NonRigidMember (const NonRigidMember &)=default
 
void add_to_internal_derivatives (const algebra::Vector3D &deriv_parent, DerivativeAccumulator &da)
 Add to derivatives of local coordinates. More...
 
void add_to_internal_rotational_derivatives (const algebra::Vector4D &local_qderiv, const algebra::Rotation3D &rot_local_to_parent, const algebra::Rotation3D &rot_parent_to_global, DerivativeAccumulator &da)
 
void add_to_internal_rotational_derivatives (const algebra::Vector4D &qderiv, DerivativeAccumulator &da)
 
algebra::Vector3D get_internal_derivatives () const
 Get derivatives wrt translation component of internal transformation. More...
 
algebra::Vector4D get_internal_rotational_derivatives () const
 Get derivatives wrt quaternion component of internal transformation. More...
 
NonRigidMemberoperator= (const NonRigidMember &)=default
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::core::RigidBodyMember
 RigidBodyMember (::IMP::Model *m,::IMP::ParticleIndex id)
 
 RigidBodyMember (const IMP::ParticleAdaptor &d)
 
 RigidBodyMember (const RigidBodyMember &)=default
 
const algebra::Vector3Dget_internal_coordinates () const
 Return the internal (local) coordinates of this member. More...
 
algebra::Transformation3D get_internal_transformation () const
 
RigidBody get_rigid_body () const
 
RigidBodyMemberoperator= (const RigidBodyMember &)=default
 
void set_coordinates (const algebra::Vector3D &center)
 sets the global coordinates of this member using XYZ::set_coordinates() More...
 
void set_internal_coordinates (const algebra::Vector3D &v) const
 set the internal (local) coordinates for this member More...
 
void set_internal_transformation (const algebra::Transformation3D &v)
 
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 it is a rigid member More...
 
- Static Public Member Functions inherited from IMP::core::RigidBodyMember
static FloatKeys get_internal_coordinate_keys ()
 
static FloatKeys get_internal_rotation_keys ()
 
static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndexAdaptor p)
 return true if it is a rigid member More...
 
- 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

void IMP::core::NonRigidMember::add_to_internal_derivatives ( const algebra::Vector3D deriv_parent,
DerivativeAccumulator da 
)

Add to derivatives of local coordinates.

Parameters
deriv_parentThe derivative vector in local coordinates of the parent rigid body.
daAccumulates the derivative over the local translation.

Definition at line 784 of file rigid_bodies.h.

+ Here is the call graph for this function:

void IMP::core::NonRigidMember::add_to_internal_rotational_derivatives ( const algebra::Vector4D local_qderiv,
const algebra::Rotation3D rot_local_to_parent,
const algebra::Rotation3D rot_parent_to_global,
DerivativeAccumulator da 
)

Update the rotational derivatives of the internal transformation.

Updates only local quaternion derivatives.

Parameters
local_qderivThe derivative on the quaternion taking this non-rigid body's local coordinates to global.
rot_local_to_parentRotation taking the local coordinates of the non-rigid body to its parent's.
rot_parent_to_globalRotation taking the parent rigid body's local coordinates to global coordinates.
daAccumulates the output derivatives.
void IMP::core::NonRigidMember::add_to_internal_rotational_derivatives ( const algebra::Vector4D qderiv,
DerivativeAccumulator da 
)

Add to internal quaternion derivatives of this non-rigid body

Parameters
qderivDerivative wrt to quaternion taking local coordinates to parent.
daObject for accumulating derivatives

Definition at line 817 of file rigid_bodies.h.

+ Here is the call graph for this function:

algebra::Vector3D IMP::core::NonRigidMember::get_internal_derivatives ( ) const

Get derivatives wrt translation component of internal transformation.

Definition at line 832 of file rigid_bodies.h.

+ Here is the call graph for this function:

algebra::Vector4D IMP::core::NonRigidMember::get_internal_rotational_derivatives ( ) const

Get derivatives wrt quaternion component of internal transformation.

Definition at line 842 of file rigid_bodies.h.

+ Here is the call graph for this function:

static bool IMP::core::NonRigidMember::get_is_setup ( Model m,
ParticleIndex  p 
)
static

return true if it is a rigid member

Definition at line 775 of file rigid_bodies.h.


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