FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
NodeDescriptor Class Reference

#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

NodeDescriptoroperator= (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_

Detailed Description

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.

Constructor & Destructor Documentation

◆ NodeDescriptor() [1/2]

◆ NodeDescriptor() [2/2]

NodeDescriptor::NodeDescriptor ( const NodeDescriptor & src)
inline

◆ ~NodeDescriptor()

NodeDescriptor::~NodeDescriptor ( )
virtual

Definition at line 32 of file fei_NodeDescriptor.cpp.

References fieldEqnNumbers_, fieldIDList_, and numFields_.

Member Function Documentation

◆ getGlobalNodeID()

◆ setGlobalNodeID()

void NodeDescriptor::setGlobalNodeID ( GlobalID node)
inline

Definition at line 50 of file fei_NodeDescriptor.hpp.

References nodeID_.

Referenced by NodeDatabase::initNodeID().

◆ getNodeNumber()

◆ setNodeNumber()

void NodeDescriptor::setNodeNumber ( int nn)
inline

Definition at line 53 of file fei_NodeDescriptor.hpp.

References nodeNumber_.

Referenced by NodeCommMgr::processRecvMessage(), and NodeDatabase::synchronize().

◆ getBlkEqnNumber()

◆ setBlkEqnNumber()

void NodeDescriptor::setBlkEqnNumber ( int blkEqn)
inline

◆ getNumNodalDOF()

◆ setNumNodalDOF()

void NodeDescriptor::setNumNodalDOF ( int dof)
inline

◆ addField()

void NodeDescriptor::addField ( int fieldID)

◆ setFieldEqnNumber()

void NodeDescriptor::setFieldEqnNumber ( int fieldID,
int eqn )

◆ getNumFields()

◆ getFieldIDList()

◆ getFieldEqnNumbers()

◆ getFieldEqnNumber()

bool NodeDescriptor::getFieldEqnNumber ( int fieldID,
int & eqnNumber ) const

Given a fieldID, return the first equation number associated with that field at this node.

Parameters
fieldID
eqnNumber
Returns
false if fieldID is not present at this node

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(), 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().

◆ getFieldID()

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().

◆ operator==()

bool NodeDescriptor::operator== ( const NodeDescriptor & nd) const
inline

Definition at line 81 of file fei_NodeDescriptor.hpp.

References NodeDescriptor(), and nodeID_.

◆ operator!=()

bool NodeDescriptor::operator!= ( const NodeDescriptor & nd) const
inline

Definition at line 84 of file fei_NodeDescriptor.hpp.

References NodeDescriptor(), and nodeID_.

◆ operator<()

bool NodeDescriptor::operator< ( const NodeDescriptor & nd) const
inline

Definition at line 87 of file fei_NodeDescriptor.hpp.

References NodeDescriptor(), and nodeID_.

◆ operator>()

bool NodeDescriptor::operator> ( const NodeDescriptor & nd) const
inline

Definition at line 90 of file fei_NodeDescriptor.hpp.

References NodeDescriptor(), and nodeID_.

◆ getOwnerProc()

◆ setOwnerProc()

void NodeDescriptor::setOwnerProc ( int proc)
inline

Definition at line 94 of file fei_NodeDescriptor.hpp.

References ownerProc_.

Referenced by SNL_FEI_Structure::finalizeActiveNodes().

◆ addBlockIndex()

void NodeDescriptor::addBlockIndex ( unsigned blk_idx)
inline

◆ getNumBlocks()

size_t NodeDescriptor::getNumBlocks ( ) const
inline

◆ getBlockIndexList()

const std::vector< unsigned > & NodeDescriptor::getBlockIndexList ( ) const
inline

◆ hasBlockIndex()

bool NodeDescriptor::hasBlockIndex ( unsigned blk_idx) const

◆ operator=()

NodeDescriptor & NodeDescriptor::operator= ( const NodeDescriptor & src)
private

References NodeDescriptor().

◆ allocFieldLists()

void NodeDescriptor::allocFieldLists ( )
private

◆ allocBlockList()

void NodeDescriptor::allocBlockList ( )
private

Member Data Documentation

◆ nodeID_

GlobalID NodeDescriptor::nodeID_
private

◆ nodeNumber_

int NodeDescriptor::nodeNumber_
private

◆ numNodalDOF_

int NodeDescriptor::numNodalDOF_
private

◆ fieldIDList_

int* NodeDescriptor::fieldIDList_
private

◆ fieldEqnNumbers_

int* NodeDescriptor::fieldEqnNumbers_
private

◆ numFields_

int NodeDescriptor::numFields_
private

◆ blkEqnNumber_

int NodeDescriptor::blkEqnNumber_
private

◆ ownerProc_

int NodeDescriptor::ownerProc_
private

Definition at line 124 of file fei_NodeDescriptor.hpp.

Referenced by getOwnerProc(), NodeDescriptor(), NodeDescriptor(), and setOwnerProc().

◆ blockList_

std::vector<unsigned> NodeDescriptor::blockList_
private

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