|
OOFEM 3.0
|
#include <feticommunicator.h>
Public Types | |
| enum | { FETICommunicatorZeroTag , NumberOfBoundaryDofManagersMsg , BoundaryDofManagersRecMsg } |
| Enumeration used to define necessary communication tags, used to identify different messages send/received. More... | |
Public Member Functions | |
| FETICommunicator (EngngModel *emodel, CommunicatorBuff *b, int rank, int size) | |
| virtual | ~FETICommunicator () |
| Destructor. | |
| int | giveNumberOfDomainEquations () |
| void | setUpCommunicationMaps (EngngModel *pm) |
| FETIBoundaryDofManager * | giveDofManager (int i) |
| IntArray * | giveMasterCommMapPtr () |
| Public Member Functions inherited from oofem::Communicator | |
| Communicator (EngngModel *emodel, CommunicatorBuff *buff, int rank, int size, CommunicatorMode mode=CommMode_Static) | |
| virtual | ~Communicator () |
| Destructor. | |
| ProcessCommunicator * | giveProcessCommunicator (int i) |
| template<class T> | |
| int | packAllData (T *ptr, int(T ::*packFunc)(ProcessCommunicator &)) |
| template<class T, class P> | |
| int | packAllData (T *ptr, P *src, int(T ::*packFunc)(P *, ProcessCommunicator &)) |
| template<class T> | |
| int | unpackAllData (T *ptr, int(T ::*unpackFunc)(ProcessCommunicator &)) |
| template<class T, class P> | |
| int | unpackAllData (T *ptr, P *src, int(T ::*unpackFunc)(P *, ProcessCommunicator &)) |
| int | initExchange (int tag) |
| int | initSend (int tag) |
| int | initReceive (int tag) |
| int | finishExchange () |
| void | clearBuffers () |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Protected Attributes | |
| int | numberOfEquations |
| Number of equations at master level (determined form boundary nodes). | |
| vector< FETIBoundaryDofManager > | boundaryDofManList |
| List of boundary dof managers records. | |
| IntArray | masterCommMap |
| Protected Attributes inherited from oofem::Communicator | |
| int | rank |
| Rank of process. | |
| std::vector< ProcessCommunicator > | processComms |
| Array of process communicators. | |
| EngngModel * | engngModel |
| Engineering model. | |
| CommunicatorMode | mode |
| Mode. | |
Class representing communicator for FETI solver. It is attribute of FETI solver numerical method class running on master partition (rank equal to 0). This Communicator provides necessary services for communication with associated slave partitions. It manages several domain communicators, each for communication with particular partition.
Definition at line 56 of file feticommunicator.h.
| anonymous enum |
Enumeration used to define necessary communication tags, used to identify different messages send/received.
| Enumerator | |
|---|---|
| FETICommunicatorZeroTag | |
| NumberOfBoundaryDofManagersMsg | |
| BoundaryDofManagersRecMsg | |
Definition at line 60 of file feticommunicator.h.
| oofem::FETICommunicator::FETICommunicator | ( | EngngModel * | emodel, |
| CommunicatorBuff * | b, | ||
| int | rank, | ||
| int | size ) |
Creates new communicator.
| emodel | Engineering model for communication. |
| b | Communicator buffer. |
| rank | Rank of associated partition. |
| size | Number of collaborating processes. |
Definition at line 47 of file feticommunicator.C.
References oofem::Communicator::Communicator(), OOFEM_ERROR, and oofem::Communicator::rank.
|
virtual |
Destructor.
Definition at line 56 of file feticommunicator.C.
|
inline |
Returns reference to i-th boundary dof manager. Available only on master partition.
Definition at line 92 of file feticommunicator.h.
References boundaryDofManList.
|
inline |
Returns pointer to master comm map stored in receiver.
Definition at line 98 of file feticommunicator.h.
References masterCommMap.
|
inline |
Definition at line 85 of file feticommunicator.h.
References numberOfEquations.
|
virtual |
Service for setting up the communication patterns with other remote processes. Sets up the toSend and toRecv attributes in associated problem communicators.
| pm | Engineering model to use for setup. |
Reimplemented from oofem::Communicator.
Definition at line 61 of file feticommunicator.C.
References oofem::IntArray::at(), boundaryDofManList, oofem::DofManager_shared, oofem::Communicator::engngModel, oofem::DofManager::giveCompleteLocationArray(), oofem::Domain::giveDofManager(), oofem::EngngModel::giveDomain(), oofem::DofManager::giveGlobalNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::CommunicationBuffer::givePackSizeOfInt(), oofem::DofManager::giveParallelMode(), oofem::Communicator::giveProcessCommunicator(), oofem::IntArray::giveSize(), oofem::StaticCommunicationBuffer::init(), oofem::StaticCommunicationBuffer::iRecv(), masterCommMap, numberOfEquations, OOFEM_ERROR, OOFEM_LOG_DEBUG, oofem::Communicator::processComms, oofem::Communicator::rank, oofem::StaticCommunicationBuffer::read(), oofem::StaticCommunicationBuffer::resize(), oofem::StaticCommunicationBuffer::testCompletion(), and VERBOSEPARALLEL_PRINT.
|
protected |
List of boundary dof managers records.
Definition at line 66 of file feticommunicator.h.
Referenced by giveDofManager(), and setUpCommunicationMaps().
|
protected |
Master communication map. Not stored in corresponding domain comm, but required in order to allow direct (memory) mapping instead of communication.
Definition at line 71 of file feticommunicator.h.
Referenced by giveMasterCommMapPtr(), and setUpCommunicationMaps().
|
protected |
Number of equations at master level (determined form boundary nodes).
Definition at line 64 of file feticommunicator.h.
Referenced by giveNumberOfDomainEquations(), and setUpCommunicationMaps().