Simpatico  v1.10
ddMd/integrators/NphIntegrator.h
1 #ifndef DDMD_NPH_INTEGRATOR_H
2 #define DDMD_NPH_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 
30  {
31 
32  public:
33 
37  NphIntegrator(Simulation& simulation);
38 
42  ~NphIntegrator();
43 
47  void readParameters(std::istream& in);
48 
52  void loadParameters(Serializable::IArchive& ar);
53 
57  void save(Serializable::OArchive& ar);
58 
59  protected:
60 
64  void initDynamicalState();
65 
69  void setup();
70 
74  virtual void integrateStep1();
75 
79  virtual void integrateStep2();
80 
81  private:
82 
83  Vector nu_;
84  double dt_;
85  double W_;
86  double P_target_;
87  double T_kinetic_;
88  Vector P_curr_diag_;
89  LatticeSystem mode_;
90  unsigned int ndof_;
91 
92  Vector exp_v_fac_;
93  Vector sinhx_fac_v_;
94  double mtk_term_2_;
95  DArray<double> prefactors_;
96 
97  };
98 
99 }
100 #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 NPH integrator (Anderson barostat).