Go to the documentation of this file.
17 #ifndef __ESCRIPT_ABSTRACTREDUCER_H__
18 #define __ESCRIPT_ABSTRACTREDUCER_H__
20 #include <escript/Data.h>
21 #include <escript/EsysMPI.h>
23 #include <boost/shared_ptr.hpp>
29 namespace reducerstatus
33 const unsigned char NONE=0;
35 const unsigned char OLD=2;
37 const unsigned char NEW=4;
38 const unsigned char ERROR=
'!';
51 virtual bool reduceLocalValue(boost::python::object v, std::string& errstring)=0;
53 virtual void reset()=0;
70 virtual bool groupSend(
MPI_Comm& com,
bool imsending)=0;
73 virtual bool groupReduce(
MPI_Comm& com,
char mystate)=0;
94 virtual bool recvFrom(
int localid,
int source,
JMPI& mpiinfo)=0;
98 virtual bool sendTo(
int localid,
int target,
JMPI& mpiinfo)=0;
102 virtual boost::python::object
getPyObj()=0;
107 virtual void clear();
109 virtual void copyValueFrom(boost::shared_ptr<AbstractReducer>& src)=0;
118 typedef boost::shared_ptr<AbstractReducer>
Reducer_ptr;
122 #endif // __ESCRIPT_ABSTRACTREDUCER_H__
Definition: AbstractReducer.h:54
virtual bool sendTo(int localid, int target, JMPI &mpiinfo)=0
const unsigned char NONE
Definition: AbstractReducer.h:58
virtual void copyValueFrom(boost::shared_ptr< AbstractReducer > &src)=0
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:53
virtual bool reduceRemoteValues(MPI_Comm &comm)=0
const unsigned char INTERESTED
Definition: AbstractReducer.h:59
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition: AbstractReducer.h:130
virtual bool checkRemoteCompatibility(JMPI &mpi_info, std::string &errstring)=0
virtual double getDouble()
Definition: AbstractReducer.cpp:42
const unsigned char OLD
Definition: AbstractReducer.h:60
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
bool had_an_export_this_round
Definition: AbstractReducer.h:125
const unsigned char OLDINTERESTED
Definition: AbstractReducer.h:61
virtual ~AbstractReducer()
Definition: AbstractReducer.h:57
virtual bool reduceLocalValue(boost::python::object v, std::string &errstring)=0
static const int PARAMTAG
Definition: AbstractReducer.h:126
virtual boost::python::object getPyObj()=0
virtual void setDomain(Domain_ptr dom)
Definition: AbstractReducer.h:76
virtual bool valueCompatible(boost::python::object v)=0
const unsigned char ERROR
Definition: AbstractReducer.h:63
Definition: AbstractContinuousDomain.cpp:23
const unsigned char NEW
Definition: AbstractReducer.h:62
int MPI_Comm
Definition: EsysMPI.h:41
virtual std::string description()=0
virtual bool recvFrom(int localid, int source, JMPI &mpiinfo)=0
virtual void clear()
Definition: AbstractReducer.cpp:47
bool valueadded
Definition: AbstractReducer.h:124
virtual bool canClash()
Definition: AbstractReducer.cpp:57
virtual void newRunJobs()
Definition: AbstractReducer.cpp:52
bool hasValue()
Definition: AbstractReducer.cpp:37