Simpatico  v1.10
RingRouseAutoCorr.h
1 #ifndef MCMD_RING_ROUSE_AUTO_CORR_H
2 #define MCMD_RING_ROUSE_AUTO_CORR_H
3 
4 /*
5 * Simpatico - Simulation Package for Polymeric and Molecular Liquids
6 *
7 * Copyright 2010 - 2017, The Regents of the University of Minnesota
8 * Distributed under the terms of the GNU General Public License.
9 */
10 
11 #include <mcMd/analyzers/SystemAnalyzer.h> // base class template
12 #include <mcMd/simulation/System.h> // base class template param
13 #include <util/accumulators/AutoCorrArray.h> // member template
14 #include <util/space/Vector.h> // member template parameter
15 #include <util/containers/DArray.h> // member template
16 
17 namespace Simp {
18  class Species;
19 }
20 
21 namespace McMd
22 {
23 
24  using namespace Util;
25  using namespace Simp;
26 
32  class RingRouseAutoCorr : public SystemAnalyzer<System>
33  {
34 
35  public:
36 
42  RingRouseAutoCorr(System &system);
43 
47  virtual ~RingRouseAutoCorr();
48 
54  virtual void readParameters(std::istream& in);
55 
61  virtual void loadParameters(Serializable::IArchive &ar);
62 
68  virtual void save(Serializable::OArchive &ar);
69 
76  template <class Archive>
77  void serialize(Archive &ar, const unsigned int version);
78 
82  virtual void setup();
83 
89  virtual void sample(long iStep);
90 
94  virtual void output();
95 
96  private:
97 
99  std::ofstream outputFile_;
100 
102  AutoCorrArray<Vector, double> accumulator_;
103 
105  DArray<Vector> data_;
106 
108  DArray<double> projector_;
109 
111  Species *speciesPtr_;
112 
114  int speciesId_;
115 
117  int nMolecule_;
118 
120  int nAtom_;
121 
123  int p_;
124 
126  int capacity_;
127 
129  bool isInitialized_;
130 
131  };
132 
133  /*
134  * Serialize to/from an archive.
135  */
136  template <class Archive>
137  void RingRouseAutoCorr::serialize(Archive& ar, const unsigned int version)
138  {
139  Analyzer::serialize(ar, version);
140  ar & speciesId_;
141  ar & p_;
142  ar & capacity_;
143  ar & nAtom_;
144  ar & nMolecule_;
145  ar & accumulator_;
146  ar & projector_;
147  }
148 
149 }
150 #endif
void serialize(Archive &ar, BoundaryEnsemble::Type &data, const unsigned int version)
Serialize a BoundaryEnsemble::Type enum value.
A set of interacting Molecules enclosed by a Boundary.
Definition: System.h:115
Classes used by all simpatico molecular simulations.
Saving / output archive for binary ostream.
Auto-correlation function for an ensemble of sequences.
Definition: AutoCorrArray.h:57
Utility classes for scientific computation.
Definition: accumulators.mod:1
Template for Analyzer associated with one System.
Dynamically allocatable contiguous array template.
Definition: DArray.h:31
Saving archive for binary istream.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
void serialize(Archive &ar, T &data, const unsigned int version)
Serialize one object of type T.
Definition: serialize.h:29
A Species represents a set of chemically similar molecules.
Autocorrelation for Rouse mode coefficients of a ring molecule.