domesticoverlapfrombcrsmatrix.hh
Go to the documentation of this file.
442 masterRank_[static_cast<unsigned>(*idxIt)] = std::min(masterRank_[static_cast<unsigned>(*idxIt)], *peerIt);
523 domesticOverlapByIndex_[static_cast<unsigned>(domesticIdx)][static_cast<unsigned>(peerRank)] = borderDistance;
532 borderDistance_[static_cast<unsigned>(domesticIdx)] = std::min(borderDistance, borderDistance_[static_cast<unsigned>(domesticIdx)]);
Expresses which degrees of freedom are blacklisted for the parallel linear solvers and which domestic... Definition: blacklist.hh:49 void updateNativeToDomesticMap(const DomesticOverlap &domesticOverlap) Definition: blacklist.hh:81 This class creates and manages the foreign overlap given an initial list of border indices and a BCRS... Definition: domesticoverlapfrombcrsmatrix.hh:53 void print() const Print the foreign overlap for debugging purposes. Definition: domesticoverlapfrombcrsmatrix.hh:268 DomesticOverlapFromBCRSMatrix(const DomesticOverlapFromBCRSMatrix &)=delete PeerSet peerSet_ Definition: domesticoverlapfrombcrsmatrix.hh:577 Index mapInternalToExternal_(Index internalIdx) const Definition: domesticoverlapfrombcrsmatrix.hh:553 unsigned worldSize_ Definition: domesticoverlapfrombcrsmatrix.hh:564 ProcessRank myRank() const Returns the rank of the current process. Definition: domesticoverlapfrombcrsmatrix.hh:132 void setupDebugMapping_() Definition: domesticoverlapfrombcrsmatrix.hh:546 void receiveIndicesFromPeer_(ProcessRank peerRank) Definition: domesticoverlapfrombcrsmatrix.hh:492 ForeignOverlap foreignOverlap_ Definition: domesticoverlapfrombcrsmatrix.hh:565 size_t numFront(ProcessRank peerRank) const Returns the number of indices on the front within a given peer rank's grid partition. Definition: domesticoverlapfrombcrsmatrix.hh:172 void sendIndicesToPeer_(ProcessRank peerRank) Definition: domesticoverlapfrombcrsmatrix.hh:447 Index nativeToDomestic(Index nativeIdx) const Returns a domestic index given a native one. Definition: domesticoverlapfrombcrsmatrix.hh:302 Index domesticToGlobal(Index domIdx) const Returns a global index given a domestic one. Definition: domesticoverlapfrombcrsmatrix.hh:285 bool peerHasIndex(int peerRank, Index domesticIdx) const Returns true iff a domestic index is seen by a peer rank. Definition: domesticoverlapfrombcrsmatrix.hh:333 OverlapByIndex domesticOverlapByIndex_ Definition: domesticoverlapfrombcrsmatrix.hh:570 bool isLocal(Index domesticIdx) const Return true if a domestic index is local for the process. Definition: domesticoverlapfrombcrsmatrix.hh:245 const BlackList & blackList() const Returns the object which represents the black-listed native indices. Definition: domesticoverlapfrombcrsmatrix.hh:194 size_t numDomestic() const Returns the number domestic indices. Definition: domesticoverlapfrombcrsmatrix.hh:236 unsigned overlapSize() const Returns the size of the overlap region. Definition: domesticoverlapfrombcrsmatrix.hh:207 Index foreignOverlapOffsetToDomesticIdx(ProcessRank peerRank, unsigned overlapOffset) const Returns the domestic index given an offset in the foreign overlap of a peer process with the local pr... Definition: domesticoverlapfrombcrsmatrix.hh:351 unsigned worldSize() const Returns the number of processes in the global MPI communicator. Definition: domesticoverlapfrombcrsmatrix.hh:138 bool isFrontFor(ProcessRank peerRank, Index domesticIdx) const Returns true if a given domestic index is a front index for a peer rank. Definition: domesticoverlapfrombcrsmatrix.hh:324 bool isBorderWith(Index domesticIdx, ProcessRank peerRank) const Returns true iff a domestic index is on the border with a given peer process. Definition: domesticoverlapfrombcrsmatrix.hh:161 bool iAmMasterOf(Index domesticIdx) const Return true iff the current process is the master of a given domestic index. Definition: domesticoverlapfrombcrsmatrix.hh:252 bool isFront(Index domesticIdx) const Returns true iff a domestic index is on the front. Definition: domesticoverlapfrombcrsmatrix.hh:178 Index globalToDomestic(Index globalIdx) const Returns a domestic index given a global one. Definition: domesticoverlapfrombcrsmatrix.hh:274 GlobalIndices globalIndices_ Definition: domesticoverlapfrombcrsmatrix.hh:576 size_t domesticOverlapSize(ProcessRank peerRank) const Returns number of indices which are contained in the domestic overlap with a peer. Definition: domesticoverlapfrombcrsmatrix.hh:362 std::vector< BorderDistance > borderDistance_ Definition: domesticoverlapfrombcrsmatrix.hh:571 DomesticOverlapFromBCRSMatrix(const BCRSMatrix &A, const BorderList &borderList, const BlackList &blackList, unsigned overlapSize) Constructs the foreign overlap given a BCRS matrix and an initial list of border indices. Definition: domesticoverlapfrombcrsmatrix.hh:66 ProcessRank myRank_ Definition: domesticoverlapfrombcrsmatrix.hh:563 DomesticOverlapByRank domesticOverlapWithPeer_ Definition: domesticoverlapfrombcrsmatrix.hh:569 ProcessRank masterRank(Index domesticIdx) const Return the rank of a master process for a domestic index. Definition: domesticoverlapfrombcrsmatrix.hh:262 Index mapExternalToInternal_(Index externalIdx) const Definition: domesticoverlapfrombcrsmatrix.hh:560 size_t numLocal() const Returns the number local indices. Definition: domesticoverlapfrombcrsmatrix.hh:226 const PeerSet & peerSet() const Return the set of process ranks which share an overlap with the current process. Definition: domesticoverlapfrombcrsmatrix.hh:145 void waitSendIndices_(ProcessRank peerRank) Definition: domesticoverlapfrombcrsmatrix.hh:483 void buildDomesticOverlap_() Definition: domesticoverlapfrombcrsmatrix.hh:377 void check() const Definition: domesticoverlapfrombcrsmatrix.hh:92 size_t numNative() const Returns the number native indices. Definition: domesticoverlapfrombcrsmatrix.hh:217 std::map< ProcessRank, MpiBuffer< IndexDistanceNpeers > * > indicesSendBuffer_ Definition: domesticoverlapfrombcrsmatrix.hh:575 size_t foreignOverlapSize(ProcessRank peerRank) const Returns number of indices which are contained in the foreign overlap with a peer. Definition: domesticoverlapfrombcrsmatrix.hh:343 std::vector< ProcessRank > masterRank_ Definition: domesticoverlapfrombcrsmatrix.hh:572 BlackList blackList_ Definition: domesticoverlapfrombcrsmatrix.hh:567 bool isInOverlap(Index domesticIdx) const Returns true if a given domestic index is either in the foreign or in the domestic overlap. Definition: domesticoverlapfrombcrsmatrix.hh:314 void updateMasterRanks_() Definition: domesticoverlapfrombcrsmatrix.hh:412 bool isBorder(Index domesticIdx) const Returns true iff a domestic index is a border index. Definition: domesticoverlapfrombcrsmatrix.hh:151 size_t numPeers(Index domesticIdx) const Returns the number of processes which "see" a given index. Definition: domesticoverlapfrombcrsmatrix.hh:201 Index domesticOverlapOffsetToDomesticIdx(ProcessRank peerRank, Index overlapOffset) const Returns the domestic index given an offset in the domestic overlap of a peer process with the local p... Definition: domesticoverlapfrombcrsmatrix.hh:370 Index domesticToNative(Index domIdx) const Returns a native index given a domestic one. Definition: domesticoverlapfrombcrsmatrix.hh:291 std::map< ProcessRank, MpiBuffer< size_t > * > numIndicesSendBuffer_ Definition: domesticoverlapfrombcrsmatrix.hh:574 This class creates and manages the foreign overlap given an initial list of border indices and a BCRS... Definition: foreignoverlapfrombcrsmatrix.hh:60 const PeerSet & peerSet() const Return the set of process ranks which share an overlap with the current process. Definition: foreignoverlapfrombcrsmatrix.hh:260 size_t numLocal() const Returns the number of local indices. Definition: foreignoverlapfrombcrsmatrix.hh:279 bool isInOverlap(Index localIdx) const Returns true if a given local index is in the foreign overlap of any rank. Definition: foreignoverlapfrombcrsmatrix.hh:323 const OverlapWithPeer & foreignOverlapWithPeer(ProcessRank peerRank) const Return the list of (local indices, border distance, number of processes) triples which are in the ove... Definition: foreignoverlapfrombcrsmatrix.hh:197 unsigned overlapSize() const Returns the size of the overlap region. Definition: foreignoverlapfrombcrsmatrix.hh:143 bool isBorder(Index localIdx) const Returns true iff a local index is a border index. Definition: foreignoverlapfrombcrsmatrix.hh:149 Index nativeToLocal(Index nativeIdx) const Convert a native index to a local one. Definition: foreignoverlapfrombcrsmatrix.hh:294 bool peerHasIndex(ProcessRank peerRank, Index localIdx) const Returns true iff a local index is seen by a peer rank. Definition: foreignoverlapfrombcrsmatrix.hh:217 size_t numNative() const Returns the number of native indices. Definition: foreignoverlapfrombcrsmatrix.hh:273 const std::map< ProcessRank, BorderDistance > & foreignOverlapByLocalIndex(Index localIdx) const Return the map of (peer rank, border distance) for a given local index. Definition: foreignoverlapfrombcrsmatrix.hh:208 bool isFrontFor(ProcessRank peerRank, Index localIdx) const Returns whether a given local index is on the front of a given peer rank. Definition: foreignoverlapfrombcrsmatrix.hh:245 size_t numFront(ProcessRank peerRank) const Returns the number of front indices of a peer process in the local partition. Definition: foreignoverlapfrombcrsmatrix.hh:227 Index localToNative(Index localIdx) const Convert a local index to a native one. Definition: foreignoverlapfrombcrsmatrix.hh:300 ProcessRank masterRank(Index localIdx) const Return the rank of the master process of an index. Definition: foreignoverlapfrombcrsmatrix.hh:171 bool isBorderWith(Index localIdx, ProcessRank peerRank) const Returns true iff a local index is a border index shared with a given peer process. Definition: foreignoverlapfrombcrsmatrix.hh:156 bool iAmMasterOf(Index localIdx) const Return true if the current rank is the "master" of an index. Definition: foreignoverlapfrombcrsmatrix.hh:182 bool isLocal(Index domesticIdx) const Returns true iff a domestic index is local. Definition: foreignoverlapfrombcrsmatrix.hh:285 This class maps domestic row indices to and from "global" indices which is used to construct an algeb... Definition: globalindices.hh:56 void print() const Prints the global indices of all domestic indices for debugging purposes. Definition: globalindices.hh:190 void addIndex(Index domesticIdx, Index globalIdx) Add an index to the domestic<->global mapping. Definition: globalindices.hh:127 size_t numDomestic() const Returns the number domestic indices. Definition: globalindices.hh:121 Index domesticToGlobal(Index domesticIdx) const Converts a domestic index to a global one. Definition: globalindices.hh:88 Index globalToDomestic(Index globalIdx) const Converts a global index to a domestic one. Definition: globalindices.hh:98 bool hasGlobalIndex(Index globalIdx) const Return true iff a given global index already exists. Definition: globalindices.hh:183 void receive(unsigned peerRank) Receive the buffer syncronously from a peer rank. Definition: mpibuffer.hh:111 unsigned BorderDistance The type representing the distance of an index to the border. Definition: overlaptypes.hh:54 std::map< ProcessRank, DomesticOverlapWithPeer > DomesticOverlapByRank A type mapping the process rank to the list of domestic indices which are owned by the peer. Definition: overlaptypes.hh:187 unsigned ProcessRank The type of the rank of a process. Definition: overlaptypes.hh:49 std::vector< std::map< ProcessRank, BorderDistance > > OverlapByIndex Maps each index to a list of processes . Definition: overlaptypes.hh:176 int Index The type of an index of a degree of freedom. Definition: overlaptypes.hh:44 std::list< BorderIndex > BorderList This class managages a list of indices which are on the border of a process' partition of the grid. Definition: overlaptypes.hh:120 Definition: blackoilboundaryratevector.hh:37 This structure stores an index, a process rank, and the number of processes which "see" the degree of... Definition: overlaptypes.hh:92 BorderDistance borderDistance Definition: overlaptypes.hh:94 |