ESyS-Particle  4.0.1
ParticleFieldMaster.h
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
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 __PARTICLEFIELDMASTER_H
14 #define __PARTICLEFIELDMASTER_H
15 
16 //--- project includes ---
17 #include "FieldMaster.h"
18 #include "vec3.h"
19 
20 //--- STL includes ---
21 #include <map>
22 
23 using std::map;
24 
25 class TML_Comm;
26 
36 {
37  protected:
38  map<int,double> m_save_map;
39  map<int,double> m_rad_map;
40  map<int,Vec3> m_pos_map;
41  virtual void writeAsDX();
42  virtual void writeAsPOV();
43  virtual void writeAsSILO();
44  virtual void writeAsSUM();
45  virtual void writeAsMAX();
46  virtual void writeAsRAW_SERIES();
47 
48  void collectFull();
49  void collectSum();
50 
51  public:
52  ScalarParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int);
53  ScalarParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int,int,int);
54  virtual ~ScalarParticleFieldMaster(){};
55 
56  virtual void collect();
57  };
58 
68 {
69  protected:
70  map<int,Vec3> m_save_map;
71  map<int,Vec3> m_pos_map;
72  virtual void writeAsDX();
73  virtual void writeAsPOV();
74  virtual void writeAsSILO();
75  virtual void writeAsSUM();
76  virtual void writeAsMAX();
77  virtual void writeAsRAW_SERIES();
78  virtual void writeAsRAW2();
79 
80  public:
81  VectorParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int);
82  VectorParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int,int,int);
83  virtual ~VectorParticleFieldMaster(){};
84 
85  void collect();
86 };
87 
88 #endif //__PARTICLEFIELDMASTER_H