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

Comparing branches/development/src/brains/Snapshot.hpp (file contents):
Revision 1465 by chuckv, Fri Jul 9 23:08:25 2010 UTC vs.
Revision 1544 by gezelter, Fri Mar 18 19:31:52 2011 UTC

# Line 63 | Line 63 | namespace OpenMD{
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),
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), hasVolume_(false), volume_(0.0) {
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),
88 <        rigidbodyData(nRigidbodies, storageLayout),
89 <        currentTime_(0), orthoTolerance_(1e-6), orthoRhombic_(0), chi_(0.0),
90 <        integralOfChiDt_(0.0), eta_(0.0), id_(-1), hasCOM_(false), hasVolume_(false),volume_(0.0)  {
91 <
92 <      }
93 <            
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 113 | Line 118 | namespace OpenMD{
118        return rigidbodyData.getSize();
119      }
120  
121 +    /** Returns the number of rigid bodies */
122 +    int getNumberOfCutoffGroups() {
123 +      return cgData.getSize();
124 +    }
125 +
126      /** Returns the H-Matrix */
127      Mat3x3d getHmat() {
128        return hmat_;
# Line 198 | Line 208 | namespace OpenMD{
208        COMw_ = COMw;
209        hasCOM_ = true;
210      }
211 <                  
211 >
212 >    Vector3d getAtomPosByIindex(int iIndex) {
213 > #ifdef IS_MPI
214 >      return atomIData.position[iIndex];
215 > #else
216 >      return atomData.position[iIndex];
217 > #endif
218 >    }
219 >    Vector3d getAtomPosByJindex(int jIndex) {
220 > #ifdef IS_MPI
221 >      return atomJData.position[jIndex];
222 > #else
223 >      return atomData.position[jIndex];
224 > #endif
225 >    }
226 >
227 >    Vector3d getCutoffGroupPosByIindex(int iIndex) {
228 > #ifdef IS_MPI
229 >      return cgIData.position[iIndex];
230 > #else
231 >      return cgData.position[iIndex];
232 > #endif
233 >    }
234 >    Vector3d getCutoffGroupPosByJindex(int jIndex) {
235 > #ifdef IS_MPI
236 >      return cgJData.position[jIndex];
237 > #else
238 >      return cgData.position[jIndex];
239 > #endif
240 >    }
241 >
242      DataStorage atomData;
243      DataStorage rigidbodyData;
244 +    DataStorage cgData;
245      Stats statData;
246 +
247 + #ifdef IS_MPI
248 +    DataStorage atomIData;
249 +    DataStorage atomJData;
250 +    DataStorage cgIData;
251 +    DataStorage cgJData;
252 + #endif
253 +  
254              
255    private:
256      RealType currentTime_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines