Go to the documentation of this file.
17 #ifndef __ESCRIPT_MPIDATAREDUCER_H__
18 #define __ESCRIPT_MPIDATAREDUCER_H__
27 class MPIDataReducer :
public AbstractReducer
57 bool sendTo(
int localid,
int target,
JMPI& mpiinfo);
58 virtual boost::python::object
getPyObj();
82 #endif // __ESCRIPT_MPIDATAREDUCER_H__
bool sendTo(int localid, int target, JMPI &mpiinfo)
Definition: MPIDataReducer.cpp:348
int MPI_Status
Definition: EsysMPI.h:45
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1160
Reducer_ptr makeDataReducer(std::string type)
Definition: MPIDataReducer.cpp:47
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:79
int MPI_Op
Definition: EsysMPI.h:44
void newRunJobs()
Definition: MPIDataReducer.cpp:80
bool groupReduce(MPI_Comm &com, char mystate)
Definition: MPIDataReducer.cpp:568
void tag()
If possible convert this Data to DataTagged. This will only allow Constant data to be converted to ta...
Definition: Data.cpp:1204
DataTypes::RealVectorType::size_type getLength() const
Return the number of doubles stored for this Data.
Definition: Data.cpp:1367
const_Domain_ptr getDomain() const
Return the domain.
Definition: Data.h:487
bool had_an_export_this_round
Definition: MPIDataReducer.h:103
const DataTypes::ShapeType & getDataPointShape() const
Return a reference to the data point shape.
Definition: Data.h:705
size_t getNumberOfTaggedValues() const
For tagged Data returns the number of tags with values. For non-tagged data will return 0 (even Data ...
Definition: Data.cpp:5859
void setTaggedValueFromCPP(int tagKey, const DataTypes::ShapeType &pointshape, const DataTypes::RealVectorType &value, int dataOffset=0)
Assign the given value to the tag. Implicitly converts this object to type DataTagged if it is consta...
Definition: Data.cpp:3634
bool isTagged() const
Return true if this Data is tagged.
Definition: Data.cpp:1125
bool reduceLocalValue(boost::python::object v, std::string &errstring)
Definition: MPIDataReducer.cpp:119
#define MPI_SUM
Definition: EsysMPI.h:52
void setDomain(escript::Domain_ptr d)
Definition: MPIDataReducer.cpp:85
bool isConstant() const
Return true if this Data is constant.
Definition: Data.cpp:1139
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:55
#define MPI_OP_NULL
Definition: EsysMPI.h:56
escript::const_Domain_ptr dom
Definition: MPIDataReducer.h:101
Definition: FunctionSpace.h:49
const FunctionSpace & getFunctionSpace() const
Return the function space.
Definition: Data.h:463
void complicate()
Definition: Data.cpp:6057
virtual boost::python::object getPyObj()
Definition: MPIDataReducer.cpp:414
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition: AbstractReducer.h:132
void getCompatibilityInfo(std::vector< unsigned > ¶ms)
Definition: MPIDataReducer.cpp:257
Data represents a collection of datapoints.
Definition: Data.h:64
void resolve()
If this data is lazy, then convert it to ready data. What type of ready data depends on the expressio...
Definition: Data.cpp:1230
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:71
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
Definition: SplitWorldException.h:42
bool reduceRemoteValues(MPI_Comm &com)
Definition: MPIDataReducer.cpp:227
int noValues(const ShapeType &shape)
Calculate the number of values in a datapoint with the given shape.
Definition: DataTypes.cpp:91
bool groupSend(MPI_Comm &com, bool imsending)
Definition: MPIDataReducer.cpp:423
const DataTypes::real_t * getDataRO(DataTypes::real_t dummy=0) const
Return a pointer to the beginning of the underlying data.
Definition: Data.h:2016
escript::Data value
Definition: MPIDataReducer.h:100
bool isEmpty() const
Definition: Data.cpp:1132
std::string description()
Definition: MPIDataReducer.cpp:90
static const int PARAMTAG
Definition: AbstractReducer.h:128
bool canClash()
Definition: MPIDataReducer.cpp:592
bool valueCompatible(boost::python::object v)
Definition: MPIDataReducer.cpp:100
void copyValueFrom(boost::shared_ptr< AbstractReducer > &src)
Definition: MPIDataReducer.cpp:573
#define MPI_DOUBLE
Definition: EsysMPI.h:47
MPIDataReducer(MPI_Op op)
Definition: MPIDataReducer.cpp:66
Definition: AbstractContinuousDomain.cpp:23
size_type size() const
Return the number of elements in this DataVectorAlt.
Definition: DataVectorAlt.h:243
bool isExpanded() const
Return true if this Data is expanded.
Definition: Data.cpp:1111
int getTypeCode() const
Returns the function space type code.
Definition: FunctionSpace.cpp:95
bool isLazy() const
Return true if this Data is lazy.
Definition: Data.cpp:1146
int MPI_Comm
Definition: EsysMPI.h:42
~MPIDataReducer()
Definition: MPIDataReducer.h:59
bool checkRemoteCompatibility(JMPI &mpi_info, std::string &errstring)
Definition: MPIDataReducer.cpp:180
void copy(const Data &other)
Make this object a deep copy of "other".
Definition: Data.cpp:777
bool recvFrom(int localid, int source, JMPI &mpiinfo)
Definition: MPIDataReducer.cpp:299
DataTypes::RealVectorType & getExpandedVectorReference(DataTypes::real_t dummy=0)
Ensures that the Data is expanded and returns its underlying vector Does not check for exclusive writ...
Definition: Data.cpp:5841
std::complex< real_t > cplx_t
complex data type
Definition: DataTypes.h:82
MPI_Op reduceop
Definition: MPIDataReducer.h:102
void expand()
Whatever the current Data type make this into a DataExpanded.
Definition: Data.cpp:1180
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:58
bool valueadded
Definition: AbstractReducer.h:126
Definition: MPIDataReducer.h:41
void reset()
Definition: MPIDataReducer.cpp:174