OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::FETICommunicator Class Reference

Class representing communicator for FETI solver. More...

#include <feticommunicator.h>

+ Inheritance diagram for oofem::FETICommunicator:
+ Collaboration diagram for oofem::FETICommunicator:

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)
 Creates new communicator. More...
 
virtual ~FETICommunicator ()
 Destructor. More...
 
int giveNumberOfDomainEquations ()
 
void setUpCommunicationMaps (EngngModel *pm)
 Service for setting up the communication patterns with other remote processes. More...
 
FETIBoundaryDofManagergiveDofManager (int i)
 Returns reference to i-th boundary dof manager. More...
 
IntArraygiveMasterCommMapPtr ()
 Returns pointer to master comm map stored in receiver. More...
 
- Public Member Functions inherited from oofem::Communicator
 Communicator (EngngModel *emodel, CommunicatorBuff *buff, int rank, int size, CommunicatorMode mode=CommMode_Static)
 Constructor. More...
 
virtual ~Communicator ()
 Destructor. More...
 
ProcessCommunicatorgiveProcessCommunicator (int i)
 Returns i-th problem communicator. More...
 
template<class T >
int packAllData (T *ptr, int(T::*packFunc)(ProcessCommunicator &))
 Pack all problemCommunicators data to their send buffers. More...
 
template<class T , class P >
int packAllData (T *ptr, P *src, int(T::*packFunc)(P *, ProcessCommunicator &))
 Pack all problemCommuncators data to their send buffers. More...
 
template<class T >
int unpackAllData (T *ptr, int(T::*unpackFunc)(ProcessCommunicator &))
 Unpack all problemCommuncators data from recv buffers. More...
 
template<class T , class P >
int unpackAllData (T *ptr, P *src, int(T::*unpackFunc)(P *, ProcessCommunicator &))
 Unpack all problemCommuncators data from recv buffers. More...
 
int initExchange (int tag)
 Initializes data exchange with all problems. More...
 
int initSend (int tag)
 Initializes data send exchange with all problems. More...
 
int initReceive (int tag)
 Initializes data receive exchange with all problems. More...
 
int finishExchange ()
 Finishes the exchange. More...
 
void clearBuffers ()
 Clears all buffer content. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

Protected Attributes

int numberOfEquations
 Number of equations at master level (determined form boundary nodes). More...
 
vector< FETIBoundaryDofManagerboundaryDofManList
 List of boundary dof managers records. More...
 
IntArray masterCommMap
 Master communication map. More...
 
- Protected Attributes inherited from oofem::Communicator
int rank
 Rank of process. More...
 
int size
 Number of processes. More...
 
ProcessCommunicator ** processComms
 Array of process communicators. More...
 
EngngModelengngModel
 Engineering model. More...
 
CommunicatorMode mode
 Mode. More...
 

Detailed Description

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.

Member Enumeration Documentation

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.

Constructor & Destructor Documentation

oofem::FETICommunicator::FETICommunicator ( EngngModel emodel,
CommunicatorBuff b,
int  rank,
int  size 
)

Creates new communicator.

Parameters
emodelEngineering model for communication.
bCommunicator buffer.
rankRank of associated partition.
sizeNumber of collaborating processes.

Definition at line 47 of file feticommunicator.C.

References OOFEM_ERROR.

oofem::FETICommunicator::~FETICommunicator ( )
virtual

Destructor.

Definition at line 56 of file feticommunicator.C.

Member Function Documentation

IntArray* oofem::FETICommunicator::giveMasterCommMapPtr ( )
inline
int oofem::FETICommunicator::giveNumberOfDomainEquations ( )
inline

Definition at line 85 of file feticommunicator.h.

Referenced by oofem::FETISolver::solve().

Member Data Documentation

vector< FETIBoundaryDofManager > oofem::FETICommunicator::boundaryDofManList
protected

List of boundary dof managers records.

Definition at line 66 of file feticommunicator.h.

Referenced by setUpCommunicationMaps().

IntArray oofem::FETICommunicator::masterCommMap
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 setUpCommunicationMaps().

int oofem::FETICommunicator::numberOfEquations
protected

Number of equations at master level (determined form boundary nodes).

Definition at line 64 of file feticommunicator.h.

Referenced by setUpCommunicationMaps().


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

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:35 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011