Simpatico  v1.10
RDF.h
1 #ifndef MCMD_RDF_H
2 #define MCMD_RDF_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 parameter
13 #include <mcMd/analyzers/util/PairSelector.h> // member
14 #include <util/accumulators/RadialDistribution.h> // member
15 #include <util/containers/DArray.h> // member template
16 
17 #include <util/global.h>
18 
19 namespace McMd
20 {
21 
22  using namespace Util;
23 
43  class RDF : public SystemAnalyzer<System>
44  {
45 
46  public:
47 
53  RDF(System &system);
54 
60  virtual void readParameters(std::istream& in);
61 
67  virtual void loadParameters(Serializable::IArchive& ar);
68 
74  virtual void save(Serializable::OArchive& ar);
75 
82  template <class Archive>
83  void serialize(Archive& ar, const unsigned int version);
84 
88  virtual void setup();
89 
95  virtual void sample(long iStep);
96 
100  virtual void output();
101 
102  private:
103 
104  // Output file stream
105  std::ofstream outputFile_;
106 
107  // RadialDistribution statistical accumulator
108  RadialDistribution accumulator_;
109 
111  DArray<double> typeNumbers_;
112 
114  PairSelector selector_;
115 
117  double max_;
118 
120  double normSum_;
121 
123  int nBin_;
124 
126  int nAtomType_;
127 
129  bool isInitialized_;
130 
131  };
132 
133  /*
134  * Serialize to/from an archive.
135  */
136  template <class Archive>
137  void RDF::serialize(Archive& ar, const unsigned int version)
138  {
139  Analyzer::serialize(ar, version);
140  ar & max_;
141  ar & nBin_;
142  ar & selector_;
143  ar & accumulator_;
144  ar & nAtomType_;
145  ar & typeNumbers_;
146  ar & normSum_;
147  }
148 
149 }
150 #endif
void serialize(Archive &ar, const unsigned int version)
Serialize to/from an archive.
Definition: RDF.h:137
A set of interacting Molecules enclosed by a Boundary.
Definition: System.h:115
File containing preprocessor macros for error handling.
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.
RDF evaluates the atomic radial distribution function.
Definition: RDF.h:43
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).
Distribution (or histogram) of values for particle separations.