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.