FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
driverData.hpp
Go to the documentation of this file.
1/*--------------------------------------------------------------------*/
2/* Copyright 2005 Sandia Corporation. */
3/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4/* non-exclusive license for use of this work by or on behalf */
5/* of the U.S. Government. Export of this program may require */
6/* a license from the United States Government. */
7/*--------------------------------------------------------------------*/
8
9#ifndef _driverData_h_
10#define _driverData_h_
11
12#include <fei_macros.hpp>
13#include <fei_defs.h>
14
15class initElem {
16 public:
19 {
20 delete [] nodeIDs;
21 }
26};
27
28class sumInElem {
29 public:
30 sumInElem() : stiff1D(NULL), stiffness(NULL), load(NULL) {}
32 {
33 delete [] nodeIDs;
34 delete [] stiff1D;
35 delete [] stiffness;
36 delete [] load;
37 }
43 double* stiff1D;
44 double** stiffness;
45 double* load;
47};
48
49class nodeBC {
50 public:
51 nodeBC():nodeIDs(NULL), alpha(NULL), beta(NULL), gamma(NULL) {}
53 {
54 for(int i=0; i<numNodes; ++i) {
55 delete [] alpha[i];
56 delete [] beta[i];
57 delete [] gamma[i];
58 }
59 delete [] alpha;
60 delete [] beta;
61 delete [] gamma;
62 delete [] nodeIDs;
63 }
68 double** alpha;
69 double** beta;
70 double** gamma;
71};
72
73class initCR {
74 public:
77 {
78 delete [] nodeIDs;
79 delete [] fieldIDs;
80 }
81
85 int CRID;
86};
87
88class loadCR {
89 public:
90 loadCR() {}
92 {
93 delete [] fieldIDs;
94 delete [] fieldSizes;
95 delete [] weights;
96 delete [] nodeIDs;
97 }
98
103 double* weights;
104 double CRValue;
105 double penValue;
106 int CRID;
107};
108
110 public:
113 {
114 for(int i=0; i<numNodes; ++i) delete [] sharedProcIDs[i];
115 delete [] sharedProcIDs;
116 delete [] numProcsPerNode;
117 delete [] nodeIDs;
118 }
119
124};
125
127 public:
130 {
131 for(size_t i=0; i<paramList.size(); ++i) delete [] paramList[i];
132 }
133
134 std::vector<char*> paramList;
135};
136
138 public:
139 setIDLists() : matrixIDs(NULL), rhsIDs(NULL) {}
140 ~setIDLists(){delete [] matrixIDs; delete [] rhsIDs;}
141
144 int* rhsIDs;
146};
147
149 public:
152
158 double* estimates;
159};
160
162 public:
163 driverData();
164 ~driverData();
165
166 int readData(const char* fileName);
167
172 int call_fei_method(const char* method, FEI* fei);
173
174 std::vector<const char*>& get_methodNames() { return( methodNames ); }
175
176 private:
177 int readData(FEI_ISTREAM* instr, char* keyword);
178 int getKeyword(FEI_ISTREAM* instr, char*& keyword);
179
180 int is_reg_char(char c);
181 int skipWhite(FEI_ISTREAM* instr);
182 int readData(FEI_ISTREAM* instr, int& n);
183 int readData(FEI_ISTREAM* instr, double& val);
184 int appendName(const char* name);
185
186 std::vector<const char*> methodNames;
187 char* temp_;
189
191
195
201
202 std::vector<initElem*> initElems_;
204
205 std::vector<sumInElem*> sumInElems_;
207
208 std::vector<sumInElem*> sumInElemMatrix_;
210
211 std::vector<sumInElem*> sumInElemRHS_;
213
218
219 std::vector<nodeBC*> loadNodeBCs_;
221
222 std::vector<initCR*> initCRMult_;
224
225 std::vector<loadCR*> loadCRMult_;
227
228 std::vector<sharedNodes*> initSharedNodes_;
230
231 std::vector<parameters*> parameters_;
233
234 std::vector<setIDLists*> setIDLists_;
236
237 std::vector<int> setCurrentMatrix_;
239
240 std::vector<int> setCurrentRHS_;
242
243 std::vector<putBlockFieldNodeSolution*> putBlockFieldNodeSolution_;
245};
246
247#endif // _driverData_h_
Definition: FEI.hpp:144
int initElemBlock_numInts_
Definition: driverData.hpp:196
int * initElemBlock_ints_
Definition: driverData.hpp:197
std::vector< const char * > & get_methodNames()
Definition: driverData.hpp:174
double resetRHSVector_
Definition: driverData.hpp:216
int appendName(const char *name)
Definition: driverData.cpp:792
int skipWhite(FEI_ISTREAM *instr)
Definition: driverData.cpp:834
int readData(const char *fileName)
Definition: driverData.cpp:105
std::vector< sumInElem * > sumInElems_
Definition: driverData.hpp:205
int sumInElemCounter_
Definition: driverData.hpp:206
int setCurrentRHSCounter_
Definition: driverData.hpp:241
std::vector< loadCR * > loadCRMult_
Definition: driverData.hpp:225
int putBlockFieldNodeSolutionCounter_
Definition: driverData.hpp:244
double resetMatrix_
Definition: driverData.hpp:215
int * initFields_fieldIDs_
Definition: driverData.hpp:194
int call_fei_method(const char *method, FEI *fei)
Definition: driverData.cpp:134
std::vector< parameters * > parameters_
Definition: driverData.hpp:231
std::vector< sumInElem * > sumInElemRHS_
Definition: driverData.hpp:211
std::vector< nodeBC * > loadNodeBCs_
Definition: driverData.hpp:219
int parametersCounter_
Definition: driverData.hpp:232
int * initFields_fieldSizes_
Definition: driverData.hpp:193
int initSharedNodesCounter_
Definition: driverData.hpp:229
int * initElemBlock_fieldsPerNode_
Definition: driverData.hpp:198
double resetSystem_
Definition: driverData.hpp:214
int loadCRMultCounter_
Definition: driverData.hpp:226
int initCRMultCounter_
Definition: driverData.hpp:223
std::vector< int > setCurrentMatrix_
Definition: driverData.hpp:237
int ** initElemBlock_fieldIDs_
Definition: driverData.hpp:199
std::vector< const char * > methodNames
Definition: driverData.hpp:186
std::vector< putBlockFieldNodeSolution * > putBlockFieldNodeSolution_
Definition: driverData.hpp:243
std::vector< setIDLists * > setIDLists_
Definition: driverData.hpp:234
int setCurrentMatrixCounter_
Definition: driverData.hpp:238
std::vector< sharedNodes * > initSharedNodes_
Definition: driverData.hpp:228
int is_reg_char(char c)
Definition: driverData.cpp:826
char * temp_
Definition: driverData.hpp:187
std::vector< initElem * > initElems_
Definition: driverData.hpp:202
int setIDListsCounter_
Definition: driverData.hpp:235
int loadNodeBCsCounter_
Definition: driverData.hpp:220
int initFields_numFields_
Definition: driverData.hpp:192
double resetInitialGuess_
Definition: driverData.hpp:217
int getKeyword(FEI_ISTREAM *instr, char *&keyword)
Definition: driverData.cpp:801
int initElemCounter_
Definition: driverData.hpp:203
int sumInElemMatrixCounter_
Definition: driverData.hpp:209
std::vector< sumInElem * > sumInElemMatrix_
Definition: driverData.hpp:208
int * initElemBlock_elemDofFieldIDs_
Definition: driverData.hpp:200
std::vector< initCR * > initCRMult_
Definition: driverData.hpp:222
std::vector< int > setCurrentRHS_
Definition: driverData.hpp:240
int sumInElemRHSCounter_
Definition: driverData.hpp:212
int CRID
Definition: driverData.hpp:85
GlobalID * nodeIDs
Definition: driverData.hpp:83
int * fieldIDs
Definition: driverData.hpp:84
int numNodes
Definition: driverData.hpp:82
GlobalID * nodeIDs
Definition: driverData.hpp:25
int numNodes
Definition: driverData.hpp:24
GlobalID elemBlockID
Definition: driverData.hpp:22
GlobalID elemID
Definition: driverData.hpp:23
double penValue
Definition: driverData.hpp:105
double CRValue
Definition: driverData.hpp:104
GlobalID * nodeIDs
Definition: driverData.hpp:100
int CRID
Definition: driverData.hpp:106
int * fieldSizes
Definition: driverData.hpp:102
double * weights
Definition: driverData.hpp:103
int numNodes
Definition: driverData.hpp:99
int * fieldIDs
Definition: driverData.hpp:101
int fieldID
Definition: driverData.hpp:66
int numNodes
Definition: driverData.hpp:64
int fieldSize
Definition: driverData.hpp:67
double ** alpha
Definition: driverData.hpp:68
double ** gamma
Definition: driverData.hpp:70
GlobalID * nodeIDs
Definition: driverData.hpp:65
double ** beta
Definition: driverData.hpp:69
std::vector< char * > paramList
Definition: driverData.hpp:134
int * rhsIDs
Definition: driverData.hpp:144
int * matrixIDs
Definition: driverData.hpp:142
GlobalID * nodeIDs
Definition: driverData.hpp:121
int ** sharedProcIDs
Definition: driverData.hpp:123
int * numProcsPerNode
Definition: driverData.hpp:122
double * load
Definition: driverData.hpp:45
GlobalID * nodeIDs
Definition: driverData.hpp:41
int elemFormat
Definition: driverData.hpp:46
double * stiff1D
Definition: driverData.hpp:43
double ** stiffness
Definition: driverData.hpp:44
GlobalID elemID
Definition: driverData.hpp:39
GlobalID elemBlockID
Definition: driverData.hpp:38
int numNodes
Definition: driverData.hpp:40
int GlobalID
Definition: fei_defs.h:60
#define FEI_ISTREAM