ESyS-Particle  2.3.4
VectorWallFieldSlave.hpp
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 // --- project includes ---
14 #include "Foundation/console.h"
15 
23 template <typename WallType>
24 VectorWallFieldSlave<WallType>::VectorWallFieldSlave(TML_Comm* comm,typename WallType::VectorFieldFunction rdf)
25  : AWallFieldSlave(comm)
26 {
27  console.XDebug() << "VectorWallFieldSlave::VectorWallFieldSlave()\n";
28  m_rdf=rdf;
29 }
30 
34 template <typename WallType>
36 {
37  console.XDebug() << "VectorWallFieldSlave::sendData()\n";
38  vector<pair<int,Vec3> > data;
39  // get data from wall
40  int cnt=0;
41  for(typename vector<WallType*>::const_iterator iter=m_wall.begin();
42  iter!=m_wall.end();
43  iter++){
44  data.push_back(make_pair(cnt,((*iter)->*m_rdf)()));
45  cnt++;
46  }
47  // send it to master
48  m_comm->send_gather(data,0);
49  console.XDebug() << " end VectorWallFieldSlave::sendData()\n";
50 }
VectorWallFieldSlave::m_rdf
WallType::VectorFieldFunction m_rdf
Definition: VectorWallFieldSlave.h:31
console.h
Console::XDebug
Console & XDebug()
set verbose level of next message to "xdg"
VectorWallFieldSlave::VectorWallFieldSlave
VectorWallFieldSlave(TML_Comm *, typename WallType::VectorFieldFunction)
Definition: VectorWallFieldSlave.hpp:24
esys::lsm::bpu::iter
boost::python::object iter(const boost::python::object &pyOb)
Definition: Util.h:25
TML_Comm
abstract base class for communicator
Definition: comm.h:47
VectorWallFieldSlave::sendData
virtual void sendData()
Definition: VectorWallFieldSlave.hpp:35
AWallFieldSlave
Abstract base class for slave part of field defined on a Wall.
Definition: WallFieldSlave.h:34
console
Console console
Definition: console.cpp:25