20 #ifndef OST_MM_SIMULATION_HH
21 #define OST_MM_SIMULATION_HH
47 namespace ost {
namespace mol{
namespace mm{
86 bool ApplySD(
Real tolerance = 100,
int max_iterations = 1000);
119 Real x_scale = 1.0,
Real y_scale = 1.0,
Real z_scale = 1.0);
149 int TimeToNextNotification();
151 void ReinitializeContext();
154 static void EnsurePluginsLoaded(
const String& plugin_path);
160 std::vector<ObserverPtr> observers_;
161 std::vector<int> time_to_notify_;
162 std::map<FuncType,uint> system_force_mapper_;
Three dimensional vector class, using Real precision.
Simulation(const ost::mol::EntityHandle &handle, const SettingsPtr settings)
geom::Vec3List GetForces()
Simulation(const ost::mol::mm::TopologyPtr top, const ost::mol::EntityHandle &handle, const SettingsPtr settings)
void SetPeriodicBoxExtents(geom::Vec3 &vec)
void ResetGBSA(uint index, Real radius, Real scaling)
geom::Vec3List GetPositions(bool enforce_periodic_box=false, bool in_angstrom=true)
void ResetHarmonicImproper(uint index, Real phase, Real force_constant)
void ResetPeriodicImproper(uint index, int multiplicity, Real phase, Real force_constant)
void ResetPositionConstraints()
void ResetPeriodicDihedral(uint index, int multiplicity, Real phase, Real force_constant)
Real GetPotentialEnergy()
void SetPositions(const geom::Vec3List &positions, bool in_angstrom=true)
void ResetHarmonicPositionRestraint(uint index, const geom::Vec3 &ref_position, Real k, Real x_scale=1.0, Real y_scale=1.0, Real z_scale=1.0)
void ResetDistanceConstraint(uint index, Real constraint_length)
static bool IsPlatformAvailable(const SettingsPtr settings)
void AddPositionConstraint(uint index)
void Register(ObserverPtr o)
void ResetHarmonicBond(uint index, Real bond_length, Real force_constant)
bool ApplySD(Real tolerance=100, int max_iterations=1000)
void ResetLJPair(uint index, Real sigma, Real epsilon)
void ResetMass(uint index, Real mass)
void ResetUreyBradleyAngle(uint index, Real angle, Real angle_force_constant, Real bond_length, Real bond_force_constant)
void UpdatePositions(bool enforce_periodic_box=false)
void Save(const String &filename)
static SimulationPtr Load(const String &filename, SettingsPtr settings)
void SetVelocities(geom::Vec3List &velocities)
geom::Vec3 GetPeriodicBoxExtents()
ost::mol::EntityHandle GetEntity()
void ApplyLBFGS(Real tolerance=1, int max_iterations=1000)
void ResetCharge(uint index, Real charge)
void ResetLJ(uint index, Real sigma, Real epsilon)
void AddPositionConstraints(const std::vector< uint > &index)
geom::Vec3List GetVelocities()
TopologyPtr GetTopology()
void ResetHarmonicDistanceRestraint(uint index, Real length, Real force_constant)
void ResetHarmonicAngle(uint index, Real angle, Real force_constant)
boost::shared_ptr< OpenMM::System > SystemPtr
boost::shared_ptr< Simulation > SimulationPtr
boost::shared_ptr< OpenMM::Integrator > IntegratorPtr
boost::shared_ptr< Observer > ObserverPtr
boost::shared_ptr< OpenMM::Context > ContextPtr
boost::shared_ptr< Topology > TopologyPtr
boost::shared_ptr< Settings > SettingsPtr
std::vector< AtomHandle > AtomHandleList