1 #ifndef _fei_BlockDescriptor_hpp_
2 #define _fei_BlockDescriptor_hpp_
12 #include "fei_macros.hpp"
72 GlobalID getGlobalBlockID() {
return(blockID_);}
73 void setGlobalBlockID(GlobalID blockID) {blockID_ = blockID;}
78 int getNumNodesPerElement()
const {
return numNodesPerElement_; }
80 int* fieldsPerNodePtr();
82 int allocateFieldIDsTable();
90 bool containsField(
int fieldID);
92 int getNumDistinctFields() {
return( numDistinctFields_ ); }
93 void setNumDistinctFields(
int nFields) { numDistinctFields_ = nFields; }
95 int getInterleaveStrategy()
const {
return(interleaveStrategy_);}
96 void setInterleaveStrategy(
int strat) {interleaveStrategy_ = strat;}
98 int getLumpingStrategy()
const {
return(lumpingStrategy_);}
99 void setLumpingStrategy(
int strat) {lumpingStrategy_ = strat;}
101 int getNumElements() {
return(numElements_);}
102 void setNumElements(
int numElems) {numElements_ = numElems;}
104 size_t getNumElemDofFieldsPerElement() {
return(elemDofFieldIDs_.size());}
105 int setElemDofFieldIDs(
int numFields,
const int* fieldIDs);
106 std::vector<int>& getElemDofFieldIDs() {
return(elemDofFieldIDs_); }
108 void setNumElemDOFPerElement(
int ndof) { numElemDOFPerElement_ = ndof; }
109 int getNumElemDOFPerElement() {
return(numElemDOFPerElement_); }
112 std::vector<int>& elemDOFEqnNumbers() {
return(elemDOFEqnNumbers_);}
114 int getNumEqnsPerElement() {
return(numEqnsPerElement_);};
115 void setNumEqnsPerElement(
int numEqns) {numEqnsPerElement_ = numEqns;}
117 int getNumBlkEqnsPerElement() {
return(numBlkEqnsPerElement_);}
118 void setNumBlkEqnsPerElement(
int numBlkEqns) {numBlkEqnsPerElement_ = numBlkEqns;};
120 int getNumActiveNodes() {
return(numActiveNodes_);}
121 void setNumActiveNodes(
int num) {numActiveNodes_ = num;}
123 int getTotalNumEqns() {
return(totalNumEqns_);}
124 void setTotalNumEqns(
int numEqns) {totalNumEqns_ = numEqns;}
128 : blockID_(0), numNodesPerElement_(0), numFieldsPerNode_(NULL),
129 nodalFieldIDs_(NULL), fieldIDsAllocated_(false),
130 numDistinctFields_(0), elemDofFieldIDs_(), interleaveStrategy_(0),
131 lumpingStrategy_(0), numElements_(0), numElemDOFPerElement_(0),
132 elemDOFEqnNumbers_(), numEqnsPerElement_(0), numBlkEqnsPerElement_(0),
133 numActiveNodes_(0), totalNumEqns_(0) {}
140 void destroyFieldArrays();
144 int numNodesPerElement_;
146 int* numFieldsPerNode_;
148 int** nodalFieldIDs_;
150 bool fieldIDsAllocated_;
152 int numDistinctFields_;
154 std::vector<int> elemDofFieldIDs_;
156 int interleaveStrategy_;
157 int lumpingStrategy_;
160 int numElemDOFPerElement_;
163 std::vector<int> elemDOFEqnNumbers_;
166 int numEqnsPerElement_;
167 int numBlkEqnsPerElement_;
int ** fieldIDsTablePtr()
int setNumNodesPerElement(int numNodes)