ESyS-Particle  4.0.1
VectorEdge2DFieldSlave.h
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 __VECTOR_EDGE2D_FIELD_SLAVE_H
00014 #define __VECTOR_EDGE2D_FIELD_SLAVE_H
00015 
00016 // -- project includes --
00017 #include "Fields/FieldSlave.h"
00018 #include "Model/Mesh2D.h"
00019 #include "tml/comm/comm.h"
00020 
00021 // == STL includes --
00022 #include <map>
00023 using std::map;
00024 
00034 class VectorEdge2DFieldSlave : public AFieldSlave
00035 {
00036  private:
00037   map<int,Vec3>  m_data;
00038 
00039  protected: 
00040   Mesh2D *m_mesh;
00041   Edge2D::VectorFieldFunction m_rdf;
00042   virtual void SendDataFull();
00043   virtual void SendDataFullDX();
00044 
00045  public:
00046   VectorEdge2DFieldSlave(TML_Comm*,Mesh2D*,Edge2D::VectorFieldFunction);
00047   virtual ~VectorEdge2DFieldSlave()
00048   {
00049   }
00050   
00051   virtual void sendData();
00052 };
00053 
00054 #endif //__VECTOR_EDGE2D_FIELD_SLAVE_H