FEI Package Browser (Single Doxygen Collection)  Version of the Day
fei_BlockDescriptor.hpp
Go to the documentation of this file.
1 #ifndef _fei_BlockDescriptor_hpp_
2 #define _fei_BlockDescriptor_hpp_
3 
4 /*--------------------------------------------------------------------*/
5 /* Copyright 2005 Sandia Corporation. */
6 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
7 /* non-exclusive license for use of this work by or on behalf */
8 /* of the U.S. Government. Export of this program may require */
9 /* a license from the United States Government. */
10 /*--------------------------------------------------------------------*/
11 
12 #include "fei_macros.hpp"
13 #include "fei_defs.h"
14 #include <vector>
15 
68  public:
70  virtual ~BlockDescriptor();
71 
73  void setGlobalBlockID(GlobalID blockID) {blockID_ = blockID;}
74 
77  int setNumNodesPerElement(int numNodes);
79 
80  int* fieldsPerNodePtr(); //length of this list = getNumNodesPerElement()
81 
83 
88  int** fieldIDsTablePtr() { return(nodalFieldIDs_); }
89 
90  bool containsField(int fieldID);
91 
93  void setNumDistinctFields(int nFields) { numDistinctFields_ = nFields; }
94 
96  void setInterleaveStrategy(int strat) {interleaveStrategy_ = strat;}
97 
98  int getLumpingStrategy() const {return(lumpingStrategy_);}
99  void setLumpingStrategy(int strat) {lumpingStrategy_ = strat;}
100 
101  int getNumElements() {return(numElements_);}
102  void setNumElements(int numElems) {numElements_ = numElems;}
103 
105  int setElemDofFieldIDs(int numFields, const int* fieldIDs);
106  std::vector<int>& getElemDofFieldIDs() { return(elemDofFieldIDs_); }
107 
110 
111  //elemDOFEqnNumbers is of length numElements.
112  std::vector<int>& elemDOFEqnNumbers() {return(elemDOFEqnNumbers_);}
113 
115  void setNumEqnsPerElement(int numEqns) {numEqnsPerElement_ = numEqns;}
116 
118  void setNumBlkEqnsPerElement(int numBlkEqns) {numBlkEqnsPerElement_ = numBlkEqns;};
119 
121  void setNumActiveNodes(int num) {numActiveNodes_ = num;}
122 
124  void setTotalNumEqns(int numEqns) {totalNumEqns_ = numEqns;}
125 
126  private:
129  nodalFieldIDs_(NULL), fieldIDsAllocated_(false),
134 
136  {
137  return(*this);
138  }
139 
140  void destroyFieldArrays();
141 
143 
145 
146  int* numFieldsPerNode_; //list: length = numNodesPerElement_
147 
148  int** nodalFieldIDs_; //table: number-of-rows = numNodesPerElement_
149  // length-of-row[i] = numFieldsPerNode_[i]
151 
153 
154  std::vector<int> elemDofFieldIDs_;
155 
158 
160  int numElemDOFPerElement_; //number of elem-dof in each element (all
161  //elems in block have the same number)
162 
163  std::vector<int> elemDOFEqnNumbers_; //list -- length = numElements_
164  //holds eqn number of each element's first elemDOF
165 
168 
171 };
172 
173 #endif
174 
BlockDescriptor::setNumActiveNodes
void setNumActiveNodes(int num)
Definition: fei_BlockDescriptor.hpp:121
BlockDescriptor::elemDofFieldIDs_
std::vector< int > elemDofFieldIDs_
Definition: fei_BlockDescriptor.hpp:154
BlockDescriptor::setNumEqnsPerElement
void setNumEqnsPerElement(int numEqns)
Definition: fei_BlockDescriptor.hpp:115
BlockDescriptor::nodalFieldIDs_
int ** nodalFieldIDs_
Definition: fei_BlockDescriptor.hpp:148
BlockDescriptor::getTotalNumEqns
int getTotalNumEqns()
Definition: fei_BlockDescriptor.hpp:123
BlockDescriptor::operator=
BlockDescriptor & operator=(const BlockDescriptor &)
Definition: fei_BlockDescriptor.hpp:135
BlockDescriptor::getNumActiveNodes
int getNumActiveNodes()
Definition: fei_BlockDescriptor.hpp:120
BlockDescriptor::setNumElements
void setNumElements(int numElems)
Definition: fei_BlockDescriptor.hpp:102
BlockDescriptor::numElements_
int numElements_
Definition: fei_BlockDescriptor.hpp:159
BlockDescriptor::numBlkEqnsPerElement_
int numBlkEqnsPerElement_
Definition: fei_BlockDescriptor.hpp:167
BlockDescriptor::setGlobalBlockID
void setGlobalBlockID(GlobalID blockID)
Definition: fei_BlockDescriptor.hpp:73
BlockDescriptor::setInterleaveStrategy
void setInterleaveStrategy(int strat)
Definition: fei_BlockDescriptor.hpp:96
fei_macros.hpp
BlockDescriptor::setNumElemDOFPerElement
void setNumElemDOFPerElement(int ndof)
Definition: fei_BlockDescriptor.hpp:108
BlockDescriptor::numActiveNodes_
int numActiveNodes_
Definition: fei_BlockDescriptor.hpp:169
BlockDescriptor::allocateFieldIDsTable
int allocateFieldIDsTable()
Definition: fei_BlockDescriptor.cpp:85
BlockDescriptor::setTotalNumEqns
void setTotalNumEqns(int numEqns)
Definition: fei_BlockDescriptor.hpp:124
BlockDescriptor::fieldIDsAllocated_
bool fieldIDsAllocated_
Definition: fei_BlockDescriptor.hpp:150
BlockDescriptor::containsField
bool containsField(int fieldID)
Definition: fei_BlockDescriptor.cpp:110
BlockDescriptor::elemDOFEqnNumbers_
std::vector< int > elemDOFEqnNumbers_
Definition: fei_BlockDescriptor.hpp:163
BlockDescriptor::getGlobalBlockID
GlobalID getGlobalBlockID()
Definition: fei_BlockDescriptor.hpp:72
BlockDescriptor::blockID_
GlobalID blockID_
Definition: fei_BlockDescriptor.hpp:142
BlockDescriptor::getInterleaveStrategy
int getInterleaveStrategy() const
Definition: fei_BlockDescriptor.hpp:95
BlockDescriptor
Definition: fei_BlockDescriptor.hpp:67
BlockDescriptor::destroyFieldArrays
void destroyFieldArrays()
Definition: fei_BlockDescriptor.cpp:45
BlockDescriptor::numElemDOFPerElement_
int numElemDOFPerElement_
Definition: fei_BlockDescriptor.hpp:160
BlockDescriptor::BlockDescriptor
BlockDescriptor(const BlockDescriptor &)
Definition: fei_BlockDescriptor.hpp:127
BlockDescriptor::numFieldsPerNode_
int * numFieldsPerNode_
Definition: fei_BlockDescriptor.hpp:146
BlockDescriptor::getNumElements
int getNumElements()
Definition: fei_BlockDescriptor.hpp:101
BlockDescriptor::fieldsPerNodePtr
int * fieldsPerNodePtr()
Definition: fei_BlockDescriptor.cpp:79
BlockDescriptor::getNumBlkEqnsPerElement
int getNumBlkEqnsPerElement()
Definition: fei_BlockDescriptor.hpp:117
BlockDescriptor::lumpingStrategy_
int lumpingStrategy_
Definition: fei_BlockDescriptor.hpp:157
BlockDescriptor::getNumNodesPerElement
int getNumNodesPerElement() const
Definition: fei_BlockDescriptor.hpp:78
GlobalID
int GlobalID
Definition: fei_defs.h:60
BlockDescriptor::interleaveStrategy_
int interleaveStrategy_
Definition: fei_BlockDescriptor.hpp:156
BlockDescriptor::~BlockDescriptor
virtual ~BlockDescriptor()
Definition: fei_BlockDescriptor.cpp:37
fei_defs.h
BlockDescriptor::getLumpingStrategy
int getLumpingStrategy() const
Definition: fei_BlockDescriptor.hpp:98
BlockDescriptor::setNumDistinctFields
void setNumDistinctFields(int nFields)
Definition: fei_BlockDescriptor.hpp:93
BlockDescriptor::numEqnsPerElement_
int numEqnsPerElement_
Definition: fei_BlockDescriptor.hpp:166
BlockDescriptor::BlockDescriptor
BlockDescriptor()
Definition: fei_BlockDescriptor.cpp:15
BlockDescriptor::getNumElemDOFPerElement
int getNumElemDOFPerElement()
Definition: fei_BlockDescriptor.hpp:109
BlockDescriptor::setElemDofFieldIDs
int setElemDofFieldIDs(int numFields, const int *fieldIDs)
Definition: fei_BlockDescriptor.cpp:140
BlockDescriptor::numNodesPerElement_
int numNodesPerElement_
Definition: fei_BlockDescriptor.hpp:144
BlockDescriptor::getNumElemDofFieldsPerElement
size_t getNumElemDofFieldsPerElement()
Definition: fei_BlockDescriptor.hpp:104
BlockDescriptor::getNumDistinctFields
int getNumDistinctFields()
Definition: fei_BlockDescriptor.hpp:92
BlockDescriptor::elemDOFEqnNumbers
std::vector< int > & elemDOFEqnNumbers()
Definition: fei_BlockDescriptor.hpp:112
BlockDescriptor::setLumpingStrategy
void setLumpingStrategy(int strat)
Definition: fei_BlockDescriptor.hpp:99
BlockDescriptor::numDistinctFields_
int numDistinctFields_
Definition: fei_BlockDescriptor.hpp:152
BlockDescriptor::setNumBlkEqnsPerElement
void setNumBlkEqnsPerElement(int numBlkEqns)
Definition: fei_BlockDescriptor.hpp:118
BlockDescriptor::setNumNodesPerElement
int setNumNodesPerElement(int numNodes)
Definition: fei_BlockDescriptor.cpp:60
BlockDescriptor::fieldIDsTablePtr
int ** fieldIDsTablePtr()
Definition: fei_BlockDescriptor.hpp:88
BlockDescriptor::getNumEqnsPerElement
int getNumEqnsPerElement()
Definition: fei_BlockDescriptor.hpp:114
BlockDescriptor::getElemDofFieldIDs
std::vector< int > & getElemDofFieldIDs()
Definition: fei_BlockDescriptor.hpp:106
BlockDescriptor::totalNumEqns_
int totalNumEqns_
Definition: fei_BlockDescriptor.hpp:170