OOFEM 3.0
Loading...
Searching...
No Matches
oofem::ElementCommunicator Class Reference

#include <problemcomm.h>

Inheritance diagram for oofem::ElementCommunicator:
Collaboration diagram for oofem::ElementCommunicator:

Public Member Functions

 ElementCommunicator (EngngModel *emodel, CommunicatorBuff *b, int rank, int size)
virtual ~ElementCommunicator ()
void setUpCommunicationMaps (EngngModel *emodel, bool excludeSelfCommFlag, bool forceReinit=false) override
int setProcessCommunicatorToSendArry (ProcessCommunicator *processComm, IntArray &map) override
int setProcessCommunicatorToRecvArry (ProcessCommunicator *processComm, IntArray &map) override
Public Member Functions inherited from oofem::ProblemCommunicator
 ProblemCommunicator (EngngModel *emodel, CommunicatorBuff *b, int rank, int size)
virtual ~ProblemCommunicator ()
 Destructor.
int DofManCmp (int, int)
 Global dofManager number comparison function.
int ElemCmp (int, int)
 Global element comparison function.
Public Member Functions inherited from oofem::Communicator
 Communicator (EngngModel *emodel, CommunicatorBuff *buff, int rank, int size, CommunicatorMode mode=CommMode_Static)
virtual ~Communicator ()
 Destructor.
ProcessCommunicatorgiveProcessCommunicator (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 ()
virtual void setUpCommunicationMaps (EngngModel *pm)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Additional Inherited Members

Protected Member Functions inherited from oofem::ProblemCommunicator
void sortCommMap (IntArray &map, int(ProblemCommunicator ::*cmp)(int, int))
void quickSortCommMap (IntArray &map, int l, int r, int(ProblemCommunicator ::*cmp)(int, int))
 Implementation of quicksort algorithm.
int quickSortPartition (IntArray &map, int l, int r, int(ProblemCommunicator ::*cmp)(int, int))
 Partitioning used in quicksort.
Protected Attributes inherited from oofem::ProblemCommunicator
bool initialized
Protected Attributes inherited from oofem::Communicator
int rank
 Rank of process.
std::vector< ProcessCommunicatorprocessComms
 Array of process communicators.
EngngModelengngModel
 Engineering model.
CommunicatorMode mode
 Mode.

Detailed Description

Definition at line 129 of file problemcomm.h.

Constructor & Destructor Documentation

◆ ElementCommunicator()

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

◆ ~ElementCommunicator()

virtual oofem::ElementCommunicator::~ElementCommunicator ( )
inlinevirtual

Definition at line 133 of file problemcomm.h.

Member Function Documentation

◆ setProcessCommunicatorToRecvArry()

int oofem::ElementCommunicator::setProcessCommunicatorToRecvArry ( ProcessCommunicator * processComm,
IntArray & map )
overridevirtual

Assigns given map to given process communicator. Sorts map according to global entity (dofmanagers or element) numbers to ensure, that local and corresponding remote process have the identical map with same ordering. This will ensure proper packing/unpacking order. The corresponding processCommunicator buffer takes care about resizing itself accordingly to hold all outgoing/incoming data using engngModel->estimateMaxPackSize service.

Parameters
processCommProcess comm which received map will be set.
mapReceived map.

Implements oofem::ProblemCommunicator.

Definition at line 394 of file problemcomm.C.

References oofem::Communicator::engngModel, oofem::ProcessCommunicator::setToRecvArry(), and oofem::ProblemCommunicator::sortCommMap().

Referenced by setUpCommunicationMaps().

◆ setProcessCommunicatorToSendArry()

int oofem::ElementCommunicator::setProcessCommunicatorToSendArry ( ProcessCommunicator * processComm,
IntArray & map )
overridevirtual

Assigns given map to given process communicator. Sorts map according to global entity (dofmanagers or element) numbers to ensure, that local and corresponding remote process have the identical map with same ordering. This will ensure proper packing/unpacking order. The corresponding processCommunicator buffer takes care about resizing itself accordingly to hold all outgoing/incoming data using engngModel->estimateMaxPackSize service.

Parameters
processCommDomain comm which send map will be set.
mapSend map.

Implements oofem::ProblemCommunicator.

Definition at line 386 of file problemcomm.C.

References oofem::Communicator::engngModel, oofem::ProcessCommunicator::setToSendArry(), and oofem::ProblemCommunicator::sortCommMap().

Referenced by setUpCommunicationMaps().

◆ setUpCommunicationMaps()

void oofem::ElementCommunicator::setUpCommunicationMaps ( EngngModel * emodel,
bool excludeSelfCommFlag,
bool forceReinit = false )
overridevirtual

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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011