FEI Package Browser (Single Doxygen Collection)
Version of the Day
|
#include <fei_NodeDescriptor.hpp>
Public Member Functions | |
NodeDescriptor () | |
NodeDescriptor (const NodeDescriptor &src) | |
virtual | ~NodeDescriptor () |
GlobalID | getGlobalNodeID () const |
void | setGlobalNodeID (GlobalID node) |
int | getNodeNumber () const |
void | setNodeNumber (int nn) |
int | getBlkEqnNumber () const |
void | setBlkEqnNumber (int blkEqn) |
int | getNumNodalDOF () const |
void | setNumNodalDOF (int dof) |
void | addField (int fieldID) |
void | setFieldEqnNumber (int fieldID, int eqn) |
int | getNumFields () const |
const int * | getFieldIDList () const |
const int * | getFieldEqnNumbers () const |
bool | getFieldEqnNumber (int fieldID, int &eqnNumber) const |
void | getFieldID (int eqnNumber, int &fieldID, int &offset_into_field) const |
bool | operator== (const NodeDescriptor &nd) const |
bool | operator!= (const NodeDescriptor &nd) const |
bool | operator< (const NodeDescriptor &nd) const |
bool | operator> (const NodeDescriptor &nd) const |
int | getOwnerProc () const |
void | setOwnerProc (int proc) |
void | addBlockIndex (unsigned blk_idx) |
size_t | getNumBlocks () const |
const std::vector< unsigned > & | getBlockIndexList () const |
bool | hasBlockIndex (unsigned blk_idx) const |
Private Member Functions | |
NodeDescriptor & | operator= (const NodeDescriptor &src) |
void | allocFieldLists () |
void | allocBlockList () |
Private Attributes | |
GlobalID | nodeID_ |
int | nodeNumber_ |
int | numNodalDOF_ |
int * | fieldIDList_ |
int * | fieldEqnNumbers_ |
int | numFields_ |
int | blkEqnNumber_ |
int | ownerProc_ |
std::vector< unsigned > | blockList_ |
The NodeDescriptor class holds the information that the FEI implementation needs to know about the nodes in the finite element problem:
Global node identifier number of nodal degrees-of-freedom list of associated field identifiers, with their (global) equation numbers (global) blk-eqn number which processor is this node's owner list of (local) blocks that contain this node
Note: 'block' is used in two contexts here. There are element-blocks, and there are block-equations. Element-blocks refer to the blocks of elements in the finite-element problem, with all elements in a block containing the same number of solution fields per node, etc. Block-equations refer to the small dense sub-blocks of a block-entry sparse matrix. Each node is associated with a number of element-blocks, and each node has exactly one associated global 0-based block-equation number.
Definition at line 36 of file fei_NodeDescriptor.hpp.
NodeDescriptor::NodeDescriptor | ( | ) |
Definition at line 16 of file fei_NodeDescriptor.cpp.
|
inline |
Definition at line 40 of file fei_NodeDescriptor.hpp.
|
virtual |
Definition at line 32 of file fei_NodeDescriptor.cpp.
References fieldEqnNumbers_, fieldIDList_, and numFields_.
|
inline |
Definition at line 49 of file fei_NodeDescriptor.hpp.
References nodeID_.
Referenced by SNL_FEI_Structure::calculateSlaveEqns(), SNL_FEI_Structure::finalizeNodeCommMgr(), FEDataFilter::getBlockFieldNodeSolution(), LinSysCoreFilter::getBlockFieldNodeSolution(), FEI_Implementation::getBlockNodeIDList(), FEDataFilter::getBlockNodeSolution(), LinSysCoreFilter::getBlockNodeSolution(), FEDataFilter::getNodalFieldSolution(), LinSysCoreFilter::getNodalFieldSolution(), FEDataFilter::getNodalSolution(), LinSysCoreFilter::getNodalSolution(), SNL_FEI_Structure::getNodeMajorIndices(), SNL_FEI_Structure::getNumSubdomains(), FEDataFilter::getReducedSolnEntry(), SNL_FEI_Structure::getSubdomainList(), NodeCommMgr::informLocal(), SNL_FEI_Structure::isInLocalElement(), NodeCommMgr::packLocalNodesAndData(), NodeCommMgr::packRemoteNodesAndData(), NodeDatabase::synchronize(), and SNL_FEI_Structure::writeEqn2NodeMap().
|
inline |
Definition at line 50 of file fei_NodeDescriptor.hpp.
References nodeID_.
Referenced by NodeDatabase::initNodeID().
|
inline |
Definition at line 52 of file fei_NodeDescriptor.hpp.
References nodeNumber_.
Referenced by SNL_FEI_Structure::calculateSlaveEqns(), convert_eqns_to_nodenumbers_and_dof_ids(), FEDataFilter::generalElemInput(), NodeDatabase::getAssociatedNodeNumber(), FEDataFilter::getNodalFieldSolution(), FEDataFilter::giveToRHS(), FEDataFilter::initLinSysCore(), LinSysCoreFilter::initLinSysCore(), FEDataFilter::loadFEDataMultCR(), FEDataFilter::loadFEDataPenCR(), NodeCommMgr::packLocalNodesAndData(), FEDataFilter::putBlockFieldNodeSolution(), LinSysCoreFilter::putBlockFieldNodeSolution(), FEDataFilter::putNodalFieldData(), LinSysCoreFilter::putNodalFieldData(), LinSysCoreFilter::setLinSysCoreCREqns(), NodeCommMgr::setNodeNumbersArray(), NodeDatabase::synchronize(), and SNL_FEI_Structure::writeEqn2NodeMap().
|
inline |
Definition at line 53 of file fei_NodeDescriptor.hpp.
References nodeNumber_.
Referenced by NodeCommMgr::processRecvMessage(), and NodeDatabase::synchronize().
|
inline |
Definition at line 55 of file fei_NodeDescriptor.hpp.
References blkEqnNumber_.
Referenced by SNL_FEI_Structure::getNodeBlkIndices(), SNL_FEI_Structure::getNodeIndices_simple(), SNL_FEI_Structure::getNodeMajorIndices(), SNL_FEI_Structure::initializeBlkEqnMapper(), NodeCommMgr::packLocalNodesAndData(), and SNL_FEI_Structure::writeEqn2NodeMap().
|
inline |
Definition at line 56 of file fei_NodeDescriptor.hpp.
References blkEqnNumber_.
Referenced by NodeCommMgr::processRecvMessage(), and SNL_FEI_Structure::setNodalEqnInfo().
|
inline |
Definition at line 58 of file fei_NodeDescriptor.hpp.
References numNodalDOF_.
Referenced by SNL_FEI_Structure::getNodeIndices_simple(), SNL_FEI_Structure::getNodeMajorIndices(), FEI_Implementation::getNumSolnParams(), SNL_FEI_Structure::initializeBlkEqnMapper(), NodeCommMgr::packLocalNodesAndData(), NodeCommMgr::packRemoteNodesAndData(), and NodeDatabase::synchronize().
|
inline |
Definition at line 59 of file fei_NodeDescriptor.hpp.
References numNodalDOF_.
Referenced by NodeCommMgr::processRecvMessage(), SNL_FEI_Structure::setNodalEqnInfo(), and NodeDatabase::synchronize().
void NodeDescriptor::addField | ( | int | fieldID | ) |
Definition at line 39 of file fei_NodeDescriptor.cpp.
References fieldEqnNumbers_, fieldIDList_, fei::listInsert(), numFields_, and fei::sortedListInsert().
Referenced by NodeCommMgr::exchangeSharedRemoteFieldsBlks(), SNL_FEI_Structure::finalizeActiveNodes(), and NodeCommMgr::processRecvMessage().
void NodeDescriptor::setFieldEqnNumber | ( | int | fieldID, |
int | eqn | ||
) |
Definition at line 70 of file fei_NodeDescriptor.cpp.
References fei::binarySearch(), fieldEqnNumbers_, fieldIDList_, and numFields_.
Referenced by NodeCommMgr::processRecvMessage(), SNL_FEI_Structure::setNodalEqnInfo(), and NodeDatabase::synchronize().
|
inline |
Definition at line 64 of file fei_NodeDescriptor.hpp.
References numFields_.
Referenced by Filter::calculateResidualNorms(), NodeDatabase::countLocalNodalEqns(), NodeDatabase::getAssociatedFieldID(), NodeDatabase::getAssociatedNodeNumber(), FEDataFilter::getBlockNodeSolution(), LinSysCoreFilter::getBlockNodeSolution(), SNL_FEI_Structure::getFieldMajorIndices(), NodeCommMgr::getGlobalMaxFieldsBlocks(), NodeCommMgr::getGlobalMaxFieldsBlocksSubdomains(), FEDataFilter::getNodalSolution(), LinSysCoreFilter::getNodalSolution(), SNL_FEI_Structure::getNodeMajorIndices(), NodeDatabase::getNodeWithEqn(), SNL_FEI_Structure::initializeBlkEqnMapper(), SNL_FEI_Structure::initializeEqnCommMgr(), SNL_FEI_Structure::nodalEqnsAllSlaves(), NodeCommMgr::packLocalNodesAndData(), NodeCommMgr::packRemoteNodesAndData(), FEDataFilter::putBlockNodeSolution(), LinSysCoreFilter::putBlockNodeSolution(), SNL_FEI_Structure::setNodalEqnInfo(), SNL_FEI_Structure::setNumNodesAndEqnsPerBlock(), NodeDatabase::synchronize(), and SNL_FEI_Structure::writeEqn2NodeMap().
|
inline |
Definition at line 65 of file fei_NodeDescriptor.hpp.
References fieldIDList_.
Referenced by Filter::calculateResidualNorms(), NodeDatabase::countLocalNodalEqns(), NodeDatabase::getAssociatedFieldID(), NodeDatabase::getAssociatedNodeNumber(), FEDataFilter::getBlockNodeSolution(), LinSysCoreFilter::getBlockNodeSolution(), SNL_FEI_Structure::getFieldMajorIndices(), FEDataFilter::getNodalSolution(), LinSysCoreFilter::getNodalSolution(), SNL_FEI_Structure::getNodeMajorIndices(), NodeDatabase::getNodeWithEqn(), SNL_FEI_Structure::initializeEqnCommMgr(), SNL_FEI_Structure::nodalEqnsAllSlaves(), NodeCommMgr::packLocalNodesAndData(), NodeCommMgr::packRemoteNodesAndData(), FEDataFilter::putBlockNodeSolution(), LinSysCoreFilter::putBlockNodeSolution(), SNL_FEI_Structure::setNodalEqnInfo(), SNL_FEI_Structure::setNumNodesAndEqnsPerBlock(), NodeDatabase::synchronize(), and SNL_FEI_Structure::writeEqn2NodeMap().
|
inline |
Definition at line 66 of file fei_NodeDescriptor.hpp.
References fieldEqnNumbers_.
Referenced by Filter::calculateResidualNorms(), NodeDatabase::getAssociatedFieldID(), NodeDatabase::getAssociatedNodeNumber(), SNL_FEI_Structure::getFieldMajorIndices(), SNL_FEI_Structure::getNodeIndices_simple(), SNL_FEI_Structure::getNodeMajorIndices(), NodeDatabase::getNodeWithEqn(), SNL_FEI_Structure::initializeBlkEqnMapper(), SNL_FEI_Structure::initializeEqnCommMgr(), SNL_FEI_Structure::nodalEqnsAllSlaves(), NodeCommMgr::packLocalNodesAndData(), FEDataFilter::putBlockNodeSolution(), LinSysCoreFilter::putBlockNodeSolution(), NodeDatabase::synchronize(), and SNL_FEI_Structure::writeEqn2NodeMap().
bool NodeDescriptor::getFieldEqnNumber | ( | int | fieldID, |
int & | eqnNumber | ||
) | const |
Given a fieldID, return the first equation number associated with that field at this node.
fieldID | |
eqnNumber |
Definition at line 89 of file fei_NodeDescriptor.cpp.
References fei::binarySearch(), fieldEqnNumbers_, fieldIDList_, and numFields_.
Referenced by convert_field_and_nodes_to_eqns(), FEDataFilter::getBlockFieldNodeSolution(), LinSysCoreFilter::getBlockFieldNodeSolution(), FEDataFilter::getBlockNodeSolution(), LinSysCoreFilter::getBlockNodeSolution(), fei::DirichletBCManager::getEqnNumber(), SNL_FEI_Structure::getEqnNumber(), SNL_FEI_Structure::getEqnNumbers(), FEDataFilter::getNodalFieldSolution(), LinSysCoreFilter::getNodalFieldSolution(), FEDataFilter::getNodalSolution(), LinSysCoreFilter::getNodalSolution(), FEDataFilter::loadFEDataMultCR(), FEDataFilter::loadFEDataPenCR(), FEDataFilter::loadNodeBCs(), FEDataFilter::putBlockFieldNodeSolution(), LinSysCoreFilter::putBlockFieldNodeSolution(), FEDataFilter::putNodalFieldSolution(), LinSysCoreFilter::putNodalFieldSolution(), LinSysCoreFilter::resolveConflictingCRs(), LinSysCoreFilter::setLinSysCoreCREqns(), SNL_FEI_Structure::storeLocalNodeIndices(), LinSysCoreFilter::storeNodalColumnCoefs(), SNL_FEI_Structure::storeNodalColumnIndices(), LinSysCoreFilter::storeNodalRowCoefs(), SNL_FEI_Structure::storeNodalRowIndices(), LinSysCoreFilter::storeNodalSendEqn(), SNL_FEI_Structure::storeNodalSendIndex(), SNL_FEI_Structure::storeNodalSendIndices(), LinSysCoreFilter::storePenNodeData(), and LinSysCoreFilter::storePenNodeSendData().
void NodeDescriptor::getFieldID | ( | int | eqnNumber, |
int & | fieldID, | ||
int & | offset_into_field | ||
) | const |
Given an equation-number, get the associated fieldID and offset-into-field. throws an exception if the equation-number is not associated with this node.
Definition at line 104 of file fei_NodeDescriptor.cpp.
References fieldEqnNumbers_, fieldIDList_, numFields_, and numNodalDOF_.
Referenced by convert_eqns_to_nodenumbers_and_dof_ids(), FEDataFilter::enforceEssentialBCs(), FEDataFilter::getReducedSolnEntry(), FEDataFilter::giveToLocalReducedMatrix(), FEDataFilter::giveToLocalReducedRHS(), FEDataFilter::giveToMatrix(), and FEDataFilter::giveToRHS().
|
inline |
Definition at line 81 of file fei_NodeDescriptor.hpp.
References nodeID_.
|
inline |
Definition at line 84 of file fei_NodeDescriptor.hpp.
References nodeID_.
|
inline |
Definition at line 87 of file fei_NodeDescriptor.hpp.
References nodeID_.
|
inline |
Definition at line 90 of file fei_NodeDescriptor.hpp.
References nodeID_.
|
inline |
Definition at line 93 of file fei_NodeDescriptor.hpp.
References ownerProc_.
Referenced by Filter::calculateResidualNorms(), SNL_FEI_Structure::calculateSlaveEqns(), NodeDatabase::countLocalNodalEqns(), NodeCommMgr::createProcLists(), SNL_FEI_Structure::finalizeNodeCommMgr(), SNL_FEI_Structure::initializeEqnCommMgr(), SNL_FEI_Structure::initMultCRStructure(), SNL_FEI_Structure::initPenCRStructure(), LinSysCoreFilter::loadCRMult(), LinSysCoreFilter::loadCRPen(), NodeCommMgr::packRemoteNodesAndData(), FEDataFilter::putBlockNodeSolution(), LinSysCoreFilter::putBlockNodeSolution(), SNL_FEI_Structure::setNodalEqnInfo(), LinSysCoreFilter::storeNodalSendEqn(), SNL_FEI_Structure::storeNodalSendIndex(), SNL_FEI_Structure::storeNodalSendIndices(), LinSysCoreFilter::storePenNodeSendData(), NodeDatabase::synchronize(), and SNL_FEI_Structure::writeEqn2NodeMap().
|
inline |
Definition at line 94 of file fei_NodeDescriptor.hpp.
References ownerProc_.
Referenced by NodeCommMgr::adjustSharedOwnership(), SNL_FEI_Structure::finalizeActiveNodes(), and NodeCommMgr::initComplete().
|
inline |
Definition at line 96 of file fei_NodeDescriptor.hpp.
References blockList_, and fei::sortedListInsert().
Referenced by NodeCommMgr::exchangeSharedRemoteFieldsBlks(), SNL_FEI_Structure::finalizeActiveNodes(), and NodeCommMgr::processRecvMessage().
|
inline |
Definition at line 99 of file fei_NodeDescriptor.hpp.
References blockList_.
Referenced by NodeCommMgr::getGlobalMaxFieldsBlocks(), NodeCommMgr::getGlobalMaxFieldsBlocksSubdomains(), NodeCommMgr::packLocalNodesAndData(), and NodeCommMgr::packRemoteNodesAndData().
|
inline |
Definition at line 100 of file fei_NodeDescriptor.hpp.
References blockList_.
Referenced by NodeCommMgr::packLocalNodesAndData(), NodeCommMgr::packRemoteNodesAndData(), and SNL_FEI_Structure::setNumNodesAndEqnsPerBlock().
bool NodeDescriptor::hasBlockIndex | ( | unsigned | blk_idx | ) | const |
Definition at line 131 of file fei_NodeDescriptor.cpp.
References fei::binarySearch(), and blockList_.
Referenced by FEI_Implementation::getBlockNodeIDList(), FEDataFilter::putBlockNodeSolution(), and LinSysCoreFilter::putBlockNodeSolution().
|
private |
|
private |
|
private |
|
private |
Definition at line 109 of file fei_NodeDescriptor.hpp.
Referenced by getGlobalNodeID(), operator!=(), operator<(), operator==(), operator>(), and setGlobalNodeID().
|
private |
Definition at line 111 of file fei_NodeDescriptor.hpp.
Referenced by getNodeNumber(), and setNodeNumber().
|
private |
Definition at line 113 of file fei_NodeDescriptor.hpp.
Referenced by getFieldID(), getNumNodalDOF(), and setNumNodalDOF().
|
private |
Definition at line 115 of file fei_NodeDescriptor.hpp.
Referenced by addField(), getFieldEqnNumber(), getFieldID(), getFieldIDList(), setFieldEqnNumber(), and ~NodeDescriptor().
|
private |
Definition at line 116 of file fei_NodeDescriptor.hpp.
Referenced by addField(), getFieldEqnNumber(), getFieldEqnNumbers(), getFieldID(), setFieldEqnNumber(), and ~NodeDescriptor().
|
private |
Definition at line 120 of file fei_NodeDescriptor.hpp.
Referenced by addField(), getFieldEqnNumber(), getFieldID(), getNumFields(), setFieldEqnNumber(), and ~NodeDescriptor().
|
private |
Definition at line 122 of file fei_NodeDescriptor.hpp.
Referenced by getBlkEqnNumber(), and setBlkEqnNumber().
|
private |
Definition at line 124 of file fei_NodeDescriptor.hpp.
Referenced by getOwnerProc(), and setOwnerProc().
|
private |
Definition at line 126 of file fei_NodeDescriptor.hpp.
Referenced by addBlockIndex(), getBlockIndexList(), getNumBlocks(), and hasBlockIndex().