1 #ifndef _NodeDescriptor_hpp_
2 #define _NodeDescriptor_hpp_
12 #include <fei_macros.hpp>
14 #include <fei_ArrayUtils.hpp>
41 : nodeID_(src.nodeID_), nodeNumber_(src.nodeNumber_),
42 numNodalDOF_(0), fieldIDList_(NULL),
43 fieldEqnNumbers_(NULL), numFields_(0), blkEqnNumber_(0),
44 ownerProc_(src.ownerProc_), blockList_()
49 GlobalID getGlobalNodeID()
const {
return(nodeID_);}
50 void setGlobalNodeID(GlobalID node) {nodeID_ = node;}
52 int getNodeNumber()
const {
return(nodeNumber_);}
53 void setNodeNumber(
int nn) {nodeNumber_ = nn;};
55 int getBlkEqnNumber()
const {
return(blkEqnNumber_);}
56 void setBlkEqnNumber(
int blkEqn) {blkEqnNumber_ = blkEqn;}
58 int getNumNodalDOF()
const {
return(numNodalDOF_);}
59 void setNumNodalDOF(
int dof) {numNodalDOF_ = dof;}
61 void addField(
int fieldID);
62 void setFieldEqnNumber(
int fieldID,
int eqn);
64 int getNumFields()
const {
return(numFields_);}
65 const int* getFieldIDList()
const {
return(fieldIDList_);}
66 const int* getFieldEqnNumbers()
const {
return(fieldEqnNumbers_);}
79 void getFieldID(
int eqnNumber,
int& fieldID,
int& offset_into_field)
const;
82 {
return( nodeID_ == nd.nodeID_ ); }
85 {
return( nodeID_ != nd.nodeID_ ); }
88 {
return( nodeID_ < nd.nodeID_ ); }
91 {
return( nodeID_ > nd.nodeID_ ); }
93 int getOwnerProc()
const {
return(ownerProc_);}
94 void setOwnerProc(
int proc) {ownerProc_ = proc;}
96 void addBlockIndex(
unsigned blk_idx)
99 size_t getNumBlocks()
const {
return blockList_.size();}
100 const std::vector<unsigned>& getBlockIndexList()
const {
return(blockList_);}
101 bool hasBlockIndex(
unsigned blk_idx)
const;
106 void allocFieldLists();
107 void allocBlockList();
116 int* fieldEqnNumbers_;
126 std::vector<unsigned> blockList_;
int sortedListInsert(const T &item, std::vector< T > &list)
bool getFieldEqnNumber(int fieldID, int &eqnNumber) const
void getFieldID(int eqnNumber, int &fieldID, int &offset_into_field) const