FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_FiniteElementData.hpp
1 #ifndef _fei_FiniteElementData_hpp_
2 #define _fei_FiniteElementData_hpp_
3 
4 #include <fei_Lookup.hpp>
5 
33 class FiniteElementData {
34  public:
35 
36  virtual ~FiniteElementData() {};
37 
43  virtual int parameters(int numParams, char** params) = 0;
44 
45 
53  virtual int setLookup(Lookup& lookup) = 0;
54 
55 
71  virtual int describeStructure(int numElemBlocks,
72  const int* numElemsPerBlock,
73  const int* numNodesPerElem,
74  const int* elemMatrixSizePerBlock,
75  int totalNumNodes,
76  int numSharedNodes,
77  int numMultCRs) = 0;
78 
91  virtual int setConnectivity(int elemBlockID,
92  int elemID,
93  int numNodes,
94  const int* nodeNumbers,
95  const int* numDofPerNode,
96  const int* dof_ids) = 0;
97 
109  virtual int setElemMatrix(int elemBlockID,
110  int elemID,
111  int numNodes,
112  const int* nodeNumbers,
113  const int* numDofPerNode,
114  const int* dof_ids,
115  const double *const * coefs) = 0;
116 
127  virtual int setElemVector(int elemBlockID,
128  int elemID,
129  int numNodes,
130  const int* nodeNumbers,
131  const int* numDofPerNode,
132  const int* dof_ids,
133  const double* coefs) = 0;
134 
141  virtual int setDirichletBCs(int numBCs,
142  const int* nodeNumbers,
143  const int* dof_ids,
144  const double* values) = 0;
145 
157  virtual int sumIntoMatrix(int numRowNodes,
158  const int* rowNodeNumbers,
159  const int* row_dof_ids,
160  const int* numColNodesPerRow,
161  const int* colNodeNumbers,
162  const int* col_dof_ids,
163  const double* coefs) = 0;
164 
165  virtual int sumIntoRHSVector(int numNodes,
166  const int* nodeNumbers,
167  const int* dof_ids,
168  const double* coefs) = 0;
169 
170  virtual int putIntoRHSVector(int numNodes,
171  const int* nodeNumbers,
172  const int* dof_ids,
173  const double* coefs) = 0;
174 
181  virtual int loadComplete() = 0;
182 
183 
193  virtual int launchSolver(int& solveStatus, int& iterations) = 0;
194 
200  virtual int reset() = 0;
201 
205  virtual int deleteConstraints() = 0;
206 
212  virtual int getSolnEntry(int nodeNumber,
213  int dof_id,
214  double& value) = 0;
215 
218  virtual int getMultiplierSoln(int CRID, double& lagrangeMultiplier) = 0;
219 
231  virtual int putNodalFieldData(int fieldID,
232  int fieldSize,
233  int numNodes,
234  const int* nodeNumbers,
235  const double* coefs) = 0;
236 
239  virtual int setMultiplierCR(int CRID,
240  int numNodes,
241  const int* nodeNumbers,
242  const int* dof_ids,
243  const double* coefWeights,
244  double rhsValue) = 0;
245 
248  virtual int setPenaltyCR(int CRID,
249  int numNodes,
250  const int* nodeNumbers,
251  const int* dof_ids,
252  const double* coefWeights,
253  double penaltyValue,
254  double rhsValue) = 0;
255 };
256 
257 #endif
258 
virtual int parameters(int numParams, char **params)=0
virtual int setPenaltyCR(int CRID, int numNodes, const int *nodeNumbers, const int *dof_ids, const double *coefWeights, double penaltyValue, double rhsValue)=0
virtual int reset()=0
virtual int loadComplete()=0
virtual int deleteConstraints()=0
virtual int getMultiplierSoln(int CRID, double &lagrangeMultiplier)=0
virtual int setConnectivity(int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *numDofPerNode, const int *dof_ids)=0
virtual int putNodalFieldData(int fieldID, int fieldSize, int numNodes, const int *nodeNumbers, const double *coefs)=0
virtual int setLookup(Lookup &lookup)=0
virtual int setElemVector(int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *numDofPerNode, const int *dof_ids, const double *coefs)=0
virtual int launchSolver(int &solveStatus, int &iterations)=0
virtual int setMultiplierCR(int CRID, int numNodes, const int *nodeNumbers, const int *dof_ids, const double *coefWeights, double rhsValue)=0
virtual int setElemMatrix(int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *numDofPerNode, const int *dof_ids, const double *const *coefs)=0
virtual int sumIntoMatrix(int numRowNodes, const int *rowNodeNumbers, const int *row_dof_ids, const int *numColNodesPerRow, const int *colNodeNumbers, const int *col_dof_ids, const double *coefs)=0
virtual int getSolnEntry(int nodeNumber, int dof_id, double &value)=0
virtual int describeStructure(int numElemBlocks, const int *numElemsPerBlock, const int *numNodesPerElem, const int *elemMatrixSizePerBlock, int totalNumNodes, int numSharedNodes, int numMultCRs)=0
virtual int setDirichletBCs(int numBCs, const int *nodeNumbers, const int *dof_ids, const double *values)=0