9 #ifndef IMPATOM_SIMULATOR_H
10 #define IMPATOM_SIMULATOR_H
12 #include <IMP/atom/atom_config.h>
16 #include <IMP/internal/units.h>
19 IMPATOM_BEGIN_NAMESPACE
22 class SimulationParameters;
49 double wave_factor = 1.0);
58 double simulate(
double time_in_fs);
75 double simulate_wave(
double time_in_fs,
double max_time_step_factor = 10.0,
100 void set_maximum_time_step(
double ts) { max_time_step_ = ts; }
108 if (last_time_step_ < 0)
109 return get_maximum_time_step();
111 return last_time_step_;
115 void set_time_step(
double ts) { set_maximum_time_step(ts); }
188 virtual bool get_is_simulation_particle(
ParticleIndex p)
const = 0;
198 virtual double do_simulate(
double time);
207 virtual double do_simulate_wave(
double time_in_fs,
double max_time_step_factor = 10.0,
212 double max_time_step_;
213 double current_time_;
214 double last_time_step_;
221 IMPATOM_END_NAMESPACE
double get_kt(double T)
Return kT for a given temperature in units of [kcal/mol].
The base class for simulators.
double get_current_time() const
void set_temperature(double d)
Set the temperature of the simulator to d in kelvin units.
double get_maximum_time_step() const
Get the maximum allowed time step in fs.
Base class for all optimizers.
#define IMP_LIST(protection, Ucname, lcname, Data, PluralData)
A macro to provide a uniform interface for storing lists of objects.
Class for storing model, its restraints, constraints, and particles.
virtual void setup(const ParticleIndexes &)
virtual double do_optimize(unsigned int ns)=0
override this function to do actual optimization
void set_current_time(double ct)
Sets the current simulation time in femtoseconds to ct.
Base class for all optimizers.
double get_last_time_step() const
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
double get_temperature() const
Return the simulator temperature in kelvin.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
double Float
Basic floating-point value (could be float, double...)
Class to handle individual particles of a Model object.
#define IMP_SWIG_FINAL
Have the compiler report an error if anything overrides this method.