Simpatico  v1.10
ModifierManager.h
1 #ifndef DDMD_MODIFIER_MANAGER_H
2 #define DDMD_MODIFIER_MANAGER_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/Manager.h> // base class template
12 #include <util/containers/GPArray.h> // member template
13 #include "Modifier.h" // template parameter
14 
15 namespace DdMd
16 {
17 
18  using namespace Util;
19 
20  class Simulation;
21 
32  class ModifierManager : public Manager<Modifier>
33  {
34 
35  public:
36 
41 
45  ModifierManager(Simulation& simulation);
46 
50  ~ModifierManager();
51 
57  void readParameters(std::istream &in);
58 
64  Factory<Modifier>* newDefaultFactory() const;
65 
67 
68 
72  void setup();
73 
77  void preIntegrate1(long iStep);
78 
82  void postIntegrate1(long iStep);
83 
87  void preTransform(long iStep);
88 
92  void preExchange(long iStep);
93 
97  void postExchange(long iStep);
98 
102  void postNeighbor(long iStep);
103 
107  void preUpdate(long iStep);
108 
112  void postUpdate(long iStep);
113 
117  void preForce(long iStep);
118 
122  void postForce(long iStep);
123 
127  void endOfStep(long iStep);
128 
130 
132 
136  void packExchange(long iStep);
137 
141  void unpackExchange(long iStep);
142 
146  void packUpdate(long iStep);
147 
151  void unpackUpdate(long iStep);
152 
158  void packReverseUpdate(long iStep);
159 
165  void unpackReverseUpdate(long iStep);
166 
168 
169  private:
170 
172  Simulation* simulationPtr_;
173 
175  GPArray<Modifier> setupModifiers_;
176  GPArray<Modifier> preIntegrate1Modifiers_;
177  GPArray<Modifier> postIntegrate1Modifiers_;
178  GPArray<Modifier> preTransformModifiers_;
179  GPArray<Modifier> preExchangeModifiers_;
180  GPArray<Modifier> postExchangeModifiers_;
181  GPArray<Modifier> postNeighborModifiers_;
182  GPArray<Modifier> preUpdateModifiers_;
183  GPArray<Modifier> postUpdateModifiers_;
184  GPArray<Modifier> preForceModifiers_;
185  GPArray<Modifier> postForceModifiers_;
186  GPArray<Modifier> endOfStepModifiers_;
187  GPArray<Modifier> exchangeModifiers_;
188  GPArray<Modifier> updateModifiers_;
189  GPArray<Modifier> reverseUpdateModifiers_;
190 
191  };
192 
193 }
194 #endif
Parallel domain decomposition (DD) MD simulation.
Main object for a domain-decomposition MD simulation.
Template container for pointers to objects with a common base class.
Definition: Manager.h:38
Utility classes for scientific computation.
Definition: accumulators.mod:1
Manager for a set of Modifier objects.
An automatically growable PArray.
Definition: GPArray.h:28