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 316 by tim, Fri Feb 11 22:41:02 2005 UTC vs.
Revision 1287 by gezelter, Wed Sep 10 18:11:32 2008 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),
73 >                                             rigidbodyData(nRigidbodies),
74 >                                             currentTime_(0),
75 >                                             orthoTolerance_(1e-6),
76 >                                             orthoRhombic_(0),
77 >                                             chi_(0.0),
78 >                                             integralOfChiDt_(0.0),
79 >                                             eta_(0.0), id_(-1),
80 >                                             hasCOM_(false) {
81  
82 <            }
82 >    }
83  
84 <            Snapshot(int nAtoms, int nRigidbodies, int storageLayout)
85 <                : atomData(nAtoms, storageLayout), rigidbodyData(nRigidbodies, storageLayout),
86 <                currentTime_(0), orthoRhombic_(0), chi_(0.0), integralOfChiDt_(0.0), eta_(0.0) {
84 >    Snapshot(int nAtoms, int nRigidbodies, int storageLayout)
85 >      : atomData(nAtoms, storageLayout),
86 >        rigidbodyData(nRigidbodies, storageLayout),
87 >        currentTime_(0), orthoTolerance_(1e-6), orthoRhombic_(0), chi_(0.0),
88 >        integralOfChiDt_(0.0), eta_(0.0), id_(-1), hasCOM_(false)  {
89  
90 <            }
90 >      }
91              
92 <            /** Returns the id of this Snapshot */
93 <            int getID() {
94 <                return id_;
95 <            }
92 >    /** Returns the id of this Snapshot */
93 >    int getID() {
94 >      return id_;
95 >    }
96  
97 <            /** Sets the id of this Snapshot */
98 <            void setID(int id) {
99 <                id_ = id;
100 <            }
97 >    /** Sets the id of this Snapshot */
98 >    void setID(int id) {
99 >      id_ = id;
100 >    }
101  
102 <            int getSize() {
103 <                return atomData.getSize() + rigidbodyData.getSize();
104 <            }
102 >    int getSize() {
103 >      return atomData.getSize() + rigidbodyData.getSize();
104 >    }
105  
106 <            /** Returns the number of atoms */
107 <            int getNumberOfAtoms() {
108 <                return atomData.getSize();
109 <            }
106 >    /** Returns the number of atoms */
107 >    int getNumberOfAtoms() {
108 >      return atomData.getSize();
109 >    }
110  
111 <            /** Returns the number of rigid bodies */
112 <            int getNumberOfRigidBodies() {
113 <                return rigidbodyData.getSize();
114 <            }
111 >    /** Returns the number of rigid bodies */
112 >    int getNumberOfRigidBodies() {
113 >      return rigidbodyData.getSize();
114 >    }
115  
116 <            /** Returns the H-Matrix */
117 <            Mat3x3d getHmat() {
118 <                return hmat_;
119 <            }
116 >    /** Returns the H-Matrix */
117 >    Mat3x3d getHmat() {
118 >      return hmat_;
119 >    }
120  
121 <            /** Sets the H-Matrix */
122 <            void setHmat(const Mat3x3d& m);
121 >    /** Sets the H-Matrix */
122 >    void setHmat(const Mat3x3d& m);
123              
124 <            double getVolume() {
125 <                return hmat_.determinant();
126 <            }
124 >    RealType getVolume() {
125 >      return hmat_.determinant();
126 >    }
127  
128 <            /** Returns the inverse H-Matrix */
129 <            Mat3x3d getInvHmat() {
130 <                return invHmat_;
131 <            }
128 >    /** Returns the inverse H-Matrix */
129 >    Mat3x3d getInvHmat() {
130 >      return invHmat_;
131 >    }
132  
133 <            /** Wrapping the vector according to periodic boundary condition*/
134 <            void wrapVector(Vector3d& v);
135 <
133 >    /** Wrapping the vector according to periodic boundary condition*/
134 >    void wrapVector(Vector3d& v);
135 >    Vector3d getCOM();
136 >    Vector3d getCOMvel();
137 >    Vector3d getCOMw();
138              
139 <            double getTime() {
140 <                return currentTime_;
141 <            }
139 >    RealType getTime() {
140 >      return currentTime_;
141 >    }
142  
143 <            void increaseTime(double dt) {
144 <                setTime(getTime() + dt);
145 <            }
143 >    void increaseTime(RealType dt) {
144 >      setTime(getTime() + dt);
145 >    }
146  
147 <            void setTime(double time) {
148 <                currentTime_ =time;
149 <                //time at statData is redundant
150 <                statData[Stats::TIME] = currentTime_;
151 <            }
147 >    void setTime(RealType time) {
148 >      currentTime_ =time;
149 >      //time at statData is redundant
150 >      statData[Stats::TIME] = currentTime_;
151 >    }
152  
153 <            double getChi() {
154 <                return chi_;
155 <            }
153 >    RealType getChi() {
154 >      return chi_;
155 >    }
156  
157 <            void setChi(double chi) {
158 <                chi_ = chi;
159 <            }
157 >    void setChi(RealType chi) {
158 >      chi_ = chi;
159 >    }
160  
161 <            double getIntegralOfChiDt() {
162 <                return integralOfChiDt_;
163 <            }
161 >    RealType getIntegralOfChiDt() {
162 >      return integralOfChiDt_;
163 >    }
164  
165 <            void setIntegralOfChiDt(double integralOfChiDt) {
166 <                integralOfChiDt_ = integralOfChiDt;
167 <            }
165 >    void setIntegralOfChiDt(RealType integralOfChiDt) {
166 >      integralOfChiDt_ = integralOfChiDt;
167 >    }
168              
157            Mat3x3d getEta() {
158                return eta_;
159            }
169  
170 <            void setEta(const Mat3x3d& eta) {
171 <                eta_ = eta;
172 <            }
170 >    void setOrthoTolerance(RealType orthoTolerance) {
171 >      orthoTolerance_ = orthoTolerance;
172 >    }
173 >
174 >    Mat3x3d getEta() {
175 >      return eta_;
176 >    }
177 >
178 >    void setEta(const Mat3x3d& eta) {
179 >      eta_ = eta;
180 >    }
181 >
182 >    bool hasCOM() {
183 >      return hasCOM_;
184 >    }
185 >
186 >    void setCOMprops(const Vector3d& COM, const Vector3d& COMvel, const Vector3d& COMw) {
187 >      COM_ = COM;
188 >      COMvel_ = COMvel;
189 >      COMw_ = COMw;
190 >      hasCOM_ = true;
191 >    }
192 >                  
193 >    DataStorage atomData;
194 >    DataStorage rigidbodyData;
195 >    Stats statData;
196              
197 <            DataStorage atomData;
198 <            DataStorage rigidbodyData;
167 <            Stats statData;
168 <            
169 <        private:
170 <            double currentTime_;
197 >  private:
198 >    RealType currentTime_;
199  
200 <            Mat3x3d hmat_;
201 <            Mat3x3d invHmat_;
202 <            int orthoRhombic_;
200 >    Mat3x3d hmat_;
201 >    Mat3x3d invHmat_;
202 >    RealType orthoTolerance_;
203 >    int orthoRhombic_;
204  
205 <            double chi_;
206 <            double integralOfChiDt_;
207 <            Mat3x3d eta_;
205 >    RealType chi_;
206 >    RealType integralOfChiDt_;
207 >    Mat3x3d eta_;
208 >    Vector3d COM_;
209 >    Vector3d COMvel_;
210 >    Vector3d COMw_;
211 >    int id_; /**< identification number of the snapshot */
212 >    bool hasCOM_;
213              
214 <            int id_; /**< identification number of the snapshot */
181 <    };
214 >  };
215  
216 <    typedef DataStorage (Snapshot::*DataStoragePointer);
216 >  typedef DataStorage (Snapshot::*DataStoragePointer);
217   }
218   #endif //BRAINS_SNAPSHOT_HPP

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines