9 #ifndef IMPATOM_SIMULATOR_H
10 #define IMPATOM_SIMULATOR_H
12 #include <IMP/atom/atom_config.h>
16 #include <IMP/kernel/internal/units.h>
19 IMPATOM_BEGIN_NAMESPACE
22 class SimulationParameters;
49 double wave_factor = 1.0);
58 double simulate(
double time_in_fs);
77 double simulate_wave(
double time_in_fs,
double max_time_step_factor = 10.0,
80 double get_temperature()
const {
return temperature_; }
81 void set_temperature(
double d) { temperature_ = d; }
89 void set_maximum_time_step(
double ts) { max_time_step_ = ts; }
90 double get_maximum_time_step()
const {
return max_time_step_; }
91 double get_last_time_step()
const {
92 if (last_time_step_ < 0)
93 return get_maximum_time_step();
95 return last_time_step_;
99 void set_time_step(
double ts) { set_maximum_time_step(ts); }
170 double do_simulate(
double time);
172 double do_simulate_wave(
double time_in_fs,
double max_time_step_factor = 10.0,
175 double max_time_step_;
176 double current_time_;
177 double last_time_step_;
189 IMPATOMEXPORT
double get_energy_in_femto_joules(
double energy_in_kcal_per_mol);
190 IMPATOMEXPORT
double get_force_in_femto_newtons(
191 double force_in_kcal_per_mol_per_angstrom);
193 IMPATOMEXPORT
double get_spring_constant_in_femto_newtons_per_angstrom(
194 double k_in_kcal_per_mol_per_angstrom_square);
198 IMPATOM_END_NAMESPACE
double get_kt(double T)
Return kT for a given temperature.
The base class for simulators.
double get_current_time() const
#define IMP_FINAL
Have the compiler report an error if anything overrides this method.
Import IMP/kernel/Optimizer.h in the namespace.
void set_current_time(double ct)
Sets the current simulation time in femtoseconds to ct.
Class to handle individual model particles.
Base class for all optimizers.
Classes to handle individual model particles. (Note that implementation of inline functions in in int...
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
virtual void setup(const kernel::ParticleIndexes &)
double Float
Basic floating-point value (could be float, double...)
#define IMP_LIST(protection, Ucname, lcname, Data, PluralData)
A macro to provide a uniform interface for storing lists of objects.
virtual double do_optimize(unsigned int ns)=0
override this function to do actual optimization
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Class for storing model, its restraints, constraints, and particles.