Simpatico  v1.10
Perturbation.h
1 #ifndef MCMD_PERTURBATION_H
2 #define MCMD_PERTURBATION_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 <util/param/ParamComposite.h> // Base class
12 #include <util/containers/DMatrix.h> // member
13 #include <util/containers/DArray.h> // member
14 
15 namespace McMd
16 {
17 
18  using namespace Util;
19 
40  {
41 
42  public:
43 
50  Perturbation(int size, int rank);
51 
55  virtual ~Perturbation();
56 
58 
59 
65  void readParameters(std::istream& in);
66 
72  virtual void loadParameters(Serializable::IArchive& ar);
73 
79  virtual void save(Serializable::OArchive& ar);
80 
90  void setParameter(DArray<double> parameter);
91 
93 
95 
104  double parameter(int i, int id);
105 
111  int getNParameters() const;
112 
118  virtual double parameter(int i) const = 0;
119 
128  virtual double derivative(int i) const = 0;
129 
141  virtual double difference(DArray<double> iPartnerParameter) const = 0;
142 
144 
145  protected:
146 
150  int size_;
151 
155  int rank_;
156 
161 
166  int mode_;
167 
173 
179 
185 
191 
198  virtual void setParameter() = 0;
199 
200  };
201 
202 }
203 
204 #endif // ifndef PERTURBATION_H
DArray< double > parameter_
Value of the perturbation parameter for the associated System.
Definition: Perturbation.h:172
int mode_
mode 0: parameters of all replica systems are specified.
Definition: Perturbation.h:166
int rank_
Index for this system (e.g., communicator size)
Definition: Perturbation.h:155
Saving / output archive for binary ostream.
DArray< double > finalParameter_
Value of the perturbation parameter for the last replica System.
Definition: Perturbation.h:184
Utility classes for scientific computation.
Definition: accumulators.mod:1
DMatrix< double > parameters_
Value of the perturbation parameter for all the replica Systems.
Definition: Perturbation.h:190
Model of parameter dependence in a free energy perturbation theory.
Definition: Perturbation.h:39
int nParameters_
Number of perturbation parameters associated with a System.
Definition: Perturbation.h:160
Saving archive for binary istream.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
int size_
Number of systems (e.g., communicator size)
Definition: Perturbation.h:150
An object that can read multiple parameters from file.
DArray< double > initialParameter_
Value of the perturbation parameter for the first replica System.
Definition: Perturbation.h:178