IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
|
Simple molecular dynamics simulator. More...
#include <IMP/atom/MolecularDynamics.h>
Simple molecular dynamics simulator.
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.
Definition at line 108 of file atom/MolecularDynamics.h.
Public Member Functions | |
MolecularDynamics (Model *m) | |
virtual void | assign_velocities (Float temperature) |
Assign velocities representative of the given temperature. More... | |
virtual double | do_step (const ParticleIndexes &sc, double dt) override |
Perform a single time step. More... | |
virtual bool | get_is_simulation_particle (ParticleIndex p) const override |
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 override |
virtual ::IMP::VersionInfo | get_version_info () const override |
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 ParticleIndexes &ps) override |
Public Member Functions inherited from IMP::atom::Simulator | |
Simulator (Model *m, std::string name="Simulator %1%", double wave_factor=1.0) | |
double | get_current_time () const |
double | get_kt () const |
ParticleIndexes | get_simulation_particle_indexes () const |
ParticlesTemp | get_simulation_particles () const |
Returns the set of particles used in the simulation. More... | |
double | get_temperature () const |
Return the simulator temperature in kelvin. More... | |
void | set_current_time (double ct) |
Sets the current simulation time in femtoseconds to ct. More... | |
void | set_temperature (double d) |
Set the temperature of the simulator to d in kelvin units. More... | |
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 | remove_particle (Particle *d) |
void | remove_particles (const Particles &d) |
void | set_particles (const Particles &ps) |
void | set_particles_order (const Particles &objs) |
unsigned int | add_particle (Particle *obj) |
void | add_particles (const Particles &objs) |
void | clear_particles () |
unsigned int | get_number_of_particles () const |
bool | get_has_particles () |
Particle * | get_particle (unsigned int i) const |
Particles | get_particles () const |
void | erase_particle (unsigned int i) |
void | reserve_particles (unsigned int sz) |
void | set_maximum_time_step (double ts) |
double | get_maximum_time_step () const |
Get the maximum allowed time step in fs. More... | |
double | get_last_time_step () const |
Public Member Functions inherited from IMP::Optimizer | |
Optimizer (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) |
Set the scoring function to use. More... | |
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 | erase_optimizer_state (unsigned int i) |
void | reserve_optimizer_states (unsigned int sz) |
Public Member Functions inherited from IMP::ModelObject | |
ModelObject (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::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 ParticleIndexes &ps, double step_size) |
First part of velocity Verlet (update coordinates and half-step velocity) More... | |
virtual void | propagate_velocities (const ParticleIndexes &ps, double step_size) |
Second part of velocity Verlet (update velocity) More... | |
virtual void | setup_degrees_of_freedom (const ParticleIndexes &ps) |
Protected Member Functions inherited from IMP::atom::Simulator | |
virtual Float | do_optimize (unsigned int max_steps) override |
override this function to do actual optimization More... | |
virtual double | do_simulate (double time) |
virtual double | do_simulate_wave (double time_in_fs, double max_time_step_factor=10.0, double base=1.5) |
Protected Member Functions inherited from IMP::Optimizer | |
virtual ModelObjectsTemp | do_get_inputs () const override |
virtual ModelObjectsTemp | do_get_outputs () const override |
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::ModelObject | |
virtual ModelObjectsTemps | do_get_interactions () const |
virtual void | handle_set_has_required_score_states (bool) |
Protected Member Functions inherited from IMP::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... | |
IMP::atom::MolecularDynamics::MolecularDynamics | ( | 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 157 of file atom/MolecularDynamics.h.
|
overridevirtual |
Perform a single time step.
[in] | sc | the particles that should be moved |
[in] | dt | maximum time step value |
Implements IMP::atom::Simulator.
|
overridevirtual |
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() |
|
overridevirtual |
Get information about the module and version of the object.
Reimplemented from IMP::Object.
Definition at line 141 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 131 of file atom/MolecularDynamics.h.
|
overridevirtual |
Perform any setup operations needed before running a series of simulation steps
Reimplemented from IMP::atom::Simulator.
|
protected |
Number of degrees of freedom in the system.
Definition at line 166 of file atom/MolecularDynamics.h.
|
protected |
Maximum absolute value of a single velocity component.
Definition at line 169 of file atom/MolecularDynamics.h.