OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Ordering from oofem natural ordering (includes all local and shared eqs) to global ordering. More...
#include <parallelordering.h>
Public Member Functions | |
Natural2GlobalOrdering () | |
virtual | ~Natural2GlobalOrdering () |
virtual void | init (EngngModel *, int di, const UnknownNumberingScheme &n) |
Initiates the receiver. More... | |
virtual int | giveNewEq (int leq) |
Finds the global equation from a local equation. More... | |
virtual int | giveOldEq (int eq) |
Finds the local equation number from a global equation. More... | |
virtual void | map2New (IntArray &answer, const IntArray &src, int baseOffset=0) |
virtual void | map2Old (IntArray &answer, const IntArray &src, int baseOffset=0) |
int | giveNumberOfLocalEqs () |
Returns number of local eqs; ie. More... | |
int | giveNumberOfGlobalEqs () |
IntArray * | giveN2Gmap () |
Public Member Functions inherited from oofem::ParallelOrdering | |
ParallelOrdering () | |
virtual | ~ParallelOrdering () |
bool | isLocal (DofManager *dman) |
Returns true if given DofManager is local (ie maintained by the receiver processor). More... | |
bool | isShared (DofManager *dman) |
Returns true if given DofManager is shared between partitions. More... | |
Protected Attributes | |
IntArray | locGlobMap |
Old to new mapping; uses 0-based global eq ordering; 1-based local ordering. More... | |
std::map< int, int > | globLocMap |
New to old mapping. More... | |
int | l_neqs |
Number of local and global eqs. More... | |
int | g_neqs |
Ordering from oofem natural ordering (includes all local and shared eqs) to global ordering.
Definition at line 100 of file parallelordering.h.
oofem::Natural2GlobalOrdering::Natural2GlobalOrdering | ( | ) |
Definition at line 70 of file parallelordering.C.
|
inlinevirtual |
Definition at line 113 of file parallelordering.h.
|
inline |
Definition at line 126 of file parallelordering.h.
Referenced by oofem::PetscSparseMtrx::buildInternalStructure().
|
virtual |
Finds the global equation from a local equation.
leq | Local equation number. |
Implements oofem::ParallelOrdering.
Definition at line 461 of file parallelordering.C.
References oofem::IntArray::at(), and locGlobMap.
Referenced by oofem::PetscSparseMtrx::scatterL2G().
|
inlinevirtual |
Reimplemented from oofem::ParallelOrdering.
Definition at line 124 of file parallelordering.h.
Referenced by oofem::PetscSparseMtrx::buildInternalStructure(), and oofem::ParallelContext::giveNumberOfGlobalEqs().
|
inlinevirtual |
Returns number of local eqs; ie.
those that belong to receiver processor; Note that some eqs may be owned by remote processors (some shared nodes,...). The sum of local eqs for all processors should give total number of eqs.
Reimplemented from oofem::ParallelOrdering.
Definition at line 123 of file parallelordering.h.
Referenced by oofem::PetscSparseMtrx::buildInternalStructure(), and oofem::ParallelContext::giveNumberOfLocalEqs().
|
virtual |
Finds the local equation number from a global equation.
eq | Global equation number. |
Implements oofem::ParallelOrdering.
Definition at line 467 of file parallelordering.C.
References globLocMap.
Referenced by map2Old().
|
virtual |
Initiates the receiver.
em | Engineering model to determine general information about the problem. |
di | Domain index. |
Implements oofem::ParallelOrdering.
Definition at line 77 of file parallelordering.C.
References oofem::IntArray::at(), oofem::DofManager_local, oofem::DofManager_shared, g_neqs, oofem::Domain::giveDofManager(), oofem::EngngModel::giveDomain(), oofem::DofManager::giveGlobalNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::DofManager::giveNumberOfDofs(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::EngngModel::giveNumberOfProcesses(), oofem::DofManager::giveParallelMode(), oofem::DofManager::givePartitionList(), oofem::EngngModel::giveRank(), oofem::IntArray::giveSize(), globLocMap, oofem::CommunicationBuffer::iRecv(), oofem::CommunicationBuffer::iSend(), oofem::ParallelOrdering::isLocal(), oofem::ParallelOrdering::isShared(), l_neqs, locGlobMap, oofem::min(), OOFEM_ERROR, OOFEM_LOG_INFO, oofem::CommunicationBuffer::read(), oofem::IntArray::resize(), oofem::CommunicationBuffer::resize(), VERBOSEPARALLEL_PRINT, oofem::CommunicationBuffer::write(), and oofem::IntArray::zero().
Referenced by oofem::PetscSparseMtrx::buildInternalStructure(), and oofem::ParallelContext::init().
|
virtual |
Implements oofem::ParallelOrdering.
Definition at line 478 of file parallelordering.C.
References oofem::IntArray::at(), oofem::IntArray::giveSize(), locGlobMap, and oofem::IntArray::resize().
Referenced by oofem::PetscSparseMtrx::assemble(), and oofem::PetscSparseMtrx::buildInternalStructure().
|
virtual |
Implements oofem::ParallelOrdering.
Definition at line 495 of file parallelordering.C.
References oofem::IntArray::at(), giveOldEq(), oofem::IntArray::giveSize(), and oofem::IntArray::resize().
|
protected |
Definition at line 109 of file parallelordering.h.
Referenced by init(), and Natural2GlobalOrdering().
|
protected |
New to old mapping.
Definition at line 106 of file parallelordering.h.
Referenced by giveOldEq(), and init().
|
protected |
Number of local and global eqs.
Definition at line 109 of file parallelordering.h.
Referenced by init(), and Natural2GlobalOrdering().
|
protected |
Old to new mapping; uses 0-based global eq ordering; 1-based local ordering.
Definition at line 104 of file parallelordering.h.
Referenced by giveNewEq(), init(), and map2New().