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);
98 void Steps(
int steps);
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_;
void ResetLJ(uint index, Real sigma, Real epsilon)
boost::shared_ptr< OpenMM::Context > ContextPtr
void SetVelocities(geom::Vec3List &velocities)
geom::Vec3List GetForces()
void ResetHarmonicBond(uint index, Real bond_length, Real force_constant)
void ResetUreyBradleyAngle(uint index, Real angle, Real angle_force_constant, Real bond_length, Real bond_force_constant)
void Save(const String &filename)
void ResetPositionConstraints()
boost::shared_ptr< Topology > TopologyPtr
boost::shared_ptr< Simulation > SimulationPtr
void AddPositionConstraints(const std::vector< uint > &index)
bool ApplySD(Real tolerance=100, int max_iterations=1000)
void ResetPeriodicImproper(uint index, int multiplicity, Real phase, Real force_constant)
void ResetHarmonicAngle(uint index, Real angle, Real force_constant)
Real GetPotentialEnergy()
void ResetHarmonicImproper(uint index, Real phase, Real force_constant)
void ResetPeriodicDihedral(uint index, int multiplicity, Real phase, Real force_constant)
static SimulationPtr Load(const String &filename, SettingsPtr settings)
boost::shared_ptr< Settings > SettingsPtr
geom::Vec3List GetVelocities()
void ApplyLBFGS(Real tolerance=1, int max_iterations=1000)
void ResetMass(uint index, Real mass)
void ResetGBSA(uint index, Real radius, Real scaling)
ost::mol::EntityHandle GetEntity()
boost::shared_ptr< OpenMM::System > SystemPtr
geom::Vec3 GetPeriodicBoxExtents()
Three dimensional vector class, using Real precision.
void ResetDistanceConstraint(uint index, Real constraint_length)
boost::shared_ptr< OpenMM::Integrator > IntegratorPtr
void UpdatePositions(bool enforce_periodic_box=false)
boost::shared_ptr< Observer > ObserverPtr
void AddPositionConstraint(uint index)
std::vector< AtomHandle > AtomHandleList
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 ResetHarmonicDistanceRestraint(uint index, Real length, Real force_constant)
static bool IsPlatformAvailable(const SettingsPtr settings)
void Register(ObserverPtr o)
void ResetCharge(uint index, Real charge)
TopologyPtr GetTopology()
void SetPeriodicBoxExtents(geom::Vec3 &vec)
geom::Vec3List GetPositions(bool enforce_periodic_box=false, bool in_angstrom=true)
void SetPositions(const geom::Vec3List &positions, bool in_angstrom=true)
void ResetLJPair(uint index, Real sigma, Real epsilon)