ESyS-Particle  2.3.4
InteractionFieldMaster.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 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.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 #ifndef __INTERACTIONFIELDMASTER_H
14 #define __INTERACTIONFIELDMASTER_H
15 
16 //--- project includes ---
17 #include "FieldMaster.h"
18 #include "vec3.h"
19 #include "Foundation/quintuple.h"
20 #include "Foundation/triplet.h"
21 
22 //--- STL includes ---
23 #include <vector>
24 
25 using std::vector;
26 
27 //class TML_Comm;
28 
38 {
39  public:
40  typedef std::pair<esys::lsm::quintuple<Vec3,double,Vec3,double,Vec3>, double> IVecData2;
41  typedef std::pair<esys::lsm::triplet<int,int,Vec3>, double> DataWithID;
42  typedef std::pair<esys::lsm::quintuple<int,int,Vec3,Vec3,Vec3>, double> DataWithPosID;
43 
44  protected:
45  vector<IVecData2> m_data2; // vector of <pos1,radius1,pos2,radius2,ipos,value> groups
46  vector<DataWithID> m_data_with_id;
47  vector<DataWithPosID> m_data_with_pos_id;
48  vector<pair<Vec3,double> > m_data; // vector of <position,value> pairs
49  vector<double> m_sum_vec;
50 
51  virtual void writeAsDX();
52  virtual void writeAsSUM();
53  virtual void writeAsMAX();
54  virtual void writeAsRAW_SERIES();
55  virtual void writeAsRAW2();
56  virtual void writeAsRAW();
57  virtual void writeAsRawWithID();
58  virtual void writeAsRawWithPosID();
59 
60  void collectFull();
61  void collectSum();
62  void collectMax();
63  void collectFull2();
64  void collectFullWithID();
65  void collectFullWithPosID();
66 
67  public:
68  ScalarInteractionFieldMaster(TML_Comm*,const string&,const string&,const string&,const string&,const string&,int,int,int,bool);
69  ScalarInteractionFieldMaster(TML_Comm*,const string&,const string&,const string&,const string&,const string&,int,int,int,int,int,bool);
71 
72  void collect();
73  };
74 
75 #endif //__INTERACTIONFIELDMASTER_H
COLL_TYPE_FULL_WITH_ID
@ COLL_TYPE_FULL_WITH_ID
Definition: field_const.h:35
WRITE_TYPE_SUM
@ WRITE_TYPE_SUM
Definition: field_const.h:19
ScalarInteractionFieldMaster::writeAsRAW_SERIES
virtual void writeAsRAW_SERIES()
Definition: InteractionFieldMaster.cpp:514
WRITE_TYPE_RAW_WITH_ID
@ WRITE_TYPE_RAW_WITH_ID
Definition: field_const.h:24
ScalarInteractionFieldMaster::m_data_with_pos_id
vector< DataWithPosID > m_data_with_pos_id
Definition: InteractionFieldMaster.h:47
field_const.h
WRITE_TYPE_RAW2
@ WRITE_TYPE_RAW2
Definition: field_const.h:22
ScalarInteractionFieldMaster::collectSum
void collectSum()
Definition: InteractionFieldMaster.cpp:231
ScalarInteractionFieldMaster::collect
void collect()
Definition: InteractionFieldMaster.cpp:93
AFieldMaster
Abstract base class for master part of field.
Definition: FieldMaster.h:40
InteractionFieldMaster.h
ScalarInteractionFieldMaster::~ScalarInteractionFieldMaster
virtual ~ScalarInteractionFieldMaster()
Definition: InteractionFieldMaster.h:70
AFieldMaster::m_field_name
string m_field_name
Definition: FieldMaster.h:46
AFieldMaster::makeFilename
string makeFilename()
Definition: FieldMaster.cpp:89
Console::Error
Console & Error()
set verbose level of next message to "err"
AFieldMaster::m_file_name
string m_file_name
Definition: FieldMaster.h:47
console.h
ScalarInteractionFieldMaster::writeAsDX
virtual void writeAsDX()
Definition: InteractionFieldMaster.cpp:255
ScalarInteractionFieldMaster::writeAsRawWithPosID
virtual void writeAsRawWithPosID()
Definition: InteractionFieldMaster.cpp:389
ScalarInteractionFieldMaster::DataWithPosID
std::pair< esys::lsm::quintuple< int, int, Vec3, Vec3, Vec3 >, double > DataWithPosID
Definition: InteractionFieldMaster.h:42
ScalarInteractionFieldMaster::IVecData2
std::pair< esys::lsm::quintuple< Vec3, double, Vec3, double, Vec3 >, double > IVecData2
Definition: InteractionFieldMaster.h:40
COLL_TYPE_FULL
@ COLL_TYPE_FULL
Definition: field_const.h:30
ScalarInteractionFieldMaster::m_sum_vec
vector< double > m_sum_vec
Definition: InteractionFieldMaster.h:49
ScalarInteractionFieldMaster::writeAsRAW2
virtual void writeAsRAW2()
Definition: InteractionFieldMaster.cpp:285
ScalarInteractionFieldMaster::writeAsRAW
virtual void writeAsRAW()
Definition: InteractionFieldMaster.cpp:438
quintuple.h
COLL_TYPE_SUM
@ COLL_TYPE_SUM
Definition: field_const.h:31
AFieldMaster::m_write_type
int m_write_type
Definition: FieldMaster.h:51
Console::XDebug
Console & XDebug()
set verbose level of next message to "xdg"
ScalarInteractionFieldMaster::collectFull2
void collectFull2()
Definition: InteractionFieldMaster.cpp:139
ScalarInteractionFieldMaster::m_data
vector< pair< Vec3, double > > m_data
Definition: InteractionFieldMaster.h:48
ScalarInteractionFieldMaster::collectFull
void collectFull()
Definition: InteractionFieldMaster.cpp:119
WRITE_TYPE_RAW_WITH_POS_ID
@ WRITE_TYPE_RAW_WITH_POS_ID
Definition: field_const.h:25
triplet.h
comm.h
ScalarInteractionFieldMaster
Class for master part of a scalar field which is defined on all particles.
Definition: InteractionFieldMaster.h:38
ScalarInteractionFieldMaster::collectMax
void collectMax()
ScalarInteractionFieldMaster::DataWithID
std::pair< esys::lsm::triplet< int, int, Vec3 >, double > DataWithID
Definition: InteractionFieldMaster.h:41
esys::lsm::bpu::iter
boost::python::object iter(const boost::python::object &pyOb)
Definition: Util.h:25
ScalarInteractionFieldMaster::collectFullWithPosID
void collectFullWithPosID()
Definition: InteractionFieldMaster.cpp:200
ScalarInteractionFieldMaster::writeAsRawWithID
virtual void writeAsRawWithID()
Definition: InteractionFieldMaster.cpp:347
TML_Comm
abstract base class for communicator
Definition: comm.h:47
ScalarInteractionFieldMaster::collectFullWithID
void collectFullWithID()
Definition: InteractionFieldMaster.cpp:167
FieldMaster.h
TML_Comm::broadcast
void broadcast(T)
Definition: comm_coll.hpp:23
ScalarInteractionFieldMaster::writeAsSUM
virtual void writeAsSUM()
Definition: InteractionFieldMaster.cpp:460
COLL_TYPE_FULL_WITH_POS_ID
@ COLL_TYPE_FULL_WITH_POS_ID
Definition: field_const.h:36
TML_Comm::broadcast_cont
void broadcast_cont(const T &)
Definition: comm_coll.hpp:46
ScalarInteractionFieldMaster::m_data_with_id
vector< DataWithID > m_data_with_id
Definition: InteractionFieldMaster.h:46
ScalarInteractionFieldMaster::ScalarInteractionFieldMaster
ScalarInteractionFieldMaster(TML_Comm *, const string &, const string &, const string &, const string &, const string &, int, int, int, bool)
Definition: InteractionFieldMaster.cpp:49
TML_Comm::gather
void gather(multimap< int, T > &)
Definition: comm_coll.hpp:273
console
Console console
Definition: console.cpp:25
ScalarInteractionFieldMaster::writeAsMAX
virtual void writeAsMAX()
Definition: InteractionFieldMaster.cpp:489
ScalarInteractionFieldMaster::m_data2
vector< IVecData2 > m_data2
Definition: InteractionFieldMaster.h:45
AFieldMaster::m_comm
TML_Comm * m_comm
Definition: FieldMaster.h:45
AFieldMaster::m_id
int m_id
Definition: FieldMaster.h:49