Simpatico  v1.10
NptIntegrator.h
1 #ifndef DDMD_NPT_INTEGRATOR_H
2 #define DDMD_NPT_INTEGRATOR_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 "TwoStepIntegrator.h" // base class
12 
13 namespace DdMd
14 {
15 
16  class Simulation;
17  using namespace Util;
18 
29  {
30 
31  public:
32 
36  NptIntegrator(Simulation& simulation);
37 
41  ~NptIntegrator();
42 
48  void readParameters(std::istream& in);
49 
55  virtual void loadParameters(Serializable::IArchive &ar);
56 
62  virtual void save(Serializable::OArchive &ar);
63 
64  protected:
65 
69  virtual void initDynamicalState();
70 
74  void setup();
75 
79  virtual void integrateStep1();
80 
84  virtual void integrateStep2();
85 
86  private:
87 
88  double xi_;
89  double eta_;
90  Vector nu_;
91  double dt_;
92  double tauT_;
93  double tauP_;
94  double T_target_;
95  double P_target_;
96  double T_kinetic_;
97  Vector P_curr_diag_;
98  LatticeSystem mode_;
99  unsigned int ndof_;
100 
101  Vector exp_v_fac_;
102  Vector sinhx_fac_v_;
103  double mtk_term_2_;
104  DArray<double> prefactors_;
105 
106  };
107 
108 }
109 #endif
A Vector is a Cartesian vector.
Definition: Vector.h:75
Parallel domain decomposition (DD) MD simulation.
Main object for a domain-decomposition MD simulation.
Saving / output archive for binary ostream.
Utility classes for scientific computation.
Definition: accumulators.mod:1
Saving archive for binary istream.
LatticeSystem
Enumeration of the 7 possible Bravais lattice systems.
Definition: LatticeSystem.h:29
A two-step velocity-Verlet style integrator.
A reversible symplectic NPT integrator.
Definition: NptIntegrator.h:28