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

Comparing branches/new_design/OOPSE-3.0/src/integrators/Integrator.hpp (file contents):
Revision 1721 by tim, Tue Nov 9 01:08:31 2004 UTC vs.
Revision 1820 by tim, Thu Dec 2 00:09:35 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
48 + * @todo document
49   */
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 >        void update() {
61 >            doUpdate();
62 >        }
63 >
64 >        void setForceManager(ForceManager* forceMan) {
65 >            if (forceMan_ != forceMan && forceMan_  != NULL) {
66 >                delete forceMan_;
67 >            }
68 >            forceMan_ = forceMan;
69 >        }
70 >
71 >        void setVelocitizer(Velocitizer* velocitizer) {
72 >            if (velocitizer_ != velocitizer && velocitizer_  != NULL) {
73 >                delete velocitizer_;
74 >            }
75 >            velocitizer_  = velocitizer;
76 >        }
77          
78      protected:
79 +
80 +        virtual void doIntegrate() = 0;
81 +        virtual void doUpdate() {}
82          
83 <        virtual void calcConservedQuantity() = 0;
84 < };
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 < typedef GenericFactory<Integrator, std::string, Integrator* (*)(SimInfo*)> IntegratorFactory;
104 >        Snapshot* currentSnapshot_; //During the integration, the address of currentSnapshot Will not change
105 >        
106 >    private:
107 >        
108 >        virtual double calcConservedQuantity() = 0;
109 >        
110 >        virtual DumpWriter* createDumpWriter() = 0;
111 >        
112 >        virtual StatWriter* createStatWriter() = 0;
113 > };
114 >
115      
116   }
117   #endif //INTEGRATORS_INTEGRATOR_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines