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;
32 std::string name=
"Simulator %1%");
35 double simulate(
double time_in_fs);
37 double get_temperature()
const {
40 void set_temperature(
double d) {
50 void set_maximum_time_step(
double ts) {
53 double get_maximum_time_step()
const {
54 return max_time_step_;
56 double get_last_time_step()
const {
57 if (last_time_step_ <0)
return get_maximum_time_step();
58 else return last_time_step_;
62 void set_time_step(
double ts) {
63 set_maximum_time_step(ts);
90 ParticlesTemp get_simulation_particles()
const;
116 virtual bool get_is_simulation_particle(
ParticleIndex p)
const=0;
119 double max_time_step_;
120 double current_time_;
121 double last_time_step_;
133 IMPATOMEXPORT
double get_energy_in_femto_joules(
double energy_in_kcal_per_mol);
135 get_force_in_femto_newtons(
double force_in_kcal_per_mol_per_angstrom);
138 get_spring_constant_in_femto_newtons_per_angstrom(
double
139 k_in_kcal_per_mol_per_angstrom_square);
145 IMPATOM_END_NAMESPACE