ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/brains/Snapshot.hpp
(Generate patch)

Comparing trunk/src/brains/Snapshot.hpp (file contents):
Revision 246 by gezelter, Wed Jan 12 22:41:40 2005 UTC vs.
Revision 1104 by gezelter, Fri Dec 29 21:43:18 2006 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 Snapshot.hpp
44 <  * @author tlin
45 <  * @date 10/20/2004
46 <  * @time 23:56am
47 <  * @version 1.0
48 <  */
42 > /**
43 > * @file Snapshot.hpp
44 > * @author tlin
45 > * @date 10/20/2004
46 > * @time 23:56am
47 > * @version 1.0
48 > */
49    
50   #ifndef BRAINS_SNAPSHOT_HPP
51   #define BRAINS_SNAPSHOT_HPP
# Line 58 | Line 58 | namespace oopse{
58  
59   namespace oopse{
60  
61 <    /**
62 <     * @class Snapshot Snapshot.hpp "brains/Snapshot.hpp"
63 <     * @brief Snapshot class is a repository class for storing dynamic data during
64 <     *  Simulation
65 <     * Every snapshot class will contain one DataStorage  for atoms and one DataStorage
66 <     *  for rigid bodies.
67 <     */
68 <    class Snapshot {
69 <        public:
61 >  /**
62 >   * @class Snapshot Snapshot.hpp "brains/Snapshot.hpp"
63 >   * @brief Snapshot class is a repository class for storing dynamic data during
64 >   *  Simulation
65 >   * Every snapshot class will contain one DataStorage  for atoms and one DataStorage
66 >   *  for rigid bodies.
67 >   */
68 >  class Snapshot {
69 >  public:
70              
71 <            Snapshot(int nAtoms, int nRigidbodies) : atomData(nAtoms), rigidbodyData(nRigidbodies),
72 <                currentTime_(0), orthoRhombic_(0), chi_(0.0), integralOfChiDt_(0.0), eta_(0.0) {
71 >    Snapshot(int nAtoms, int nRigidbodies) : atomData(nAtoms), rigidbodyData(nRigidbodies),
72 >                                             currentTime_(0), orthoTolerance_(1e-6), orthoRhombic_(0), chi_(0.0), integralOfChiDt_(0.0), eta_(0.0), id_(-1) {
73  
74 <            }
74 >    }
75  
76 +    Snapshot(int nAtoms, int nRigidbodies, int storageLayout)
77 +      : atomData(nAtoms, storageLayout), rigidbodyData(nRigidbodies, storageLayout),
78 +        currentTime_(0), orthoTolerance_(1e-6), orthoRhombic_(0), chi_(0.0), integralOfChiDt_(0.0), eta_(0.0), id_(-1) {
79 +
80 +      }
81              
82 <            /** Returns the id of this Snapshot */
83 <            int getID() {
84 <                return id_;
85 <            }
82 >    /** Returns the id of this Snapshot */
83 >    int getID() {
84 >      return id_;
85 >    }
86  
87 <            /** Sets the id of this Snapshot */
88 <            void setID(int id) {
89 <                id_ = id;
90 <            }
87 >    /** Sets the id of this Snapshot */
88 >    void setID(int id) {
89 >      id_ = id;
90 >    }
91  
92 <            int getSize() {
93 <                return atomData.getSize() + rigidbodyData.getSize();
94 <            }
92 >    int getSize() {
93 >      return atomData.getSize() + rigidbodyData.getSize();
94 >    }
95  
96 <            /** Returns the number of atoms */
97 <            int getNumberOfAtoms() {
98 <                return atomData.getSize();
99 <            }
96 >    /** Returns the number of atoms */
97 >    int getNumberOfAtoms() {
98 >      return atomData.getSize();
99 >    }
100  
101 <            /** Returns the number of rigid bodies */
102 <            int getNumberOfRigidBodies() {
103 <                return rigidbodyData.getSize();
104 <            }
101 >    /** Returns the number of rigid bodies */
102 >    int getNumberOfRigidBodies() {
103 >      return rigidbodyData.getSize();
104 >    }
105  
106 <            /** Returns the H-Matrix */
107 <            Mat3x3d getHmat() {
108 <                return hmat_;
109 <            }
106 >    /** Returns the H-Matrix */
107 >    Mat3x3d getHmat() {
108 >      return hmat_;
109 >    }
110  
111 <            /** Sets the H-Matrix */
112 <            void setHmat(const Mat3x3d& m);
111 >    /** Sets the H-Matrix */
112 >    void setHmat(const Mat3x3d& m);
113              
114 <            double getVolume() {
115 <                return hmat_.determinant();
116 <            }
114 >    RealType getVolume() {
115 >      return hmat_.determinant();
116 >    }
117  
118 <            /** Returns the inverse H-Matrix */
119 <            Mat3x3d getInvHmat() {
120 <                return invHmat_;
121 <            }
118 >    /** Returns the inverse H-Matrix */
119 >    Mat3x3d getInvHmat() {
120 >      return invHmat_;
121 >    }
122  
123 <            /** Wrapping the vector according to periodic boundary condition*/
124 <            void wrapVector(Vector3d& v);
125 <
123 >    /** Wrapping the vector according to periodic boundary condition*/
124 >    void wrapVector(Vector3d& v);
125 >    Vector3d getCOM();
126 >    Vector3d getCOMvel();
127 >    Vector3d getCOMw();
128              
129 <            double getTime() {
130 <                return currentTime_;
131 <            }
129 >    RealType getTime() {
130 >      return currentTime_;
131 >    }
132  
133 <            void increaseTime(double dt) {
134 <                setTime(getTime() + dt);
135 <            }
133 >    void increaseTime(RealType dt) {
134 >      setTime(getTime() + dt);
135 >    }
136  
137 <            void setTime(double time) {
138 <                currentTime_ =time;
139 <                //time at statData is redundant
140 <                statData[Stats::TIME] = currentTime_;
141 <            }
137 >    void setTime(RealType time) {
138 >      currentTime_ =time;
139 >      //time at statData is redundant
140 >      statData[Stats::TIME] = currentTime_;
141 >    }
142  
143 <            double getChi() {
144 <                return chi_;
145 <            }
143 >    RealType getChi() {
144 >      return chi_;
145 >    }
146  
147 <            void setChi(double chi) {
148 <                chi_ = chi;
149 <            }
147 >    void setChi(RealType chi) {
148 >      chi_ = chi;
149 >    }
150  
151 <            double getIntegralOfChiDt() {
152 <                return integralOfChiDt_;
153 <            }
151 >    RealType getIntegralOfChiDt() {
152 >      return integralOfChiDt_;
153 >    }
154  
155 <            void setIntegralOfChiDt(double integralOfChiDt) {
156 <                integralOfChiDt_ = integralOfChiDt;
157 <            }
155 >    void setIntegralOfChiDt(RealType integralOfChiDt) {
156 >      integralOfChiDt_ = integralOfChiDt;
157 >    }
158              
152            Mat3x3d getEta() {
153                return eta_;
154            }
159  
160 <            void setEta(const Mat3x3d& eta) {
161 <                eta_ = eta;
162 <            }
160 >    void setOrthoTolerance(RealType orthoTolerance) {
161 >      orthoTolerance_ = orthoTolerance;
162 >    }
163 >
164 >    Mat3x3d getEta() {
165 >      return eta_;
166 >    }
167 >
168 >    void setEta(const Mat3x3d& eta) {
169 >      eta_ = eta;
170 >    }
171 >
172 >    bool hasCOM() {
173 >      return hasCOM_;
174 >    }
175 >
176 >    void setCOMprops(const Vector3d& COM, const Vector3d& COMvel, const Vector3d& COMw) {
177 >      COM_ = COM;
178 >      COMvel_ = COMvel;
179 >      COMw_ = COMw;
180 >      hasCOM_ = true;
181 >    }
182 >                  
183 >    DataStorage atomData;
184 >    DataStorage rigidbodyData;
185 >    Stats statData;
186              
187 <            DataStorage atomData;
188 <            DataStorage rigidbodyData;
162 <            Stats statData;
163 <            
164 <        private:
165 <            double currentTime_;
187 >  private:
188 >    RealType currentTime_;
189  
190 <            Mat3x3d hmat_;
191 <            Mat3x3d invHmat_;
192 <            int orthoRhombic_;
190 >    Mat3x3d hmat_;
191 >    Mat3x3d invHmat_;
192 >    RealType orthoTolerance_;
193 >    int orthoRhombic_;
194  
195 <            double chi_;
196 <            double integralOfChiDt_;
197 <            Mat3x3d eta_;
195 >    RealType chi_;
196 >    RealType integralOfChiDt_;
197 >    Mat3x3d eta_;
198 >    Vector3d COM_;
199 >    Vector3d COMvel_;
200 >    Vector3d COMw_;
201 >    bool hasCOM_;
202              
203 <            int id_; /**< identification number of the snapshot */
204 <    };
203 >    int id_; /**< identification number of the snapshot */
204 >  };
205  
206 <    typedef DataStorage (Snapshot::*DataStoragePointer);
206 >  typedef DataStorage (Snapshot::*DataStoragePointer);
207   }
208   #endif //BRAINS_SNAPSHOT_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines