MAIA bb96820c
Multiphysics at AIA
|
Functions | |
template<typename U > | |
void | exchangeBuffer (const MInt noExDomains, const MInt *const exDomainId, const MInt *const recvSize, const MInt *const sendSize, const MPI_Comm comm, U *const receiveBuffer, const U *const sendBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
MInt | exchangeBufferAllToAll (const MInt sendSize, const MPI_Comm comm, U *const receiveBuffer, const U *const sendBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeBuffer (const std::vector< MInt > &exDomains, const std::vector< std::vector< MInt > > &noValuesToRecv, const std::vector< std::vector< MInt > > &noValuesToSend, const MPI_Comm comm, const U *const sendBuffer, U *const receiveBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeBuffer (const std::vector< MInt > &exDomains, std::vector< MInt > &noValuesToRecv, std::vector< MInt > &noValuesToSend, const MPI_Comm comm, const U *const sendBuffer, U *const receiveBuffer, const MInt noDat=1) |
Generic exchange of data (std::vector version) More... | |
template<typename U > | |
void | exchangeBuffer (const std::vector< MInt > &exDomains, const MInt *const noValuesToSend, const MInt *const noValuesToRecv, const MPI_Comm comm, const U *const sendBuffer, U *const receiveBuffer, const MInt noDat=1) |
Generic exchange of data (std::vector version) More... | |
template<typename U > | |
void | exchangeBuffer (const std::vector< MInt > &exDomains, std::vector< MInt > &noValues, const MPI_Comm comm, const U *const sendBuffer, U *const receiveBuffer, const MInt noDat=1) |
Generic exchange of data (std::vector version) More... | |
template<typename U > | |
void | exchangeValues (const std::vector< MInt > &exDomains, MInt noValues, const MPI_Comm comm, const U *const sendBuffer, U *const receiveBuffer, const MInt noDat=1) |
Generic exchange of data (std::vector version) More... | |
template<typename U > | |
void | exchangeData (const MInt noNghbrDomains, const MInt *const nghbrDomains, const MInt *const noHaloCells, const MInt **const, const MInt *const noWindowCells, const MInt **const windowCells, const MPI_Comm comm, const U *const data, U *const haloBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeData (const std::vector< MInt > &nghbrDomains, const MInt *const noHaloCells, MInt **const haloCells, MInt *const noWindowCells, MInt **const windowCells, const MPI_Comm comm, const U *const data, U *const haloBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeData (const MInt noNghbrDomains, const MInt *const nghbrDomains, const MInt *const noHaloCells, const MInt **const haloCells, const MInt *const noWindowCells, const MInt **const windowCells, const MPI_Comm comm, U *const data, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeData (const std::vector< MInt > &nghbrDomains, const MInt *const noHaloCells, MInt **const haloCells, MInt *const noWindowCells, MInt **const windowCells, const MPI_Comm comm, U *const data, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | reverseExchangeData (const MInt noNghbrDomains, const MInt *const nghbrDomains, const MInt *const noHaloCells, const MInt **const haloCells, const MInt *const noWindowCells, const MInt **const, const MPI_Comm comm, const U *const data, U *const windowBuffer, const MInt noDat=1) |
Generic reverse exchange of data. More... | |
template<typename U > | |
void | exchangeData (const MInt noNghbrDomains, const MInt *const nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, U *const data, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeData (const MInt noNghbrDomains, const MInt *const nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, U *const data, U *const haloBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeData (const std::vector< MInt > &nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, U *const data, const MInt noDat=1) |
Generic exchange of data NOTE: version called in exchangeData from the solvers! More... | |
template<std::size_t N> | |
void | exchangeBitset (const std::vector< MInt > &nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, std::bitset< N > *const data, const MInt noCells, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | exchangeData (const std::vector< MInt > &nghbrDomains, std::vector< std::vector< MInt > > &haloCellVec, std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, U *const data, U *const haloBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
template<typename U > | |
void | reverseExchangeData (const MInt noNghbrDomains, const MInt *const nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, const U *const data, U *const windowBuffer, const MInt noDat=1) |
Generic reverse exchange of data. More... | |
template<typename U > | |
void | reverseExchangeData (const std::vector< MInt > &nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, const U *const data, U *const windowBuffer, const MInt noDat=1) |
Generic reverse exchange of data. More... | |
template<typename U > | |
void | exchangeScattered (const std::vector< MInt > &nghbrDomains, std::vector< MInt > &sendDomainIndices, std::vector< U > &sendData, const MPI_Comm comm, std::vector< MInt > &recvOffsets, std::vector< U > &recvBuffer, const MInt noDat=1) |
Generic exchange of data. More... | |
MUint | getBufferSize (const std::vector< std::vector< MInt > > &exchangeCells) |
Generic exchange of data. More... | |
template<class dataType > | |
void | exchangeData (const dataType *const sendBuffer, const MInt domainId, const MInt noDomains, const MPI_Comm mpiComm, const MInt dataBlockSize, const MInt *const dataSizeSend, const MInt *const dataSizeRecv, dataType *const recvBuffer) |
Communicate variable amounts of data from each domain to all other domains. Data may also reside on the same domain. More... | |
template<class dataType > | |
void | exchangeData (const dataType *const sendBuffer, const MInt domainId, const MInt noNghbrDomains, const MInt *const nghbrDomainIds, const MPI_Comm mpiComm, const MInt dataBlockSize, const MInt *const dataSizeSend, const MInt *const dataSizeRecv, dataType *const recvBuffer) |
Communicate variable amounts of data from each domain to all neighboring domains. More... | |
template<typename DataType > | |
void | assembleDataBuffer (const MInt noCells, const MInt dataBlockSize, const DataType *const data, const MInt *const sortedId, DataType *const buffer) |
Assemble data buffer according to given sorting order. More... | |
template<typename DataType > | |
void | communicateData (const DataType *const data, const MInt noCells, const MInt *const sortedCellId, const MInt noDomains, const MInt domainId, const MPI_Comm mpiComm, const MInt *const noCellsToSendByDomain, const MInt *const noCellsToReceiveByDomain, const MInt dataBlockSize, DataType *const buffer) |
Assemble given data in send buffer and communicate. More... | |
template<std::size_t N> | |
void | communicateBitsetData (const std::bitset< N > *const data, const MInt noCells, const MInt *const sortedCellId, const MInt noDomains, const MInt domainId, const MPI_Comm mpiComm, const MInt *const noCellsToSendByDomain, const MInt *const noCellsToReceiveByDomain, const MInt dataBlockSize, std::bitset< N > *const buffer) |
template<typename DataType > | |
void | communicateGlobalyOrderedData (DataType const *const sendData, const MInt noLocIds, const MInt noGlobalIds, const MInt nRows, const MInt nCols, const MInt noDomains, const MInt domainId, const MPI_Comm mpiComm, const MIntScratchSpace &localToGlobal, const MIntScratchSpace &dataOffsets, ScratchSpace< DataType > &recvData) |
Communicate (optionally) solver-structured data sorted by a global Id. More... | |
template<class T > | |
std::vector< T > | mpiExchangePointToPoint (const T *const sendBuffer, const MInt *const snghbrs, const MInt nosnghbrs, const MInt *const sendcounts, const MInt *const rnghbrs, const MInt nornghbrs, const MPI_Comm &mpi_comm, const MInt domainId, const MInt dataBlockSize, MInt *const recvcounts_=nullptr, MInt *const rdispls_=nullptr) |
template<typename U > | |
void | reverseExchangeAddData (const std::vector< MInt > &nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, U **const data, const MInt noDat=1) |
Generic exchange from halo to window cells, however in this case the value in the halo-cell is added to the values in the windowcell! More... | |
template<typename U > | |
void | reverseExchangeAddData (const std::vector< MInt > &nghbrDomains, const std::vector< std::vector< MInt > > &haloCellVec, const std::vector< std::vector< MInt > > &windowCellVec, const MPI_Comm comm, U *const data, const MInt noDat=1) |
Generic exchange from halo to window cells, however in this case the value in the halo-cell is added to the values in the windowcell, simple pointer version. More... | |
void maia::mpi::assembleDataBuffer | ( | const MInt | noCells, |
const MInt | dataBlockSize, | ||
const DataType *const | data, | ||
const MInt *const | sortedId, | ||
DataType *const | buffer | ||
) |
Definition at line 841 of file mpiexchange.h.
void maia::mpi::communicateBitsetData | ( | const std::bitset< N > *const | data, |
const MInt | noCells, | ||
const MInt *const | sortedCellId, | ||
const MInt | noDomains, | ||
const MInt | domainId, | ||
const MPI_Comm | mpiComm, | ||
const MInt *const | noCellsToSendByDomain, | ||
const MInt *const | noCellsToReceiveByDomain, | ||
const MInt | dataBlockSize, | ||
std::bitset< N > *const | buffer | ||
) |
Definition at line 873 of file mpiexchange.h.
void maia::mpi::communicateData | ( | const DataType *const | data, |
const MInt | noCells, | ||
const MInt *const | sortedCellId, | ||
const MInt | noDomains, | ||
const MInt | domainId, | ||
const MPI_Comm | mpiComm, | ||
const MInt *const | noCellsToSendByDomain, | ||
const MInt *const | noCellsToReceiveByDomain, | ||
const MInt | dataBlockSize, | ||
DataType *const | buffer | ||
) |
Definition at line 858 of file mpiexchange.h.
void maia::mpi::communicateGlobalyOrderedData | ( | DataType const *const | sendData, |
const MInt | noLocIds, | ||
const MInt | noGlobalIds, | ||
const MInt | nRows, | ||
const MInt | nCols, | ||
const MInt | noDomains, | ||
const MInt | domainId, | ||
const MPI_Comm | mpiComm, | ||
const MIntScratchSpace & | localToGlobal, | ||
const MIntScratchSpace & | dataOffsets, | ||
ScratchSpace< DataType > & | recvData | ||
) |
[in] | sendData | Pointer to globally and locally unsorted (optionally solverstructured) data |
[in] | noLocIds | Number of local dataPoints |
[in] | noGlobalIds | Number of global dataPoints |
[in] | nRows | Number of rows in solverstructured send data |
[in] | nCols | Number of columns in solverstructured send data |
[in] | localToGlobal | Mapping of localIds to globalIds |
[in] | dataOffsets | The offsets of the global data points after communication |
[in] | recvData | Globally ordered (solver-structured) data array |
Definition at line 919 of file mpiexchange.h.
void maia::mpi::exchangeBitset | ( | const std::vector< MInt > & | nghbrDomains, |
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
std::bitset< N > *const | data, | ||
const MInt | noCells, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 516 of file mpiexchange.h.
|
inline |
U | Datatype to be exchanged |
noExDomains | Number of exchanging domains |
exDomainId | Rank of the exchanging domains |
recvSize | Number of values to be received from each exchange partner. |
sendSize | Number of values to be send to each exchange partner. |
comm | MPI Communicator to be used. |
receiveBuffer | Buffer used to receive data. |
sendBuffer | Buffer used to send data. |
noDat | Number of data elements to be send. |
Definition at line 44 of file mpiexchange.h.
|
inline |
U |
exDomains | Domains with which to exchange Data. |
noValuesToSend | Number of values to send. |
noValuesToRecv | Number of values to recv. |
comm | MPI communicator to be used. |
sendBuffer | Buffer used to send data. |
receiveBuffer | Buffer used to receive data. |
noDat | Number of values per data entry. |
Definition at line 212 of file mpiexchange.h.
|
inline |
U |
exDomains | Domains with which to exchange Data. |
noValuesToSend | Number of values to send (in this type because of m_haloCells) |
noValuesToRecv | Number of values to recv (in this type because of m_windowCells) |
comm | MPI communicator to be used. |
sendBuffer | Buffer used to send data. |
receiveBuffer | Buffer used to receive data. |
noDat | Number of values per data entry. |
Definition at line 144 of file mpiexchange.h.
|
inline |
U |
exDomains | Domains with which to exchange Data. |
noValues | Number of values to send and recv. |
comm | MPI communicator to be used. |
sendBuffer | Buffer used to send data. |
receiveBuffer | Buffer used to receive data. |
noDat | Number of values per data entry. |
Definition at line 242 of file mpiexchange.h.
|
inline |
U |
exDomains | Domains with which to exchange Data. |
noValuesToSend | Number of values to send. |
noValuesToRecv | Number of values to recv. |
comm | MPI communicator to be used. |
sendBuffer | Buffer used to send data. |
receiveBuffer | Buffer used to receive data. |
noDat | Number of values per data entry. |
Definition at line 181 of file mpiexchange.h.
|
inline |
U | Datatype to be exchanged |
sendSize | Number of values to be send. |
comm | MPI Communicator to be used. |
receiveBuffer | Buffer used to receive data. |
sendBuffer | Buffer used to send data. |
noDat | Number of data elements to be send. |
Definition at line 95 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const dataType *const | sendBuffer, |
const MInt | domainId, | ||
const MInt | noDomains, | ||
const MPI_Comm | mpiComm, | ||
const MInt | dataBlockSize, | ||
const MInt *const | dataSizeSend, | ||
const MInt *const | dataSizeRecv, | ||
dataType *const | recvBuffer | ||
) |
[in] | sendBuffer | Pointer to data send buffer. |
[in] | dataBlockSize | Data solver size, e.g. number of variables per cell. |
[in] | dataSizeSend | Amount of data to send to each domain, e.g. number of cells. |
[in] | dataSizeRecv | Amount of data to receive from each domain. |
[out] | recvBuffer | Pointer to data receive buffer. |
Definition at line 699 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const dataType *const | sendBuffer, |
const MInt | domainId, | ||
const MInt | noNghbrDomains, | ||
const MInt *const | nghbrDomainIds, | ||
const MPI_Comm | mpiComm, | ||
const MInt | dataBlockSize, | ||
const MInt *const | dataSizeSend, | ||
const MInt *const | dataSizeRecv, | ||
dataType *const | recvBuffer | ||
) |
Definition at line 767 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const MInt | noNghbrDomains, |
const MInt *const | nghbrDomains, | ||
const MInt *const | noHaloCells, | ||
const MInt **const | haloCells, | ||
const MInt *const | noWindowCells, | ||
const MInt **const | windowCells, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 347 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const MInt | noNghbrDomains, |
const MInt *const | nghbrDomains, | ||
const MInt *const | noHaloCells, | ||
const MInt ** const | , | ||
const MInt *const | noWindowCells, | ||
const MInt **const | windowCells, | ||
const MPI_Comm | comm, | ||
const U *const | data, | ||
U *const | haloBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 295 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const MInt | noNghbrDomains, |
const MInt *const | nghbrDomains, | ||
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 435 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const MInt | noNghbrDomains, |
const MInt *const | nghbrDomains, | ||
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
U *const | haloBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 466 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const std::vector< MInt > & | nghbrDomains, |
const MInt *const | noHaloCells, | ||
MInt **const | haloCells, | ||
MInt *const | noWindowCells, | ||
MInt **const | windowCells, | ||
const MPI_Comm | comm, | ||
const U *const | data, | ||
U *const | haloBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 329 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const std::vector< MInt > & | nghbrDomains, |
const MInt *const | noHaloCells, | ||
MInt **const | haloCells, | ||
MInt *const | noWindowCells, | ||
MInt **const | windowCells, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 382 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const std::vector< MInt > & | nghbrDomains, |
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 498 of file mpiexchange.h.
void maia::mpi::exchangeData | ( | const std::vector< MInt > & | nghbrDomains, |
std::vector< std::vector< MInt > > & | haloCellVec, | ||
std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
U *const | haloBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 546 of file mpiexchange.h.
void maia::mpi::exchangeScattered | ( | const std::vector< MInt > & | nghbrDomains, |
std::vector< MInt > & | sendDomainIndices, | ||
std::vector< U > & | sendData, | ||
const MPI_Comm | comm, | ||
std::vector< MInt > & | recvOffsets, | ||
std::vector< U > & | recvBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 613 of file mpiexchange.h.
|
inline |
U |
exDomains | Domains with which to exchange Data. |
noValues | Number of values to send and recv. |
comm | MPI communicator to be used. |
sendBuffer | Buffer used to send data. |
receiveBuffer | Buffer used to receive data. |
noDat | Number of values per data entry. |
Definition at line 270 of file mpiexchange.h.
Definition at line 681 of file mpiexchange.h.
std::vector< T > maia::mpi::mpiExchangePointToPoint | ( | const T *const | sendBuffer, |
const MInt *const | snghbrs, | ||
const MInt | nosnghbrs, | ||
const MInt *const | sendcounts, | ||
const MInt *const | rnghbrs, | ||
const MInt | nornghbrs, | ||
const MPI_Comm & | mpi_comm, | ||
const MInt | domainId, | ||
const MInt | dataBlockSize, | ||
MInt *const | recvcounts_ = nullptr , |
||
MInt *const | rdispls_ = nullptr |
||
) |
Definition at line 1057 of file mpiexchange.h.
void maia::mpi::reverseExchangeAddData | ( | const std::vector< MInt > & | nghbrDomains, |
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
U **const | data, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 1205 of file mpiexchange.h.
void maia::mpi::reverseExchangeAddData | ( | const std::vector< MInt > & | nghbrDomains, |
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
U *const | data, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 1268 of file mpiexchange.h.
void maia::mpi::reverseExchangeData | ( | const MInt | noNghbrDomains, |
const MInt *const | nghbrDomains, | ||
const MInt *const | noHaloCells, | ||
const MInt **const | haloCells, | ||
const MInt *const | noWindowCells, | ||
const MInt ** const | , | ||
const MPI_Comm | comm, | ||
const U *const | data, | ||
U *const | windowBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 400 of file mpiexchange.h.
void maia::mpi::reverseExchangeData | ( | const MInt | noNghbrDomains, |
const MInt *const | nghbrDomains, | ||
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
const U *const | data, | ||
U *const | windowBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 564 of file mpiexchange.h.
void maia::mpi::reverseExchangeData | ( | const std::vector< MInt > & | nghbrDomains, |
const std::vector< std::vector< MInt > > & | haloCellVec, | ||
const std::vector< std::vector< MInt > > & | windowCellVec, | ||
const MPI_Comm | comm, | ||
const U *const | data, | ||
U *const | windowBuffer, | ||
const MInt | noDat = 1 |
||
) |
Definition at line 595 of file mpiexchange.h.