FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_Lookup.hpp
1 #ifndef _fei_Lookup_hpp_
2 #define _fei_Lookup_hpp_
3 
4 #include <fei_defs.h>
5 
40 class Lookup {
41  public:
43  virtual ~Lookup(){};
44 
49  virtual int getNumFields() = 0;
50 
54  virtual int getFieldSize(int fieldID) = 0;
55 
56 
60  virtual const int* getFieldIDsPtr() = 0;
61 
65  virtual const int* getFieldSizesPtr() = 0;
66 
67 
71  virtual int getNumElemBlocks() = 0;
72 
73 
77  virtual const GlobalID* getElemBlockIDs() = 0;
78 
79 
92  virtual void getElemBlockInfo(GlobalID blockID,
93  int& interleaveStrategy, int& lumpingStrategy,
94  int& numElemDOF, int& numElements,
95  int& numNodesPerElem, int& numEqnsPerElem) = 0;
96 
97 
103  virtual const int* getNumFieldsPerNode(GlobalID blockID) = 0;
104 
105 
111  virtual const int* const* getFieldIDsTable(GlobalID blockID) = 0;
112 
113 
119  virtual int getEqnNumber(int nodeNumber, int fieldID) = 0;
120 
121 
125  virtual int getAssociatedNodeNumber(int eqnNumber) = 0;
126 
127 
131  virtual int getAssociatedFieldID(int eqnNumber) = 0;
132 
133 
140  virtual bool isInLocalElement(int nodeNumber) = 0;
141 
155  virtual int getNumSubdomains(int nodeNumber) = 0;
156 
164  virtual int* getSubdomainList(int nodeNumber) = 0;
165 
168  virtual int getNumSharedNodes() = 0;
169 
172  virtual const int* getSharedNodeNumbers() = 0;
173 
178  virtual const int* getSharedNodeProcs(int nodeNumber) = 0;
179 
184  virtual int getNumSharingProcs(int nodeNumber) = 0;
185 
186  //- given a blk-eqn and a pt-eqn, return the pt-eqn's offset into the blk-eqn
187  // (i.e., distance from the 'beginning' of the blk-eqn)
188  //- given a blk-eqn, return the 'size', or number of pt-eqns corresponding
189  // to it.
194  virtual bool isExactlyBlkEqn(int ptEqn) = 0;
195 
199  virtual int ptEqnToBlkEqn(int ptEqn) = 0;
200 
206  virtual int getOffsetIntoBlkEqn(int blkEqn, int ptEqn) = 0;
207 
212  virtual int getBlkEqnSize(int blkEqn) = 0;
213 };
214 
215 #endif
216 
virtual int ptEqnToBlkEqn(int ptEqn)=0
virtual int getNumElemBlocks()=0
virtual const GlobalID * getElemBlockIDs()=0
virtual const int * getSharedNodeProcs(int nodeNumber)=0
virtual const int * getFieldIDsPtr()=0
virtual ~Lookup()
virtual const int * getFieldSizesPtr()=0
virtual int getBlkEqnSize(int blkEqn)=0
virtual int getNumSharedNodes()=0
virtual void getElemBlockInfo(GlobalID blockID, int &interleaveStrategy, int &lumpingStrategy, int &numElemDOF, int &numElements, int &numNodesPerElem, int &numEqnsPerElem)=0
virtual int getOffsetIntoBlkEqn(int blkEqn, int ptEqn)=0
virtual int getNumSubdomains(int nodeNumber)=0
virtual int getEqnNumber(int nodeNumber, int fieldID)=0
virtual const int * getSharedNodeNumbers()=0
virtual int * getSubdomainList(int nodeNumber)=0
virtual const int * getNumFieldsPerNode(GlobalID blockID)=0
virtual bool isInLocalElement(int nodeNumber)=0
virtual int getNumSharingProcs(int nodeNumber)=0
virtual int getAssociatedFieldID(int eqnNumber)=0
virtual bool isExactlyBlkEqn(int ptEqn)=0
virtual int getNumFields()=0
virtual const int *const * getFieldIDsTable(GlobalID blockID)=0
virtual int getFieldSize(int fieldID)=0
virtual int getAssociatedNodeNumber(int eqnNumber)=0