![]() |
IMP
2.2.1
The Integrative Modeling Platform
|
The base class for simulators. More...
#include <IMP/atom/Simulator.h>
Inheritance diagram for IMP::atom::Simulator:Public Member Functions | |
| 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) |
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 |
| virtual VersionInfo | get_version_info () const |
| Get information about the module and version of the object. | |
| 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) |
| virtual std::string | get_type_name () const |
Protected Member Functions | |
| virtual Float | do_optimize (unsigned int max_steps) |
| override this function to do actual optimization | |
| virtual double | do_step (const kernel::ParticleIndexes &sc, double dt)=0 |
| virtual bool | get_is_simulation_particle (kernel::ParticleIndex p) const =0 |
| virtual void | setup (const kernel::ParticleIndexes &) |
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... | |
Explicitly accessing the particles list | |
One can explicitly specify which particles should be used for the simulation, or retrieve information about the list of particles. Each particle must be a Mass and core::XYZ particle. If none are specified, the model is searched for appropriate particles, based on the get_simulation_particles() method, which can be overridden by child classes. | |
| 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) |
A simulator is an optimizer with dynamic tracking of time, such that each frame is associated with a (possibly variable size) time step.
The simulation can be invoked directly by calling simulate(fs) for a given time in femtoseconds, or by calling Optimizer::optimize(nf) for a give number of frames.
Definition at line 34 of file Simulator.h.
| IMP::atom::Simulator::Simulator | ( | kernel::Model * | m, |
| std::string | name = "Simulator %1%", |
||
| double | wave_factor = 1.0 |
||
| ) |
| m | model associated with simulater |
| name | simulater name where %1% is a joker |
| wave_factor | if >=1.001, use wave time step size with larger maximal time step, using simulate_wave() when calling optimize() |
|
protectedpure virtual |
Perform a single time step and return the amount that time should be advanced. A maximum time step value is passed.
Implemented in IMP::atom::MolecularDynamics.
| double IMP::atom::Simulator::get_current_time | ( | ) | const |
returns the simulation time in femtoseconds that was performed by this simulator since it was constructed
Definition at line 109 of file Simulator.h.
|
protectedpure virtual |
Return true if the passed particle is appropriate for the simulation.
Implemented in IMP::atom::MolecularDynamics, and IMP::isd::MolecularDynamics.
| kernel::ParticleIndexes IMP::atom::Simulator::get_simulation_particle_indexes | ( | ) | const |
Same as get_simulation_particles(), but returns particle model indexes.
| kernel::ParticlesTemp IMP::atom::Simulator::get_simulation_particles | ( | ) | const |
Returns the set of particles used in the simulation. If a non-empty set of particles was provided explicitly by earlier calls to the particles list accessor methods, eg, add_particles(), this set it returned. Otherwise, the associated kernel::Model object is searched for appropriate particles that have a mass and XYZ decorators.
| void IMP::atom::Simulator::set_current_time | ( | double | ct | ) |
Sets the current simulation time in femtoseconds to ct.
Definition at line 114 of file Simulator.h.
|
protectedvirtual |
A Simulator class can perform setup operations before a series of simulation steps is taken.
Reimplemented in IMP::atom::MolecularDynamics.
Definition at line 158 of file Simulator.h.
| double IMP::atom::Simulator::simulate | ( | double | time_in_fs | ) |
simulate for a given time, by calling the protected method do_step() iteratively.
| time_in_fs | time in femtoseconds |
| double IMP::atom::Simulator::simulate_wave | ( | double | time_in_fs, |
| double | max_time_step_factor = 10.0, |
||
| double | base = 1.5 |
||
| ) |
Simulate for a given time in fs using a wave step function with maximal time step increased by up to max_time_step_factor simulate for a given time, by calling the protected method do_step() iteratively, and using a self adjusting time step that can grow up to max_time_step_factor times than the default time step returned by get_maximum_time_step()
| time_in_fs | time_in_fs in femtoseconds |
| max_time_step_factor | the maximal factor by which the maximum time step is exceeded |
| base | base by which time step increases or decreases during the wave |