Simpatico  v1.10
MdPotentialEnergyAverage.h
1 #ifndef MCMD_MD_POTENTIAL_ENERGY_AVERAGE_H
2 #define MCMD_MD_POTENTIAL_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> // class template parameter
13 #include <util/accumulators/Average.h> // member
14 
15 namespace McMd
16 {
17 
18  using namespace Util;
19 
28  class MdPotentialEnergyAverage : public SystemAnalyzer<MdSystem>
29  {
30 
31  public:
32 
37 
41  virtual void readParameters(std::istream& in);
42 
48  virtual void loadParameters(Serializable::IArchive& ar);
49 
55  virtual void save(Serializable::OArchive& ar);
56 
63  template <class Archive>
64  void serialize(Archive& ar, const unsigned int version);
65 
69  virtual void setup();
70 
71  /*
72  * Evaluate energy per particle, and add to ensemble.
73  */
74  virtual void sample(long iStep);
75 
79  virtual void output();
80 
81  private:
82 
84  std::ofstream outputFile_;
85 
87  Average accumulator_;
88 
90  int nSamplePerBlock_;
91 
92  // Has readParam been called?
93  bool isInitialized_;
94 
95  };
96 
97  /*
98  * Serialize to/from an archive.
99  */
100  template <class Archive>
101  void MdPotentialEnergyAverage::serialize(Archive& ar, const unsigned int version)
102  {
103  Analyzer::serialize(ar, version);
104  ar & nSamplePerBlock_;
105  ar & accumulator_;
106  }
107 
108 }
109 #endif
Calculates the average and variance of a sampled property.
Definition: Average.h:43
MdPotentialEnergyAverage averages of total potential energy.
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.
Utility classes for scientific computation.
Definition: accumulators.mod:1
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.
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