Simpatico  v1.10
McPairEnergyAverage.h
1 #ifndef SIMP_NOPAIR
2 #ifndef MCMD_MC_PAIR_ENERGY_AVERAGE_H
3 #define MCMD_MC_PAIR_ENERGY_AVERAGE_H
4 
5 /*
6 * Simpatico - Simulation Package for Polymeric and Molecular Liquids
7 *
8 * Copyright 2010 - 2017, The Regents of the University of Minnesota
9 * Distributed under the terms of the GNU General Public License.
10 */
11 
12 #include <mcMd/analyzers/SystemAnalyzer.h> // base class template
13 #include <mcMd/mcSimulation/McSystem.h> // base template parameter
14 #include <util/accumulators/Average.h> // member
15 #include <mcMd/neighbor/CellList.h> // member
16 #include <mcMd/analyzers/util/PairSelector.h> // member
17 
18 #include <cstdio>
19 
20 namespace McMd
21 {
22 
23  using namespace Util;
24 
33  class McPairEnergyAverage : public SystemAnalyzer<McSystem>
34  {
35 
36  public:
37 
44 
50  virtual void readParameters(std::istream& in);
51 
57  virtual void loadParameters(Serializable::IArchive& ar);
58 
64  virtual void save(Serializable::OArchive& ar);
65 
72  template <class Archive>
73  void serialize(Archive& ar, const unsigned int version);
74 
78  virtual void setup();
79 
80  /*
81  * Evaluate energy per particle, and add to ensemble.
82  */
83  virtual void sample(long iStep);
84 
88  virtual void output();
89 
90  private:
91 
93  std::ofstream outputFile_;
94 
96  Average accumulator_;
97 
99  int nSamplePerBlock_;
100 
102  mutable CellList::NeighborArray neighbors_;
103 
105  PairSelector selector_;
106 
107  // Has readParam been called?
108  bool isInitialized_;
109 
110  };
111 
112  /*
113  * Serialize to/from an archive.
114  */
115  template <class Archive>
116  void McPairEnergyAverage::serialize(Archive& ar, const unsigned int version)
117  {
118  Analyzer::serialize(ar, version);
119  ar & nSamplePerBlock_;
120  ar & selector_;
121  ar & accumulator_;
122  }
123 
124 }
125 #endif
126 #endif
A System for use in a Markov chain Monte Carlo simulation.
Definition: McSystem.h:52
Calculates the average and variance of a sampled property.
Definition: Average.h:43
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.
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
Selection rule for pairs of Atoms.
Definition: PairSelector.h:32
Template for Analyzer associated with one System.
Saving archive for binary istream.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
McPairEnergyAverage averages of total potential energy.