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 1360 by cli2, Mon Sep 7 16:31:51 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 "integrators/Velocitizer.hpp"
58 + #include "integrators/RNEMD.hpp"
59  
60   namespace oopse {
61  
62  
63 < /**
64 < * @class Integrator Integrator.hpp "integrators/Integrator.hpp"
65 < * @brief Base class of Integrator
66 < * @todo document
67 < */
68 < class Integrator {
69 <    public:
63 >  /**
64 >   * @class Integrator Integrator.hpp "integrators/Integrator.hpp"
65 >   * @brief Base class of Integrator
66 >   * @todo document
67 >   */
68 >  class Integrator {
69 >  public:
70  
71 <        virtual ~Integrator();
71 >    virtual ~Integrator();
72  
73 <        //avoid public virtual function        
74 <        void integrate() {
75 <            doIntegrate();
76 <        }
73 >    //avoid public virtual function        
74 >    void integrate() {
75 >      doIntegrate();
76 >    }
77  
78 <        void update() {
79 <            doUpdate();
80 <        }
78 >    void update() {
79 >      doUpdate();
80 >    }
81  
82 <        void setForceManager(ForceManager* forceMan) {
81 <            if (forceMan_ != forceMan && forceMan_  != NULL) {
82 <                delete forceMan_;
83 <            }
84 <            forceMan_ = forceMan;
85 <        }
82 >    void setForceManager(ForceManager* forceMan) {
83  
84 <        void setVelocitizer(Velocitizer* velocitizer) {
85 <            if (velocitizer_ != velocitizer && velocitizer_  != NULL) {
86 <                delete velocitizer_;
87 <            }
88 <            velocitizer_  = velocitizer;
89 <        }
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 >    }
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 >    Thermo thermo;
132  
133 <        double runTime;
134 <        double sampleTime;
135 <        double statusTime;
136 <        double thermalTime;
137 <        double dt;
133 >    RealType runTime;
134 >    RealType sampleTime;
135 >    RealType statusTime;
136 >    RealType thermalTime;
137 >    RealType resetTime;
138 >    RealType RNEMD_swapTime;
139 >    RealType dt;
140  
141 <        Snapshot* currentSnapshot_; //During the integration, the address of currentSnapshot Will not change
141 >    Snapshot* currentSnapshot_; //During the integration, the address of currentSnapshot Will not change
142  
143          
144 <    private:
144 >  private:
145          
146 <        virtual double calcConservedQuantity() = 0;
146 >    virtual RealType calcConservedQuantity() = 0;
147          
148 <        virtual DumpWriter* createDumpWriter() = 0;
133 <        
134 <        virtual StatWriter* createStatWriter() = 0;
135 < };
148 >    virtual DumpWriter* createDumpWriter() = 0;
149  
150 +    virtual StatWriter* createStatWriter() = 0;
151 +  };
152 +
153      
154   }
155   #endif //INTEGRATORS_INTEGRATOR_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines