00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef OST_MM_STATE_EXTRACTOR_HH
00021 #define OST_MM_STATE_EXTRACTOR_HH
00022
00023 #include <vector>
00024
00025 #include <boost/shared_ptr.hpp>
00026 #include <ost/geom/vec3.hh>
00027
00028 namespace OpenMM{
00029 class Context;
00030
00031
00032
00033 }
00034
00035 namespace ost { namespace mol{ namespace mm{
00036
00037 class StateExtractor{
00038
00039 public:
00040
00041 static void ExtractPotentialEnergy(boost::shared_ptr<OpenMM::Context> context,
00042 Real& energy);
00043
00044 static void ExtractKineticEnergy(boost::shared_ptr<OpenMM::Context> context,
00045 Real& energy);
00046
00047 static void ExtractEnergy(boost::shared_ptr<OpenMM::Context> context,
00048 Real& energy);
00049
00050 static void ExtractPositions(boost::shared_ptr<OpenMM::Context> context,
00051 geom::Vec3List& positions,
00052 bool enforce_periodic_box = false,
00053 bool in_angstrom = true);
00054
00055 static void ExtractVelocities(boost::shared_ptr<OpenMM::Context> context,
00056 geom::Vec3List& velocities);
00057
00058 static void ExtractForces(boost::shared_ptr<OpenMM::Context> context,
00059 geom::Vec3List& forces);
00060
00061 };
00062
00063
00064 }}}
00065
00066 #endif