IMP  2.0.0
The Integrative Modeling Platform
IMP::atom::Simulator Class Referenceabstract

The base class for simulators.

#include <IMP/atom/Simulator.h>

+ Inheritance diagram for IMP::atom::Simulator:

Public Member Functions

 Simulator (Model *m, std::string name="Simulator %1%")
 Create the optimizer. More...
 
double get_current_time () const
 
double get_kt () const
 
ParticleIndexes get_simulation_particle_indexes () const
 
ParticlesTemp get_simulation_particles () const
 
double get_temperature () const
 
 IMP_OPTIMIZER (Simulator)
 
void set_temperature (double d)
 
double simulate (double time_in_fs)
 Simulate until the given time in fs.
 
- Public Member Functions inherited from IMP::kernel::Optimizer
 Optimizer (Model *m, std::string name="Optimizer %1%")
 
double get_last_score () const
 Return the score found in the last evaluate.
 
Modelget_model () const
 Get the model being optimized.
 
ScoringFunctionget_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...
 
void set_model (Model *m)
 Set the model being optimized. More...
 
virtual void set_scoring_function (ScoringFunctionAdaptor sf)
 
void set_stop_on_good_score (bool tf)
 
virtual void show (std::ostream &out=std::cout) const
 Print info about the optimizer state. More...
 
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 ()
 
OptimizerStateget_optimizer_state (unsigned int i) const
 
OptimizerStates get_optimizer_states () const
 
void reserve_optimizer_states (unsigned int sz)
 
- Public Member Functions inherited from IMP::base::Object
virtual void clear_caches ()
 
virtual IMP::base::VersionInfo get_version_info () const =0
 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)
 

Protected Member Functions

virtual double do_step (const ParticleIndexes &sc, double dt)=0
 
virtual bool get_is_simulation_particle (ParticleIndex p) const =0
 
virtual void setup (const ParticleIndexes &)
 
- Protected Member Functions inherited from IMP::kernel::Optimizer
virtual double do_optimize (unsigned int ns)=0
 override this function to do actual optimization
 
void update_states () const
 Update optimizer states, should be called at each successful step. More...
 
double width (FloatKey k) const
 
FloatIndexes get_optimized_attributes () const
 
void set_value (FloatIndex fi, double v) const
 
Float get_value (FloatIndex fi) const
 
Float get_derivative (FloatIndex fi) const
 
void set_scaled_value (FloatIndex fi, Float v) const
 
double get_scaled_value (FloatIndex fi) const
 
double get_scaled_derivative (FloatIndex fi) const
 
void clear_range_cache ()
 Clear the cache of range information. Do this at the start of optimization.
 
- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)
 Construct an object with the given name. More...
 

Related Functions

(Note that these are not member functions.)

void set_current_time (double ct)
 
typedef IMP::base::Vector
< IMP::base::WeakPointer
< Simulator > > 
SimulatorsTemp
 

Time steps

The simulator has a maximum allowed time step. It can take shorter ones if needed due to stability concerns.

As with all times in IMP, the time step is in fs.

void set_maximum_time_step (double ts)
 
double get_maximum_time_step () const
 
double get_last_time_step () const
 

Explicitly specifying particles

One can explicitly specify which particles should be used for molecular dynamics. Each particle must be a Mass and core::XYZ particle. If none are specified, the model is searched for appropriate particles.

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 ()
 
Particleget_particle (unsigned int i) const
 
Particles get_particles () const
 
void reserve_particles (unsigned int sz)
 

Detailed Description

Definition at line 25 of file Simulator.h.

Constructor & Destructor Documentation

IMP::atom::Simulator::Simulator ( Model m,
std::string  name = "Simulator %1%" 
)

If sc is not null, that container will be used to find particles to move, otherwise the model will be searched.

Member Function Documentation

virtual double IMP::atom::Simulator::do_step ( const ParticleIndexes sc,
double  dt 
)
protectedpure virtual

Perform a single time step and return the amount that time should be advanced. A maximum time step value is passed.

double IMP::atom::Simulator::get_current_time ( ) const

returns the simulation time in femtoseconds that was performed by this simulator since it was constructed

Note
this time can be tweaked using set_current_time() )

Definition at line 74 of file Simulator.h.

virtual bool IMP::atom::Simulator::get_is_simulation_particle ( ParticleIndex  p) const
protectedpure virtual

Return true if the passed particle is appropriate for the simulation.

Implemented in IMP::isd::MolecularDynamics.

ParticlesTemp IMP::atom::Simulator::get_simulation_particles ( ) const

Get the set of particles used in the simulation. This may be different then the stored set, eg if no particles are stored, the Model is searched for appropriate particles.

virtual void IMP::atom::Simulator::setup ( const ParticleIndexes )
protectedvirtual

A Simulator class can perform setup operations before a series of simulation steps is taken.

Definition at line 106 of file Simulator.h.

Friends And Related Function Documentation

void set_current_time ( double  ct)
related

Sets the current simulation time in femtoseconds to ct ()

Definition at line 82 of file Simulator.h.

Pass a set of objects.

Definition at line 125 of file Simulator.h.


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