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

Comparing:
trunk/OOPSE-3.0/src/brains/Snapshot.hpp (file contents), Revision 1648 by tim, Tue Oct 26 22:19:22 2004 UTC vs.
branches/new_design/OOPSE-3.0/src/brains/Snapshot.hpp (file contents), Revision 1765 by tim, Mon Nov 22 20:55:52 2004 UTC

# Line 37 | Line 37
37   #include <vector>
38  
39   #include "brains/DataStorage.hpp"
40 + #include "brains/Stats.hpp"
41  
42   using namespace std;
43  
44   namespace oopse{
45  
45    class StuntDouble;
46    
46      /**
47       * @class Snapshot Snapshot.hpp "brains/Snapshot.hpp"
48       * @brief Snapshot class is a repository class for storing dynamic data during
49       *  Simulation
50       * Every snapshot class will contain one DataStorage  for atoms and one DataStorage
51       *  for rigid bodies.
53     * @see SimData
52       */
53      class Snapshot {
54          public:
55              
56 <            Snapshot(int nAtoms, int nRigidbodies) {
56 >            Snapshot(int nAtoms, int nRigidbodies) : currentTime_(0), chi_(0), integralOfChiDt_(0), eta_(0) {
57                  atomData.resize(nAtoms);
58                  rigidbodyData.resize(nRigidbodies);
59              }
60  
63            Snapshot(const Snapshot& s);
64
65            Snapshot& operator =(const Snapshot& s);
61              
62              /** Returns the id of this Snapshot */
63              int getID() {
# Line 74 | Line 69 | namespace oopse{
69                  id_ = id;
70              }
71  
77            //template<typename T>
78            //static typename T::ElemPointerType getArrayPointer(vector<T>& v) {
79            //    return v[0]->getArrayPointer();
80            //}
81
72              int getSize() {
73                  return atomData.getSize() + rigidbodyData.getSize();
74              }
# Line 99 | Line 89 | namespace oopse{
89              }
90  
91              /** Sets the H-Matrix */
92 <            void setHamt(const Mat3x3d& m) {
92 >            void setHmat(const Mat3x3d& m) {
93                  hmat_ = m;
94                  invHmat_ = hmat_.inverse();
95 +                
96 +                //notify fortran Hmat is changed
97 +                double fortranHmat[9];
98 +                double fortranInvHmat[9];
99 +                hmat_.getArray(fortranHmat);
100 +                invHmat_.getArray(fortranInvHmat);
101 +                setFortranBox(fortranHmat, fortranInvHmat, &orthoRhombic_);
102              }
103  
104 +            void getVolume() {
105 +                return hmat_.determinant();
106 +            }
107 +
108              /** Returns the inverse H-Matrix */
109              Mat3x3d getInvHmat() {
110 <                return invHmat_
110 >                return invHmat_;
111              }
112  
113 <            double getTimeStamp() {
114 <                return timeStamp_;
113 >            /** Wrapping the vector according to periodic boundary condition*/
114 >            void wrapVector(Vector3d& v);
115 >
116 >            
117 >            double getTime() {
118 >                return currentTime_;
119              }
120  
121 <            void setTimeStamp(double timeStamp) {
122 <                timeStamp_ =timeStamp;
121 >            void setTime(double time) {
122 >                currentTime_ =time;
123 >                //time at statData is redundant
124 >                statData[Stats::TIME] = currentTime_;
125              }
126  
127 +            double getChi() {
128 +                return chi_;
129 +            }
130  
131 +            void setChi(double chi) {
132 +                chi_ = chi;
133 +            }
134 +
135 +            double getIntegralOfChiDt() {
136 +                return integralOfChiDt_;
137 +            }
138 +
139 +            void setIntegralOfChiDt(double integralOfChiDt) {
140 +                integralOfChiDt_ = integralOfChiDt;
141 +            }
142 +            
143 +            Mat3x3d getEta() {
144 +                return eta_;
145 +            }
146 +
147 +            void setEta(const Mat3x3d& eta) {
148 +                eta_ = eta;
149 +            }
150 +            
151              DataStorage atomData;
152              DataStorage rigidbodyData;
153 +            Stats statData;
154              
124            friend class StuntDouble;
125            
155          private:
156 <            double timeStamp_;
156 >            double currentTime_;
157 >
158              Mat3x3d hmat_;
159              Mat3x3d invHmat_;
160 +            int orthoRhombic_;
161 +
162 +            double chi_;
163 +            double integralOfChiDt_;
164 +            Mat3x3d eta_;
165 +            
166              int id_; /**< identification number of the snapshot */
167      };
168  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines