16 #ifndef __ESCRIPT_REDUCER_H__ 17 #define __ESCRIPT_REDUCER_H__ 19 #include "esysUtils/Esys_MPI.h" 20 #include "escript/Data.h" 21 #include <boost/shared_ptr.hpp> 27 namespace reducerstatus
31 const unsigned char NONE=0;
33 const unsigned char OLD=2;
35 const unsigned char NEW=4;
47 virtual bool valueCompatible(boost::python::object v)=0;
49 virtual bool reduceLocalValue(boost::python::object v, std::string& errstring)=0;
51 virtual void reset()=0;
53 virtual std::string description()=0;
60 virtual bool checkRemoteCompatibility(
esysUtils::JMPI& mpi_info, std::string& errstring)=0;
68 virtual bool groupSend(
MPI_Comm& com,
bool imsending)=0;
71 virtual bool groupReduce(
MPI_Comm& com,
char mystate)=0;
80 virtual bool reduceRemoteValues(
MPI_Comm& comm)=0;
88 virtual bool canClash();
98 virtual double getDouble();
100 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_REDUCER_H__ const unsigned char OLD
Definition: AbstractReducer.h:33
const unsigned char NEW
Definition: AbstractReducer.h:35
virtual void setDomain(Domain_ptr dom)
Definition: AbstractReducer.h:62
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:36
Definition: AbstractContinuousDomain.cpp:24
Definition: AbstractReducer.h:40
const unsigned char ERROR
Definition: AbstractReducer.h:36
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition: AbstractReducer.h:117
int MPI_Comm
Definition: Esys_MPI.h:38
const unsigned char NONE
Definition: AbstractReducer.h:31
static const int PARAMTAG
Definition: AbstractReducer.h:113
bool had_an_export_this_round
Definition: AbstractReducer.h:112
int Esys_MPI_rank
Definition: Esys_MPI.h:59
bool valueadded
Definition: AbstractReducer.h:111
const unsigned char OLDINTERESTED
Definition: AbstractReducer.h:34
boost::shared_ptr< JMPI_ > JMPI
Definition: Esys_MPI.h:79
virtual ~AbstractReducer()
Definition: AbstractReducer.h:43
const unsigned char INTERESTED
Definition: AbstractReducer.h:32