IMP  2.0.0
The Integrative Modeling Platform
IMP::atom::BrownianDynamics Class Reference

Simple Brownian dynamics optimizer. More...

#include <IMP/atom/BrownianDynamics.h>

+ Inheritance diagram for IMP::atom::BrownianDynamics:

Public Member Functions

 BrownianDynamics (Model *m, std::string name="BrownianDynamics%1%")
 Create the optimizer. More...
 
void set_maximum_move (double ms)
 
void set_use_stochastic_runge_kutta (bool tf)
 
- Public Member Functions inherited from IMP::atom::Simulator
 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.
 
void set_maximum_time_step (double ts)
 
double get_maximum_time_step () const
 
double get_last_time_step () const
 
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)
 
- 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)
 

Additional Inherited Members

- 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.
 

Detailed Description

The particles to be optimized must have optimizable x,y,z attributes and a non-optimizable "Stokes radius"; this optimizer assumes the score to be energy in kcal/mol, the xyz coordinates to be in angstroms and the diffusion coefficent be in cm^2/s

Particles without optimized x,y,z and nonoptimized D are skipped.

Rigid bodies are supported.

BrownianDynamics uses a SimulationParameters particle to store the parameters of the simulation. Such a particle must be passed on creation. The BrownianDynamics object will at least see updates to the SimulationParamters particle which occur before the call to BrownianDynamics::optimize() or BrownianDynamics::simulate(), changing the the parameters during optimization has undefined results.

The optimizer can either automatically determine which particles to use from the model or be passed a SingletonContainer for the particles. If such a container is passed, particles added to it during optimization state updates are handled properly.

See Also
Diffusion

Definition at line 52 of file BrownianDynamics.h.

Constructor & Destructor Documentation

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

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


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