ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-2.0/src/integrators/Integrator.hpp
(Generate patch)

Comparing branches/new_design/OOPSE-2.0/src/integrators/Integrator.hpp (file contents):
Revision 1818 by tim, Wed Nov 24 17:42:37 2004 UTC vs.
Revision 1819 by tim, Wed Dec 1 22:45:49 2004 UTC

# Line 34 | Line 34 | namespace oopse {
34   #ifndef INTEGRATORS_INTEGRATOR_HPP
35   #define INTEGRATORS_INTEGRATOR_HPP
36  
37 + #include "brains/ForceManager.hpp"
38 + #include "io/DumpWriter.hpp"
39 + #include "io/StatWriter.hpp"
40 + #include "integrators/Velocitizer.hpp"
41 +
42   namespace oopse {
43  
44 +
45   /**
46   * @class Integrator Integrator.hpp "integrators/Integrator.hpp"
47   * @brief Base class of Integrator
# Line 44 | Line 50 | class Integrator {
50   class Integrator {
51      public:
52  
53 <        virtual ~Integrator() {}
53 >        virtual ~Integrator();
54  
55 <        virtual void integrate() =0;
55 >        //avoid public virtual function        
56 >        void integrate() {
57 >            doIntegrate();
58 >        }
59  
60 <        virtual void update() {}
60 >        void update() {
61 >            doUpdate();
62 >        }
63  
64          void setForceManager(ForceManager* forceMan) {
65              if (forceMan_  != NULL) {
# Line 56 | Line 67 | class Integrator {
67              }
68              forceMan_ = forceMan;
69          }
70 +
71 +        void setVelocitizer(Velocitizer* velocitizer) {
72 +            if (velocitizer_  != NULL) {
73 +                delete velocitizer_;
74 +            }
75 +            velocitizer_  = velocitizer;
76 +        }
77          
78      protected:
79 <        Integrator(SimInfo* info) : info_(info), forceMan_(NULL) {}
79 >
80 >        virtual void doIntegrate() = 0;
81 >        virtual void doUpdate() {}
82          
83 +        Integrator(SimInfo* info);
84 +        
85          SimInfo* info_;
86          ForceManager* forceMan_;
87 +        bool needPotential;
88 +        bool needStress;
89 +        
90 +        Velocitizer* velocitizer_;
91 +        bool needVelocityScaling;
92 +        double targetScalingTemp;
93 +    
94 +        DumpWriter*dumpWriter;
95 +        StatWriter* statWriter;
96 +        Thermo thermo;
97  
98 +        double runTime;
99 +        double sampleTime;
100 +        double statusTime;
101 +        double thermalTime;
102 +        double dt;
103 +
104 +        Snapshot* currentSnapshot_; //During the integration, the address of currentSnapshot Will not change
105 +        
106      private:
107 +        
108          virtual double calcConservedQuantity() = 0;
109 +        virtual DumpWriter* createDumpWriter() = 0;
110 +        virtual StatWriter* createStatWriter() = 0;
111  
112   };
113  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines