MAIA bb96820c
Multiphysics at AIA
|
Go to the source code of this file.
Namespaces | |
namespace | maia |
Namespace for auxiliary functions/classes. | |
namespace | maia::mpi |
Functions | |
template<typename U > | |
void | maia::mpi::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 | maia::mpi::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 | maia::mpi::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 | maia::mpi::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 | maia::mpi::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 | maia::mpi::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 | maia::mpi::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 | 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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic reverse exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data NOTE: version called in exchangeData from the solvers! More... | |
template<std::size_t N> | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
template<typename U > | |
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) |
Generic reverse exchange of data. More... | |
template<typename U > | |
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) |
Generic reverse exchange of data. More... | |
template<typename U > | |
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) |
Generic exchange of data. More... | |
MUint | maia::mpi::getBufferSize (const std::vector< std::vector< MInt > > &exchangeCells) |
Generic exchange of data. More... | |
template<class dataType > | |
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) |
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 | 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) |
Communicate variable amounts of data from each domain to all neighboring domains. More... | |
template<typename DataType > | |
void | maia::mpi::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 | 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) |
Assemble given data in send buffer and communicate. More... | |
template<std::size_t N> | |
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) |
template<typename DataType > | |
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) |
Communicate (optionally) solver-structured data sorted by a global Id. More... | |
template<class T > | |
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) |
template<typename U > | |
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) |
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 | 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) |
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... | |