ESyS-Particle  2.3
gvmap.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __GVMAP_H
14 #define __GVMAP_H
15 
16 //--- project include ---
17 #include "../../Foundation/vec3.h"
18 
19 //--- STL includes ---
20 #include <map>
21 #include <utility>
22 #include <set>
23 #include <vector>
24 #include <string>
25 
26 using std::multimap;
27 using std::pair;
28 using std::set;
29 using std::string;
30 using std::vector;
31 
36 struct gdata
37 {
40  double mass;
41 };
42 
47 class GVMap
48 {
49  private:
50  multimap<int,gdata> m_map;
51  set<int> m_tag_set;
52  map<int,Vec3> m_vel;
53  map<int,Vec3> m_angvel;
54  int m_min_tag;
55 
56  typedef multimap<int,gdata>::iterator mm_iter;
57 
58  public:
59  GVMap(int);
60  void read(const string&,bool);
61  void calc();
62 };
63 
64 #endif //__GVMAP_H
data structure of grain velocity/rotation claculations
Definition: gvmap.h:47
Definition: vec3.h:46
set< int > m_tag_set
Definition: gvmap.h:51
multimap< int, gdata > m_map
Definition: gvmap.h:50
map< int, Vec3 > m_vel
Definition: gvmap.h:52
void read(const string &, bool)
Definition: gvmap.cpp:28
Vec3 pos
Definition: gvmap.h:39
structure used for the "interesting" data of each particle
Definition: gvmap.h:36
GVMap(int)
Definition: gvmap.cpp:23
map< int, Vec3 > m_angvel
Definition: gvmap.h:53
void calc()
Definition: gvmap.cpp:106
double mass
Definition: gvmap.h:40
Vec3 vel
Definition: gvmap.h:38
multimap< int, gdata >::iterator mm_iter
Definition: gvmap.h:56
int m_min_tag
Definition: gvmap.h:54