escript::MPIDataReducer Class Reference

`#include <MPIDataReducer.h>`

Inheritance diagram for escript::MPIDataReducer:

## Public Member Functions

| MPIDataReducer (MPI_Op op)
| ~MPIDataReducer ()
void | setDomain (escript::Domain_ptr d)
bool | valueCompatible (boost::python::object v)
bool | reduceLocalValue (boost::python::object v, std::string &errstring)
void | reset ()
bool | checkRemoteCompatibility (JMPI &mpi_info, std::string &errstring)
void | getCompatibilityInfo (std::vector< unsigned > &params)
bool | reduceRemoteValues (MPI_Comm &com)
std::string | description ()
bool | recvFrom (int localid, int source, JMPI &mpiinfo)
bool | sendTo (int localid, int target, JMPI &mpiinfo)
virtual boost::python::object | getPyObj ()
bool | groupSend (MPI_Comm &com, bool imsending)
bool | canClash ()
bool | groupReduce (MPI_Comm &com, char mystate)
void | newRunJobs ()
void | copyValueFrom (boost::shared_ptr< AbstractReducer > &src)
Public Member Functions inherited from escript::AbstractReducer
virtual | ~AbstractReducer ()
bool | hasValue ()
virtual double | getDouble ()
virtual void | clear ()

## Private Attributes

escript::Data | value
escript::const_Domain_ptr | dom
MPI_Op | reduceop
bool | had_an_export_this_round

## Additional Inherited Members

Protected Attributes inherited from escript::AbstractReducer
bool | valueadded
bool | had_an_export_this_round
Static Protected Attributes inherited from escript::AbstractReducer
static const int | PARAMTAG =120567

## Constructor & Destructor Documentation

## MPIDataReducer()

escript::MPIDataReducer::MPIDataReducer | ( | MPI_Op | op | ) |

References MPI_OP_NULL, MPI_SUM, and escript::AbstractReducer::valueadded.

## ~MPIDataReducer()

escript::MPIDataReducer::~MPIDataReducer | ( |  | ) |

inline

## Member Function Documentation

## canClash()

bool escript::MPIDataReducer::canClash | ( |  | ) |

virtual

Reimplemented from escript::AbstractReducer.

References MPI_OP_NULL, and reduceop.

## checkRemoteCompatibility()

bool escript::MPIDataReducer::checkRemoteCompatibility | ( | JMPI & | mpi_info,
|  | std::string & | errstring
| ) |  |

virtual

Implements escript::AbstractReducer.

References getCompatibilityInfo().

## copyValueFrom()

void escript::MPIDataReducer::copyValueFrom | ( | boost::shared_ptr< AbstractReducer > & | src | ) |

virtual

Implements escript::AbstractReducer.

References escript::Data::copy(), escript::Data::isEmpty(), value, and escript::AbstractReducer::valueadded.

## description()

std::string escript::MPIDataReducer::description | ( |  | ) |

virtual

Implements escript::AbstractReducer.

References MPI_OP_NULL, and reduceop.

## getCompatibilityInfo()

void escript::MPIDataReducer::getCompatibilityInfo | ( | std::vector< unsigned > & | params | ) |

References escript::Data::getDataPointShape(), escript::Data::getFunctionSpace(), escript::Data::getNumberOfTaggedValues(), escript::FunctionSpace::getTypeCode(), escript::Data::isComplex(), escript::Data::isConstant(), escript::Data::isExpanded(), escript::Data::isTagged(), value, and escript::AbstractReducer::valueadded.

Referenced by checkRemoteCompatibility(), groupSend(), and sendTo().

## getPyObj()

boost::python::object escript::MPIDataReducer::getPyObj | ( |  | ) |

virtual

Implements escript::AbstractReducer.

References value.

## groupReduce()

bool escript::MPIDataReducer::groupReduce | ( | MPI_Comm & | com,
|  | char | mystate
| ) |  |

## groupSend()

bool escript::MPIDataReducer::groupSend | ( | MPI_Comm & | com,
|  | bool | imsending
| ) |  |

References escript::Data::complicate(), dom, getCompatibilityInfo(), escript::Data::getDataRO(), escript::Data::getExpandedVectorReference(), escript::Data::getLength(), escript::Data::isComplex(), escript::Data::isLazy(), MPI_DOUBLE, escript::DataTypes::noValues(), escript::Data::resolve(), escript::Data::setTaggedValueFromCPP(), escript::Data::tag(), value, and escript::AbstractReducer::valueadded.

## newRunJobs()

void escript::MPIDataReducer::newRunJobs | ( |  | ) |

virtual

Reimplemented from escript::AbstractReducer.

References had_an_export_this_round.

## recvFrom()

bool escript::MPIDataReducer::recvFrom | ( | int | localid,
|  | int | source,
|  | JMPI & | mpiinfo
| ) |  |

virtual

Implements escript::AbstractReducer.

References dom, escript::DataTypes::noValues(), escript::AbstractReducer::PARAMTAG, escript::Data::setTaggedValueFromCPP(), escript::Data::tag(), and value.

## reduceLocalValue()

bool escript::MPIDataReducer::reduceLocalValue | ( | boost::python::object | v,
|  | std::string & | errstring
| ) |  |

virtual

Implements escript::AbstractReducer.

References dom, escript::Data::expand(), escript::Data::getDomain(), escript::Data::getFunctionSpace(), had_an_export_this_round, escript::Data::isEmpty(), MPI_OP_NULL, reduceop, reset(), value, and escript::AbstractReducer::valueadded.

## reduceRemoteValues()

bool escript::MPIDataReducer::reduceRemoteValues | ( | MPI_Comm & | com | ) |

virtual

Implements escript::AbstractReducer.

References escript::Data::getDataPointShape(), escript::Data::getExpandedVectorReference(), escript::Data::getFunctionSpace(), MPI_DOUBLE, MPI_OP_NULL, reduceop, reset(), escript::DataTypes::DataVectorAlt< T >::size(), and value.

## reset()

void escript::MPIDataReducer::reset | ( |  | ) |

virtual

Implements escript::AbstractReducer.

References value, and escript::AbstractReducer::valueadded.

Referenced by reduceLocalValue(), and reduceRemoteValues().

## sendTo()

bool escript::MPIDataReducer::sendTo | ( | int | localid,
|  | int | target,
|  | JMPI & | mpiinfo
| ) |  |

virtual

Implements escript::AbstractReducer.

References getCompatibilityInfo(), escript::Data::getDataRO(), escript::Data::getLength(), escript::Data::isComplex(), escript::Data::isLazy(), MPI_DOUBLE, escript::AbstractReducer::PARAMTAG, escript::Data::resolve(), value, and escript::AbstractReducer::valueadded.

## setDomain()

void escript::MPIDataReducer::setDomain | ( | escript::Domain_ptr | d | ) |

virtual

Reimplemented from escript::AbstractReducer.

References dom.

## valueCompatible()

bool escript::MPIDataReducer::valueCompatible | ( | boost::python::object | v | ) |

virtual

Implements escript::AbstractReducer.

References dom, and escript::Data::getDomain().

## Member Data Documentation

## dom

escript::const_Domain_ptr escript::MPIDataReducer::dom

private

Referenced by groupSend(), recvFrom(), reduceLocalValue(), setDomain(), and valueCompatible().

## had_an_export_this_round

bool escript::MPIDataReducer::had_an_export_this_round

private

Referenced by newRunJobs(), and reduceLocalValue().

## reduceop

MPI_Op escript::MPIDataReducer::reduceop

private

Referenced by canClash(), description(), reduceLocalValue(), and reduceRemoteValues().

## value

escript::Data escript::MPIDataReducer::value

private

Referenced by copyValueFrom(), getCompatibilityInfo(), getPyObj(), groupSend(), recvFrom(), reduceLocalValue(), reduceRemoteValues(), reset(), and sendTo().

The documentation for this class was generated from the following files:

- MPIDataReducer.h
- MPIDataReducer.cpp