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.
Currently, rigid bodies are not supported. The necessary information can be found at the wikipedia.
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.
Public Member Functions | |
BrownianDynamics (SimulationParameters si, SingletonContainer *sc=NULL) | |
Create the optimizer. | |
virtual std::string | get_type_name () const |
virtual ::IMP::VersionInfo | get_version_info () const |
virtual Float | optimize (unsigned int max_steps) |
void | set_minimum_feature_size (double df) |
Define the feature size of the system. | |
double | simulate (float time_in_fs) |
Simulate until the given time in fs. | |
Friends | |
template<class T > | |
void | IMP::internal::unref (T *) |
IMP::atom::BrownianDynamics::BrownianDynamics | ( | SimulationParameters | si, | |
SingletonContainer * | sc = NULL | |||
) |
Create the optimizer.
If sc is not null, that container will be used to find particles to move, otherwise the model will be searched.
void IMP::atom::BrownianDynamics::set_minimum_feature_size | ( | double | df | ) |
Define the feature size of the system.
The time step will be scaled so that particles do not move further than this in a single step. This ensures that objects cannot pass through one another or miss important features of the force field.