ESyS-Particle
4.0.1
|
00001 00002 // // 00003 // Copyright (c) 2003-2011 by The University of Queensland // 00004 // Earth Systems Science Computational Centre (ESSCC) // 00005 // http://www.uq.edu.au/esscc // 00006 // // 00007 // Primary Business: Brisbane, Queensland, Australia // 00008 // Licensed under the Open Software License version 3.0 // 00009 // http://www.opensource.org/licenses/osl-3.0.php // 00010 // // 00012 00013 #ifndef __PARTICLEFIELDMASTER_H 00014 #define __PARTICLEFIELDMASTER_H 00015 00016 //--- project includes --- 00017 #include "FieldMaster.h" 00018 #include "vec3.h" 00019 00020 //--- STL includes --- 00021 #include <map> 00022 00023 using std::map; 00024 00025 class TML_Comm; 00026 00035 class ScalarParticleFieldMaster : public AFieldMaster 00036 { 00037 protected: 00038 map<int,double> m_save_map; 00039 map<int,double> m_rad_map; 00040 map<int,Vec3> m_pos_map; 00041 virtual void writeAsDX(); 00042 virtual void writeAsPOV(); 00043 virtual void writeAsSILO(); 00044 virtual void writeAsSUM(); 00045 virtual void writeAsMAX(); 00046 virtual void writeAsRAW_SERIES(); 00047 00048 void collectFull(); 00049 void collectSum(); 00050 00051 public: 00052 ScalarParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int); 00053 ScalarParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int,int,int); 00054 virtual ~ScalarParticleFieldMaster(){}; 00055 00056 virtual void collect(); 00057 }; 00058 00067 class VectorParticleFieldMaster : public AFieldMaster 00068 { 00069 protected: 00070 map<int,Vec3> m_save_map; 00071 map<int,Vec3> m_pos_map; 00072 virtual void writeAsDX(); 00073 virtual void writeAsPOV(); 00074 virtual void writeAsSILO(); 00075 virtual void writeAsSUM(); 00076 virtual void writeAsMAX(); 00077 virtual void writeAsRAW_SERIES(); 00078 virtual void writeAsRAW2(); 00079 00080 public: 00081 VectorParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int); 00082 VectorParticleFieldMaster(TML_Comm*,const string&,const string&,const string&,int,int,int,int,int); 00083 virtual ~VectorParticleFieldMaster(){}; 00084 00085 void collect(); 00086 }; 00087 00088 #endif //__PARTICLEFIELDMASTER_H