Simpatico  v1.10
MdKineticEnergyAverage.h
1 #ifndef MCMD_MD_KINETIC_ENERGY_AVERAGE_H
2 #define MCMD_MD_KINETIC_ENERGY_AVERAGE_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/mdSimulation/MdSystem.h> // base template parameter
13 #include <util/accumulators/Average.h> // member
14 
15 #include <fstream>
16 
17 namespace McMd
18 {
19 
20  using namespace Util;
21 
30  class MdKineticEnergyAverage : public SystemAnalyzer<MdSystem>
31  {
32 
33  public:
34 
39 
43  virtual void readParameters(std::istream& in);
44 
50  virtual void loadParameters(Serializable::IArchive &ar);
51 
57  virtual void save(Serializable::OArchive &ar);
58 
65  template <class Archive>
66  void serialize(Archive& ar, const unsigned int version);
67 
71  virtual void setup();
72 
73  /*
74  * Evaluate energy per particle, and add to ensemble.
75  */
76  virtual void sample(long iStep);
77 
81  virtual void output();
82 
83  private:
84 
86  std::ofstream outputFile_;
87 
89  Average accumulator_;
90 
92  int nSamplePerBlock_;
93 
94  // Has readParam been called?
95  bool isInitialized_;
96 
97  };
98 
99  /*
100  * Serialize to/from an archive.
101  */
102  template <class Archive>
103  void MdKineticEnergyAverage::serialize(Archive& ar, const unsigned int version)
104  {
105  Analyzer::serialize(ar, version);
106  ar & nSamplePerBlock_;
107  ar & accumulator_;
108  }
109 
110 }
111 #endif
Calculates the average and variance of a sampled property.
Definition: Average.h:43
void serialize(Archive &ar, PairSelector &selector, const unsigned int version)
Serialize a PairSelector.
Definition: PairSelector.h:167
Saving / output archive for binary ostream.
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.
MdKineticEnergyAverage averages of total kinetic energy.
Utility classes for scientific computation.
Definition: accumulators.mod:1
Template for Analyzer associated with one System.
Saving archive for binary istream.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
A System for Molecular Dynamics simulation.
Definition: MdSystem.h:68
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.