IMP
2.2.0
The Integrative Modeling Platform
|
Simple molecular dynamics optimizer. More...
#include <IMP/atom/MolecularDynamics.h>
Public Member Functions | |
MolecularDynamics (kernel::Model *m) | |
virtual void | assign_velocities (Float temperature) |
Assign velocities representative of the given temperature. | |
virtual double | do_step (const kernel::ParticleIndexes &sc, double dt) |
virtual bool | get_is_simulation_particle (kernel::ParticleIndex p) const |
virtual Float | get_kinetic_energy () const |
Float | get_kinetic_temperature (Float ekinetic) const |
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. | |
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 |
double | get_temperature () const |
void | set_current_time (double ct) |
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. | |
ScoringFunction * | get_scoring_function () const |
Return the scoring function that is being used. | |
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. | |
bool | get_has_required_score_states () const |
ModelObjectsTemp | get_inputs () const |
ModelObjectsTemps | get_interactions () const |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
const ScoreStatesTemp & | get_required_score_states () const |
void | set_has_dependencies (bool tf) |
void | set_has_required_score_states (bool tf) |
Public Member Functions inherited from IMP::base::Object | |
virtual void | clear_caches () |
virtual void | do_destroy () |
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. | |
void | initialize () |
virtual void | propagate_coordinates (const kernel::ParticleIndexes &ps, double step_size) |
First part of velocity Verlet (update coordinates and half-step velocity) | |
virtual void | propagate_velocities (const kernel::ParticleIndexes &ps, double step_size) |
Second part of velocity Verlet (update velocity) | |
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 | |
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 | |
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... | |
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. | |
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.
IMP::atom::MolecularDynamics::MolecularDynamics | ( | kernel::Model * | m | ) |
Score based on the provided model
|
virtual |
Perform a single time step and return the amount that time should be advanced. A maximum time step value is passed.
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 |
Reimplemented in IMP::isd::MolecularDynamics.
[in] | ekinetic | kinetic energy, e.g. from get_kinetic_energy() |
void IMP::atom::MolecularDynamics::set_velocity_cap | ( | Float | velocity_cap | ) |
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.