ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/integrators/Integrator.hpp
(Generate patch)

Comparing trunk/src/integrators/Integrator.hpp (file contents):
Revision 246 by gezelter, Wed Jan 12 22:41:40 2005 UTC vs.
Revision 1329 by gezelter, Sat Mar 14 01:23:53 2009 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# Line 39 | Line 39
39   * such damages.
40   */
41  
42 < /**
43 <  * @file Integrator.hpp
44 <  * @author tlin
45 <  * @date 11/08/2004
46 <  * @time 13:25am
47 <  * @version 1.0
48 <  */
42 > /**
43 > * @file Integrator.hpp
44 > * @author tlin
45 > * @date 11/08/2004
46 > * @time 13:25am
47 > * @version 1.0
48 > */
49  
50   #ifndef INTEGRATORS_INTEGRATOR_HPP
51   #define INTEGRATORS_INTEGRATOR_HPP
52  
53   #include "brains/ForceManager.hpp"
54 + #include "restraints/ThermoIntegrationForceManager.hpp"
55   #include "io/DumpWriter.hpp"
56   #include "io/StatWriter.hpp"
57 + #include "io/RestWriter.hpp"
58   #include "integrators/Velocitizer.hpp"
59 + #include "integrators/RNEMD.hpp"
60  
61   namespace oopse {
62  
63  
64 < /**
65 < * @class Integrator Integrator.hpp "integrators/Integrator.hpp"
66 < * @brief Base class of Integrator
67 < * @todo document
68 < */
69 < class Integrator {
70 <    public:
64 >  /**
65 >   * @class Integrator Integrator.hpp "integrators/Integrator.hpp"
66 >   * @brief Base class of Integrator
67 >   * @todo document
68 >   */
69 >  class Integrator {
70 >  public:
71  
72 <        virtual ~Integrator();
72 >    virtual ~Integrator();
73  
74 <        //avoid public virtual function        
75 <        void integrate() {
76 <            doIntegrate();
77 <        }
74 >    //avoid public virtual function        
75 >    void integrate() {
76 >      doIntegrate();
77 >    }
78  
79 <        void update() {
80 <            doUpdate();
81 <        }
79 >    void update() {
80 >      doUpdate();
81 >    }
82  
83 <        void setForceManager(ForceManager* forceMan) {
84 <            if (forceMan_ != forceMan && forceMan_  != NULL) {
85 <                delete forceMan_;
86 <            }
87 <            forceMan_ = forceMan;
88 <        }
83 >    void setForceManager(ForceManager* forceMan) {
84 >      if (forceMan_ != forceMan && forceMan_  != NULL) {
85 >        delete forceMan_;
86 >      }
87 >      forceMan_ = forceMan;
88 >    }
89  
90 <        void setVelocitizer(Velocitizer* velocitizer) {
91 <            if (velocitizer_ != velocitizer && velocitizer_  != NULL) {
92 <                delete velocitizer_;
93 <            }
94 <            velocitizer_  = velocitizer;
95 <        }
90 >    void setVelocitizer(Velocitizer* velocitizer) {
91 >      if (velocitizer_ != velocitizer && velocitizer_  != NULL) {
92 >        delete velocitizer_;
93 >      }
94 >      velocitizer_  = velocitizer;
95 >    }
96 >
97 >    void setRNEMD(RNEMD* rnemd) {
98 >      if (rnemd_ != rnemd && rnemd_  != NULL) {
99 >        delete rnemd_;
100 >      }
101 >      rnemd_  = rnemd;
102 >    }
103          
104 <    protected:
104 >  protected:
105  
106 <        Integrator(SimInfo* info);
106 >    Integrator(SimInfo* info);
107  
108 <        virtual void doIntegrate() = 0;
108 >    virtual void doIntegrate() = 0;
109  
110 <        virtual void doUpdate() {}
110 >    virtual void doUpdate() {}
111          
112 <        void saveConservedQuantity() {
113 <            currentSnapshot_->statData[Stats::CONSERVED_QUANTITY] = calcConservedQuantity();
114 <        }
112 >    void saveConservedQuantity() {
113 >      currentSnapshot_->statData[Stats::CONSERVED_QUANTITY] = calcConservedQuantity();
114 >    }
115          
116 <        SimInfo* info_;
117 <        ForceManager* forceMan_;
118 <        bool needPotential;
119 <        bool needStress;
120 <        
121 <        Velocitizer* velocitizer_;
122 <        bool needVelocityScaling;
123 <        double targetScalingTemp;
116 >    SimInfo* info_;
117 >    Globals* simParams;
118 >    ForceManager* forceMan_;
119 >    bool needPotential;
120 >    bool needStress;
121 >    bool needReset;    
122 >    Velocitizer* velocitizer_;
123 >    RNEMD* rnemd_;
124 >    bool needVelocityScaling;
125 >    RealType targetScalingTemp;
126 >
127 >    bool useRNEMD;    
128      
129 <        DumpWriter*dumpWriter;
130 <        StatWriter* statWriter;
131 <        Thermo thermo;
129 >    DumpWriter* dumpWriter;
130 >    StatWriter* statWriter;
131 >    RestWriter* restWriter;
132 >    Thermo thermo;
133  
134 <        double runTime;
135 <        double sampleTime;
136 <        double statusTime;
137 <        double thermalTime;
138 <        double dt;
134 >    RealType runTime;
135 >    RealType sampleTime;
136 >    RealType statusTime;
137 >    RealType thermalTime;
138 >    RealType resetTime;
139 >    RealType RNEMD_swapTime;
140 >    RealType dt;
141  
142 <        Snapshot* currentSnapshot_; //During the integration, the address of currentSnapshot Will not change
142 >    Snapshot* currentSnapshot_; //During the integration, the address of currentSnapshot Will not change
143  
144          
145 <    private:
145 >  private:
146          
147 <        virtual double calcConservedQuantity() = 0;
147 >    virtual RealType calcConservedQuantity() = 0;
148          
149 <        virtual DumpWriter* createDumpWriter() = 0;
133 <        
134 <        virtual StatWriter* createStatWriter() = 0;
135 < };
149 >    virtual DumpWriter* createDumpWriter() = 0;
150  
151 +    virtual StatWriter* createStatWriter() = 0;
152 +  };
153 +
154      
155   }
156   #endif //INTEGRATORS_INTEGRATOR_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines