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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines