IMP
2.3.1
The Integrative Modeling Platform
|
Simple molecular dynamics optimizer. More...
#include <IMP/atom/MolecularDynamics.h>
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).
kernel::Particles without optimized x,y,z and nonoptimized mass are skipped.
Definition at line 34 of file atom/MolecularDynamics.h.
Public Member Functions | |
MolecularDynamics (kernel::Model *m) | |
virtual void | assign_velocities (Float temperature) |
Assign velocities representative of the given temperature. More... | |
virtual double | do_step (const kernel::ParticleIndexes &sc, double dt) |
Perform a single time step. More... | |
virtual bool | get_is_simulation_particle (kernel::ParticleIndex p) const |
Return true if the passed particle is appropriate for the simulation. More... | |
virtual Float | get_kinetic_energy () const |
Return the current kinetic energy of the system, in kcal/mol. More... | |
Float | get_kinetic_temperature (Float ekinetic) const |
Return the current kinetic temperature of the system. More... | |
virtual std::string | get_type_name () const |
virtual ::IMP::base::VersionInfo | get_version_info () const |
Get information about the module and version of the object. More... | |
void | set_velocity_cap (Float velocity_cap) |
Set maximum velocity in A/fs. More... | |
virtual void | setup (const kernel::ParticleIndexes &ps) |
Public Member Functions inherited from IMP::atom::Simulator | |
Simulator (kernel::Model *m, std::string name="Simulator %1%", double wave_factor=1.0) | |
double | get_current_time () const |
double | get_kt () const |
kernel::ParticleIndexes | get_simulation_particle_indexes () const |
kernel::ParticlesTemp | get_simulation_particles () const |
Returns the set of particles used in the simulation. More... | |
double | get_temperature () const |
void | set_current_time (double ct) |
Sets the current simulation time in femtoseconds to ct. More... | |
void | set_temperature (double d) |
double | simulate (double time_in_fs) |
Simulate for a given time in fs. More... | |
double | simulate_wave (double time_in_fs, double max_time_step_factor=10.0, double base=1.5) |
void | set_maximum_time_step (double ts) |
double | get_maximum_time_step () const |
double | get_last_time_step () const |
void | remove_particle (kernel::Particle *d) |
void | remove_particles (const kernel::Particles &d) |
void | set_particles (const kernel::Particles &ps) |
void | set_particles_order (const kernel::Particles &objs) |
unsigned int | add_particle (kernel::Particle *obj) |
void | add_particles (const kernel::Particles &objs) |
void | clear_particles () |
unsigned int | get_number_of_particles () const |
bool | get_has_particles () |
kernel::Particle * | get_particle (unsigned int i) const |
kernel::Particles | get_particles () const |
void | reserve_particles (unsigned int sz) |
Public Member Functions inherited from IMP::kernel::Optimizer | |
Optimizer (kernel::Model *m, std::string name="Optimizer %1%") | |
double | get_last_score () const |
Return the score found in the last evaluate. More... | |
ScoringFunction * | get_scoring_function () const |
Return the scoring function that is being used. More... | |
bool | get_stop_on_good_score () const |
double | optimize (unsigned int max_steps) |
Optimize the model for up to max_steps iterations. More... | |
virtual void | set_scoring_function (ScoringFunctionAdaptor sf) |
void | set_stop_on_good_score (bool tf) |
void | remove_optimizer_state (OptimizerState *d) |
void | remove_optimizer_states (const OptimizerStates &d) |
void | set_optimizer_states (const OptimizerStates &ps) |
void | set_optimizer_states_order (const OptimizerStates &objs) |
unsigned int | add_optimizer_state (OptimizerState *obj) |
void | add_optimizer_states (const OptimizerStates &objs) |
void | clear_optimizer_states () |
unsigned int | get_number_of_optimizer_states () const |
bool | get_has_optimizer_states () |
OptimizerState * | get_optimizer_state (unsigned int i) const |
OptimizerStates | get_optimizer_states () const |
void | reserve_optimizer_states (unsigned int sz) |
Public Member Functions inherited from IMP::kernel::ModelObject | |
ModelObject (kernel::Model *m, std::string name) | |
bool | get_has_dependencies () const |
Return whether this object has dependencies computed. More... | |
bool | get_has_required_score_states () const |
Return whether score states are computed. More... | |
ModelObjectsTemp | get_inputs () const |
ModelObjectsTemps | get_interactions () const |
Get the interacting sets induced by this ModelObject. More... | |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
const ScoreStatesTemp & | get_required_score_states () const |
Get the score states that are ancestors of this in the dependency graph. More... | |
void | set_has_dependencies (bool tf) |
Either invalidate the dependencies or ensure they are correct. More... | |
void | set_has_required_score_states (bool tf) |
Compute the required score states. More... | |
Public Member Functions inherited from IMP::base::Object | |
virtual void | clear_caches () |
CheckLevel | get_check_level () const |
LogLevel | get_log_level () const |
void | set_check_level (CheckLevel l) |
void | set_log_level (LogLevel l) |
Set the logging level used in this object. More... | |
void | set_was_used (bool tf) const |
void | show (std::ostream &out=std::cout) const |
const std::string & | get_name () const |
void | set_name (std::string name) |
Protected Member Functions | |
void | cap_velocity_component (Float &vel) |
Cap a velocity component to the maximum value. More... | |
void | initialize () |
virtual void | propagate_coordinates (const kernel::ParticleIndexes &ps, double step_size) |
First part of velocity Verlet (update coordinates and half-step velocity) More... | |
virtual void | propagate_velocities (const kernel::ParticleIndexes &ps, double step_size) |
Second part of velocity Verlet (update velocity) More... | |
virtual void | setup_degrees_of_freedom (const kernel::ParticleIndexes &ps) |
Protected Member Functions inherited from IMP::atom::Simulator | |
virtual Float | do_optimize (unsigned int max_steps) |
override this function to do actual optimization More... | |
Protected Member Functions inherited from IMP::kernel::Optimizer | |
virtual ModelObjectsTemp | do_get_inputs () const |
virtual ModelObjectsTemp | do_get_outputs () const |
don't return anything here to avoid pointless dependencies More... | |
ModelObjectsTemp | get_optimizer_state_inputs () const |
void | update_states () const |
Update optimizer states, should be called at each successful step. More... | |
Protected Member Functions inherited from IMP::kernel::ModelObject | |
virtual ModelObjectsTemps | do_get_interactions () const |
virtual void | handle_set_has_required_score_states (bool) |
Protected Member Functions inherited from IMP::base::Object | |
Object (std::string name) | |
Construct an object with the given name. More... | |
virtual void | do_destroy () |
Protected Attributes | |
int | degrees_of_freedom_ |
Number of degrees of freedom in the system. More... | |
Float | velocity_cap_ |
Maximum absolute value of a single velocity component. More... | |
FloatKey | vs_ [3] |
Keys of the xyz velocities. More... | |
IMP::atom::MolecularDynamics::MolecularDynamics | ( | kernel::Model * | m | ) |
Score based on the provided model
|
virtual |
Assign velocities representative of the given temperature.
Reimplemented in IMP::isd::MolecularDynamics.
|
protected |
Cap a velocity component to the maximum value.
Definition at line 83 of file atom/MolecularDynamics.h.
|
virtual |
Perform a single time step.
[in] | dt | maximum time step value |
Implements IMP::atom::Simulator.
|
virtual |
Return true if the passed particle is appropriate for the simulation.
Implements IMP::atom::Simulator.
Reimplemented in IMP::isd::MolecularDynamics.
|
virtual |
Return the current kinetic energy of the system, in kcal/mol.
Reimplemented in IMP::isd::MolecularDynamics.
Return the current kinetic temperature of the system.
[in] | ekinetic | kinetic energy, e.g. from get_kinetic_energy() |
|
virtual |
Get information about the module and version of the object.
Reimplemented from IMP::base::Object.
Definition at line 67 of file atom/MolecularDynamics.h.
|
protectedvirtual |
First part of velocity Verlet (update coordinates and half-step velocity)
Reimplemented in IMP::isd::MolecularDynamics.
|
protectedvirtual |
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.
Definition at line 57 of file atom/MolecularDynamics.h.
|
virtual |
A Simulator class can perform setup operations before a series of simulation steps is taken.
Reimplemented from IMP::atom::Simulator.
|
protected |
Number of degrees of freedom in the system.
Definition at line 95 of file atom/MolecularDynamics.h.
|
protected |
Maximum absolute value of a single velocity component.
Definition at line 98 of file atom/MolecularDynamics.h.
|
protected |
Keys of the xyz velocities.
Definition at line 92 of file atom/MolecularDynamics.h.