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;
48 virtual bool valueCompatible(boost::python::object v)=0;
50 virtual bool reduceLocalValue(boost::python::object v, std::string& errstring)=0;
52 virtual void reset()=0;
54 virtual std::string description()=0;
61 virtual bool checkRemoteCompatibility(
JMPI& mpi_info, std::string& errstring)=0;
69 virtual bool groupSend(
MPI_Comm& com,
bool imsending)=0;
72 virtual bool groupReduce(
MPI_Comm& com,
char mystate)=0;
81 virtual bool reduceRemoteValues(
MPI_Comm& comm)=0;
89 virtual bool canClash();
93 virtual bool recvFrom(
int localid,
int source,
JMPI& mpiinfo)=0;
97 virtual bool sendTo(
int localid,
int target,
JMPI& mpiinfo)=0;
99 virtual double getDouble();
101 virtual boost::python::object getPyObj()=0;
104 virtual void newRunJobs();
106 virtual void clear();
108 virtual void copyValueFrom(boost::shared_ptr<AbstractReducer>& src)=0;
121 #endif // __ESCRIPT_ABSTRACTREDUCER_H__ const unsigned char OLD
Definition: AbstractReducer.h:34
const unsigned char NEW
Definition: AbstractReducer.h:36
virtual void setDomain(Domain_ptr dom)
Definition: AbstractReducer.h:63
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:36
Definition: AbstractContinuousDomain.cpp:22
Definition: AbstractReducer.h:41
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
const unsigned char ERROR
Definition: AbstractReducer.h:37
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition: AbstractReducer.h:117
const unsigned char NONE
Definition: AbstractReducer.h:32
int MPI_Comm
Definition: EsysMPI.h:41
bool had_an_export_this_round
Definition: AbstractReducer.h:112
bool valueadded
Definition: AbstractReducer.h:111
const unsigned char OLDINTERESTED
Definition: AbstractReducer.h:35
static const int PARAMTAG
Definition: AbstractReducer.h:113
virtual ~AbstractReducer()
Definition: AbstractReducer.h:44
const unsigned char INTERESTED
Definition: AbstractReducer.h:33