OpenMPCD
Instrumentation/StarPolymers.hpp
Go to the documentation of this file.
1 /**
2  * @file
3  * Defines the OpenMPCD::CUDA::MPCSolute::Instrumentation::StarPolymers class.
4  */
5 
6 #ifndef OPENMPCD_CUDA_MPCSOLUTE_INSTRUMENTATION_STARPOLYMERS_HPP
7 #define OPENMPCD_CUDA_MPCSOLUTE_INSTRUMENTATION_STARPOLYMERS_HPP
8 
12 
13 #include <boost/scoped_ptr.hpp>
14 
15 namespace OpenMPCD
16 {
17 namespace CUDA
18 {
19 namespace MPCSolute
20 {
21 namespace Instrumentation
22 {
23 
24 /**
25  * Instrumentation for `OpenMPCD::CUDA::MPCSolute::StarPolymers`.
26  *
27  * @tparam PositionCoordinate The type to store position coordinates.
28  * @tparam VelocityCoordinate The type to store velocity coordinates.
29  */
30 template<
31  typename PositionCoordinate,
32  typename VelocityCoordinate>
33 class StarPolymers : public Base
34 {
35 public:
36  /**
37  * The constructor.
38  *
39  * @param[in] starPolymers_ The solute instance.
40  * @param[in] settings_ The configuration settings that have been used
41  * to configure the given star polymers instance.
42  */
45  starPolymers_,
46  const Configuration::Setting& settings_);
47 
48  /**
49  * The destructor.
50  */
51  virtual ~StarPolymers();
52 
53 protected:
54  virtual void measureSpecific();
55  virtual void saveSpecific(const std::string& rundir) const;
56 
57 private:
58  /**
59  * Resets the snapshot file.
60  */
61  void resetSnapshotFile() const;
62 
63 private:
65  starPolymers; ///< The solute instance.
66  const Configuration::Setting settings;
67  ///< The configuration settings for the star polymers instance.
68 
69  mutable std::string snapshotFilePath; ///< The path to the snapshot file.
70  mutable boost::scoped_ptr<VTFSnapshotFile> snapshotFile;
71  ///< The file storing simulation snapshots.
72 }; //class StarPolymers
73 
74 } //namespace Instrumentation
75 } //namespace MPCSolute
76 } //namespace CUDA
77 } //namespace OpenMPCD
78 
79 #endif //OPENMPCD_CUDA_MPCSOLUTE_INSTRUMENTATION_STARPOLYMERS_HPP
OpenMPCD::CUDA::MPCSolute::Instrumentation::StarPolymers::~StarPolymers
virtual ~StarPolymers()
The destructor.
Definition: StarPolymers.cpp:27
Base.hpp
VTFSnapshotFile.hpp
OpenMPCD::CUDA::MPCSolute::Instrumentation::StarPolymers::measureSpecific
virtual void measureSpecific()
Performs measurements specific to the solute type.
Definition: StarPolymers.cpp:34
OpenMPCD::CUDA::MPCSolute::Instrumentation::Base
Base class for MPC solutes instrumentation.
Definition: CUDA/MPCSolute/Instrumentation/Base.hpp:25
OpenMPCD::CUDA::MPCSolute::Instrumentation::StarPolymers::StarPolymers
StarPolymers(MPCSolute::StarPolymers< PositionCoordinate, VelocityCoordinate > *const starPolymers_, const Configuration::Setting &settings_)
The constructor.
Definition: StarPolymers.cpp:17
StarPolymers.hpp
OpenMPCD::CUDA::MPCSolute::Instrumentation::StarPolymers::saveSpecific
virtual void saveSpecific(const std::string &rundir) const
Saves measurements specific to the solute type.
Definition: StarPolymers.cpp:40
OpenMPCD::Configuration::Setting
Represents a setting in the configuration.
Definition: Configuration.hpp:36
OpenMPCD::CUDA::MPCSolute::Instrumentation::StarPolymers
Instrumentation for OpenMPCD::CUDA::MPCSolute::StarPolymers.
Definition: Instrumentation/StarPolymers.hpp:33
OpenMPCD::CUDA::MPCSolute::StarPolymers
Class representing star polymers.
Definition: StarPolymers.hpp:123