17#ifndef __ESCRIPT_ABSTRACTREDUCER_H__
18#define __ESCRIPT_ABSTRACTREDUCER_H__
21#include <escript/Data.h>
22#include <escript/EsysMPI.h>
24#include <boost/shared_ptr.hpp>
30namespace reducerstatus
36const unsigned char OLD=2;
38const unsigned char NEW=4;
71 virtual bool groupSend(
MPI_Comm& com,
bool imsending)=0;
74 virtual bool groupReduce(
MPI_Comm& com,
char mystate)=0;
99 virtual bool sendTo(
int localid,
int target,
JMPI& mpiinfo)=0;
108 virtual void clear();
int MPI_Comm
Definition EsysMPI.h:44
Definition AbstractReducer.h:44
bool had_an_export_this_round
Definition AbstractReducer.h:114
virtual void clear()
Definition AbstractReducer.cpp:34
virtual bool reduceLocalValue(boost::python::object v, std::string &errstring)=0
virtual bool checkRemoteCompatibility(JMPI &mpi_info, std::string &errstring)=0
virtual std::string description()=0
virtual ~AbstractReducer()
Definition AbstractReducer.h:46
virtual void newRunJobs()
Definition AbstractReducer.cpp:39
virtual double getDouble()
Definition AbstractReducer.cpp:29
virtual void setDomain(Domain_ptr dom)
Definition AbstractReducer.h:65
virtual void copyValueFrom(boost::shared_ptr< AbstractReducer > &src)=0
virtual bool sendTo(int localid, int target, JMPI &mpiinfo)=0
virtual bool valueCompatible(boost::python::object v)=0
virtual bool recvFrom(int localid, int source, JMPI &mpiinfo)=0
static const int PARAMTAG
Definition AbstractReducer.h:115
bool hasValue()
Definition AbstractReducer.cpp:24
bool valueadded
Definition AbstractReducer.h:113
virtual bool reduceRemoteValues(MPI_Comm &comm)=0
virtual bool canClash()
Definition AbstractReducer.cpp:44
virtual boost::python::object getPyObj()=0
const unsigned char INTERESTED
Definition AbstractReducer.h:35
const unsigned char OLDINTERESTED
Definition AbstractReducer.h:37
const unsigned char NEW
Definition AbstractReducer.h:38
const unsigned char OLD
Definition AbstractReducer.h:36
const unsigned char ERROR
Definition AbstractReducer.h:39
const unsigned char NONE
Definition AbstractReducer.h:34
Definition AbstractContinuousDomain.cpp:23
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition AbstractReducer.h:119
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition AbstractDomain.h:43
boost::shared_ptr< JMPI_ > JMPI
Definition EsysMPI.h:76