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 963 by tim, Wed May 17 21:51:42 2006 UTC vs.
branches/development/src/brains/Snapshot.hpp (file contents), Revision 1541 by gezelter, Fri Feb 4 20:04:56 2011 UTC

# Line 6 | Line 6
6   * redistribute this software in source and binary code form, provided
7   * that the following conditions are met:
8   *
9 < * 1. Acknowledgement of the program authors must be made in any
10 < *    publication of scientific results based in part on use of the
11 < *    program.  An acceptable form of acknowledgement is citation of
12 < *    the article in which the program was described (Matthew
13 < *    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 < *    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 < *    Parallel Simulation Engine for Molecular Dynamics,"
16 < *    J. Comput. Chem. 26, pp. 252-271 (2005))
17 < *
18 < * 2. Redistributions of source code must retain the above copyright
9 > * 1. Redistributions of source code must retain the above copyright
10   *    notice, this list of conditions and the following disclaimer.
11   *
12 < * 3. Redistributions in binary form must reproduce the above copyright
12 > * 2. Redistributions in binary form must reproduce the above copyright
13   *    notice, this list of conditions and the following disclaimer in the
14   *    documentation and/or other materials provided with the
15   *    distribution.
# Line 37 | Line 28
28   * arising out of the use of or inability to use software, even if the
29   * University of Notre Dame has been advised of the possibility of
30   * such damages.
31 + *
32 + * SUPPORT OPEN SCIENCE!  If you use OpenMD or its source code in your
33 + * research, please cite the appropriate papers when you publish your
34 + * work.  Good starting points are:
35 + *                                                                      
36 + * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37 + * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 + * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 + * [4]  Vardeman & Gezelter, in progress (2009).                        
40   */
41    
42   /**
# Line 56 | Line 56
56   #include "brains/Stats.hpp"
57   #include "UseTheForce/DarkSide/simulation_interface.h"
58  
59 namespace oopse{
59  
60 + namespace OpenMD{
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
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), id_(-1) {
72 >    Snapshot(int nAtoms, int nRigidbodies,
73 >             int nCutoffGroups) : atomData(nAtoms),
74 >                                  rigidbodyData(nRigidbodies),
75 >                                  cgData(nCutoffGroups, DataStorage::dslPosition),
76 >                                  currentTime_(0),
77 >                                  orthoTolerance_(1e-6),
78 >                                  orthoRhombic_(0),
79 >                                  chi_(0.0),
80 >                                  integralOfChiDt_(0.0),
81 >                                  eta_(0.0), id_(-1), hasCOM_(false),
82 >                                  hasVolume_(false), volume_(0.0) {
83  
84      }
85  
86 <    Snapshot(int nAtoms, int nRigidbodies, int storageLayout)
87 <      : atomData(nAtoms, storageLayout), rigidbodyData(nRigidbodies, storageLayout),
88 <        currentTime_(0), orthoRhombic_(0), chi_(0.0), integralOfChiDt_(0.0), eta_(0.0), id_(-1) {
89 <
90 <      }
91 <            
86 >    Snapshot(int nAtoms, int nRigidbodies, int nCutoffGroups,
87 >             int storageLayout) : atomData(nAtoms, storageLayout),
88 >                                  rigidbodyData(nRigidbodies, storageLayout),
89 >                                  cgData(nCutoffGroups, DataStorage::dslPosition),
90 >                                  currentTime_(0), orthoTolerance_(1e-6),
91 >                                  orthoRhombic_(0), chi_(0.0),
92 >                                  integralOfChiDt_(0.0), eta_(0.0), id_(-1),
93 >                                  hasCOM_(false), hasVolume_(false),
94 >                                  volume_(0.0)  {
95 >    }
96 >    
97      /** Returns the id of this Snapshot */
98      int getID() {
99        return id_;
# Line 112 | Line 127 | namespace oopse{
127      void setHmat(const Mat3x3d& m);
128              
129      RealType getVolume() {
130 <      return hmat_.determinant();
130 >      if (hasVolume_){
131 >        return volume_;
132 >      }else{
133 >        return hmat_.determinant();
134 >      }
135      }
136  
137 +    void setVolume(RealType volume){
138 +      hasVolume_=true;
139 +      volume_ = volume;
140 +    }
141 +
142      /** Returns the inverse H-Matrix */
143      Mat3x3d getInvHmat() {
144        return invHmat_;
# Line 122 | Line 146 | namespace oopse{
146  
147      /** Wrapping the vector according to periodic boundary condition*/
148      void wrapVector(Vector3d& v);
149 <
149 >    Vector3d getCOM();
150 >    Vector3d getCOMvel();
151 >    Vector3d getCOMw();
152              
153      RealType getTime() {
154        return currentTime_;
# Line 154 | Line 180 | namespace oopse{
180        integralOfChiDt_ = integralOfChiDt;
181      }
182              
183 +
184 +    void setOrthoTolerance(RealType orthoTolerance) {
185 +      orthoTolerance_ = orthoTolerance;
186 +    }
187 +
188      Mat3x3d getEta() {
189        return eta_;
190      }
# Line 161 | Line 192 | namespace oopse{
192      void setEta(const Mat3x3d& eta) {
193        eta_ = eta;
194      }
195 <            
195 >
196 >    bool hasCOM() {
197 >      return hasCOM_;
198 >    }
199 >
200 >    void setCOMprops(const Vector3d& COM, const Vector3d& COMvel, const Vector3d& COMw) {
201 >      COM_ = COM;
202 >      COMvel_ = COMvel;
203 >      COMw_ = COMw;
204 >      hasCOM_ = true;
205 >    }
206 >
207 >    Vector3d getAtomPosByIindex(int iIndex) {
208 > #ifdef IS_MPI
209 >      return atomIData.position[iIndex];
210 > #else
211 >      return atomData.position[iIndex];
212 > #endif
213 >    }
214 >    Vector3d getAtomPosByJindex(int jIndex) {
215 > #ifdef IS_MPI
216 >      return atomJData.position[jIndex];
217 > #else
218 >      return atomData.position[jIndex];
219 > #endif
220 >    }
221 >
222 >    Vector3d getCutoffGroupPosByIindex(int iIndex) {
223 > #ifdef IS_MPI
224 >      return cgIData.position[iIndex];
225 > #else
226 >      return cgData.position[iIndex];
227 > #endif
228 >    }
229 >    Vector3d getCutoffGroupPosByJindex(int jIndex) {
230 > #ifdef IS_MPI
231 >      return cgJData.position[jIndex];
232 > #else
233 >      return cgData.position[jIndex];
234 > #endif
235 >    }
236 >
237      DataStorage atomData;
238      DataStorage rigidbodyData;
239 +    DataStorage cgData;
240      Stats statData;
241 +
242 + #ifdef IS_MPI
243 +    DataStorage atomIData;
244 +    DataStorage atomJData;
245 +    DataStorage cgIData;
246 +    DataStorage cgJData;
247 + #endif
248 +  
249              
250    private:
251      RealType currentTime_;
252  
253      Mat3x3d hmat_;
254      Mat3x3d invHmat_;
255 +    RealType orthoTolerance_;
256      int orthoRhombic_;
257 +    RealType volume_;
258  
259      RealType chi_;
260      RealType integralOfChiDt_;
261      Mat3x3d eta_;
262 <            
262 >    Vector3d COM_;
263 >    Vector3d COMvel_;
264 >    Vector3d COMw_;
265      int id_; /**< identification number of the snapshot */
266 +    bool hasCOM_;
267 +    bool hasVolume_;
268 +            
269    };
270  
271    typedef DataStorage (Snapshot::*DataStoragePointer);

Comparing:
trunk/src/brains/Snapshot.hpp (property svn:keywords), Revision 963 by tim, Wed May 17 21:51:42 2006 UTC vs.
branches/development/src/brains/Snapshot.hpp (property svn:keywords), Revision 1541 by gezelter, Fri Feb 4 20:04:56 2011 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines