Go to the documentation of this file.
16 #ifndef __ESCRIPT_ABSTRACTREDUCER_H__
17 #define __ESCRIPT_ABSTRACTREDUCER_H__
19 #include <escript/Data.h>
20 #include <escript/EsysMPI.h>
22 #include <boost/shared_ptr.hpp>
28 namespace reducerstatus
32 const unsigned char NONE=0;
34 const unsigned char OLD=2;
36 const unsigned char NEW=4;
37 const unsigned char ERROR=
'!';
50 virtual bool reduceLocalValue(boost::python::object v, std::string& errstring)=0;
69 virtual bool groupSend(
MPI_Comm& com,
bool imsending)=0;
72 virtual bool groupReduce(
MPI_Comm& com,
char mystate)=0;
93 virtual bool recvFrom(
int localid,
int source,
JMPI& mpiinfo)=0;
97 virtual bool sendTo(
int localid,
int target,
JMPI& mpiinfo)=0;
101 virtual boost::python::object
getPyObj()=0;
106 virtual void clear();
108 virtual void copyValueFrom(boost::shared_ptr<AbstractReducer>& src)=0;
117 typedef boost::shared_ptr<AbstractReducer>
Reducer_ptr;
121 #endif // __ESCRIPT_ABSTRACTREDUCER_H__
Definition: AbstractReducer.h:52
virtual bool sendTo(int localid, int target, JMPI &mpiinfo)=0
const unsigned char NONE
Definition: AbstractReducer.h:55
virtual void copyValueFrom(boost::shared_ptr< AbstractReducer > &src)=0
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:47
virtual bool reduceRemoteValues(MPI_Comm &comm)=0
const unsigned char INTERESTED
Definition: AbstractReducer.h:56
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition: AbstractReducer.h:128
virtual bool checkRemoteCompatibility(JMPI &mpi_info, std::string &errstring)=0
virtual double getDouble()
Definition: AbstractReducer.cpp:40
const unsigned char OLD
Definition: AbstractReducer.h:57
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
bool had_an_export_this_round
Definition: AbstractReducer.h:123
const unsigned char OLDINTERESTED
Definition: AbstractReducer.h:58
virtual ~AbstractReducer()
Definition: AbstractReducer.h:55
virtual bool reduceLocalValue(boost::python::object v, std::string &errstring)=0
static const int PARAMTAG
Definition: AbstractReducer.h:124
virtual boost::python::object getPyObj()=0
virtual void setDomain(Domain_ptr dom)
Definition: AbstractReducer.h:74
virtual bool valueCompatible(boost::python::object v)=0
const unsigned char ERROR
Definition: AbstractReducer.h:60
Definition: AbstractContinuousDomain.cpp:22
const unsigned char NEW
Definition: AbstractReducer.h:59
int MPI_Comm
Definition: EsysMPI.h:40
virtual std::string description()=0
virtual bool recvFrom(int localid, int source, JMPI &mpiinfo)=0
virtual void clear()
Definition: AbstractReducer.cpp:45
bool valueadded
Definition: AbstractReducer.h:122
virtual bool canClash()
Definition: AbstractReducer.cpp:55
virtual void newRunJobs()
Definition: AbstractReducer.cpp:50
bool hasValue()
Definition: AbstractReducer.cpp:35