IMP logo
Public Member Functions | Protected Member Functions | Protected Attributes
IMP::atom::MolecularDynamics Class Reference

Detailed Description

Simple molecular dynamics optimizer.

The particles to be optimized must have optimizable x,y,z attributes and a non-optimizable mass attribute; this optimizer assumes the score to be energy in kcal/mol, the xyz coordinates to be in angstroms, and the mass to be in AMU (g/mol).

Particles without optimized x,y,z and nonoptimized mass are skipped.

See also:
VelocityScalingOptimizerState
LangevinThermostatOptimizerState
BerendsenThermostatOptimizerState
RemoveRigidMotionOptimizerState

Examples: dock with crosslinks

+ Inheritance diagram for IMP::atom::MolecularDynamics:

List of all members.

Public Member Functions

 MolecularDynamics (Model *m=nullptr)
virtual void assign_velocities (Float temperature)
 Assign velocities representative of the given temperature.
virtual Float get_kinetic_energy () const
Float get_kinetic_temperature (Float ekinetic) const
void set_velocity_cap (Float velocity_cap)
 Set maximum velocity in A/fs.

Protected Member Functions

void cap_velocity_component (Float &vel)
 Cap a velocity component to the maximum value.
void initialize ()
virtual void propagate_coordinates (const ParticleIndexes &ps, double step_size)
 First part of velocity Verlet (update coordinates and half-step velocity)
virtual void propagate_velocities (const ParticleIndexes &ps, double step_size)
 Second part of velocity Verlet (update velocity)
virtual void setup_degrees_of_freedom (const ParticleIndexes &ps)

Protected Attributes

int degrees_of_freedom_
 Number of degrees of freedom in the system.
Float velocity_cap_
 Maximum absolute value of a single velocity component.
FloatKey vs_ [3]
 Keys of the xyz velocities.

Constructor & Destructor Documentation

IMP::atom::MolecularDynamics::MolecularDynamics ( Model m = nullptr)

Score based on the provided model

Reimplemented in IMP::isd::MolecularDynamics.


Member Function Documentation

virtual void IMP::atom::MolecularDynamics::assign_velocities ( Float  temperature) [virtual]

Assign velocities representative of the given temperature.

Reimplemented in IMP::isd::MolecularDynamics.

void IMP::atom::MolecularDynamics::cap_velocity_component ( Float vel) [protected]

Cap a velocity component to the maximum value.

virtual Float IMP::atom::MolecularDynamics::get_kinetic_energy ( ) const [virtual]
Returns:
the current kinetic energy of the system, in kcal/mol

Reimplemented in IMP::isd::MolecularDynamics.

Float IMP::atom::MolecularDynamics::get_kinetic_temperature ( Float  ekinetic) const
Returns:
the current kinetic temperature of the system
Parameters:
[in]ekinetickinetic energy, e.g. from get_kinetic_energy()
virtual void IMP::atom::MolecularDynamics::propagate_coordinates ( const ParticleIndexes &  ps,
double  step_size 
) [protected, virtual]

First part of velocity Verlet (update coordinates and half-step velocity)

Reimplemented in IMP::isd::MolecularDynamics.

virtual void IMP::atom::MolecularDynamics::propagate_velocities ( const ParticleIndexes &  ps,
double  step_size 
) [protected, virtual]

Second part of velocity Verlet (update velocity)

Reimplemented in IMP::isd::MolecularDynamics.

void IMP::atom::MolecularDynamics::set_velocity_cap ( Float  velocity_cap)

Set maximum velocity in A/fs.

At each dynamics time step, the absolute value of each velocity component is capped at this value. This prevents spurious strong forces (occasionally encountered with frustrated conformations) from causing large oscillations in the system. By default, velocities are not capped.

Note:
The actual velocities that are capped are the half-step velocities in the velocity Verlet algorithm.

Member Data Documentation

Number of degrees of freedom in the system.

Maximum absolute value of a single velocity component.

Keys of the xyz velocities.


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

Generated on Fri Feb 10 2012 23:36:24 for IMP by doxygen 1.7.5.1