FEI Package Browser (Single Doxygen Collection)  Version of the Day
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 
15 class initElem {
16  public:
19  {
20  delete [] nodeIDs;
21  }
24  int numNodes;
26 };
27 
28 class 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  }
40  int numNodes;
42  int numRows;
43  double* stiff1D;
44  double** stiffness;
45  double* load;
47 };
48 
49 class 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  }
64  int numNodes;
66  int fieldID;
67  int fieldSize;
68  double** alpha;
69  double** beta;
70  double** gamma;
71 };
72 
73 class initCR {
74  public:
75  initCR(){}
77  {
78  delete [] nodeIDs;
79  delete [] fieldIDs;
80  }
81 
82  int numNodes;
84  int* fieldIDs;
85  int CRID;
86 };
87 
88 class loadCR {
89  public:
90  loadCR() {}
92  {
93  delete [] fieldIDs;
94  delete [] fieldSizes;
95  delete [] weights;
96  delete [] nodeIDs;
97  }
98 
99  int numNodes;
101  int* fieldIDs;
103  double* weights;
104  double CRValue;
105  double penValue;
106  int CRID;
107 };
108 
109 class sharedNodes {
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 
120  int numNodes;
124 };
125 
126 class parameters {
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 
137 class setIDLists {
138  public:
139  setIDLists() : matrixIDs(NULL), rhsIDs(NULL) {}
140  ~setIDLists(){delete [] matrixIDs; delete [] rhsIDs;}
141 
142  int* matrixIDs;
144  int* rhsIDs;
145  int numRHSs;
146 };
147 
149  public:
152 
154  int fieldID;
156  int numNodes;
158  double* estimates;
159 };
160 
161 class driverData {
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_;
188  int tempLen_;
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 
214  double resetSystem_;
215  double resetMatrix_;
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_
putBlockFieldNodeSolution::~putBlockFieldNodeSolution
~putBlockFieldNodeSolution()
Definition: driverData.hpp:151
loadCR::weights
double * weights
Definition: driverData.hpp:103
driverData::resetMatrix_
double resetMatrix_
Definition: driverData.hpp:215
parameters::parameters
parameters()
Definition: driverData.hpp:128
nodeBC::beta
double ** beta
Definition: driverData.hpp:69
driverData::loadCRMult_
std::vector< loadCR * > loadCRMult_
Definition: driverData.hpp:225
initCR::numNodes
int numNodes
Definition: driverData.hpp:82
driverData::setCurrentMatrix_
std::vector< int > setCurrentMatrix_
Definition: driverData.hpp:237
sharedNodes::~sharedNodes
~sharedNodes()
Definition: driverData.hpp:112
driverData::solveType_
int solveType_
Definition: driverData.hpp:190
driverData::parametersCounter_
int parametersCounter_
Definition: driverData.hpp:232
nodeBC::numNodes
int numNodes
Definition: driverData.hpp:64
driverData::loadCRMultCounter_
int loadCRMultCounter_
Definition: driverData.hpp:226
driverData::initFields_fieldSizes_
int * initFields_fieldSizes_
Definition: driverData.hpp:193
parameters::~parameters
~parameters()
Definition: driverData.hpp:129
loadCR::~loadCR
~loadCR()
Definition: driverData.hpp:91
nodeBC::~nodeBC
~nodeBC()
Definition: driverData.hpp:52
driverData::~driverData
~driverData()
Definition: driverData.cpp:72
driverData::initSharedNodesCounter_
int initSharedNodesCounter_
Definition: driverData.hpp:229
sumInElem
Definition: driverData.hpp:28
putBlockFieldNodeSolution::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:157
driverData::loadNodeBCsCounter_
int loadNodeBCsCounter_
Definition: driverData.hpp:220
setIDLists::~setIDLists
~setIDLists()
Definition: driverData.hpp:140
driverData
Definition: driverData.hpp:161
initCR::~initCR
~initCR()
Definition: driverData.hpp:76
initElem::elemBlockID
GlobalID elemBlockID
Definition: driverData.hpp:22
initElem::initElem
initElem()
Definition: driverData.hpp:17
driverData::setIDListsCounter_
int setIDListsCounter_
Definition: driverData.hpp:235
fei_macros.hpp
driverData::setIDLists_
std::vector< setIDLists * > setIDLists_
Definition: driverData.hpp:234
loadCR::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:100
initElem::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:25
driverData::initElemBlock_fieldsPerNode_
int * initElemBlock_fieldsPerNode_
Definition: driverData.hpp:198
putBlockFieldNodeSolution::fieldID
int fieldID
Definition: driverData.hpp:154
sharedNodes::numNodes
int numNodes
Definition: driverData.hpp:120
sumInElem::~sumInElem
~sumInElem()
Definition: driverData.hpp:31
sumInElem::numRows
int numRows
Definition: driverData.hpp:42
driverData::driverData
driverData()
Definition: driverData.cpp:30
sumInElem::load
double * load
Definition: driverData.hpp:45
driverData::methodNames
std::vector< const char * > methodNames
Definition: driverData.hpp:186
driverData::appendName
int appendName(const char *name)
Definition: driverData.cpp:792
loadCR::fieldSizes
int * fieldSizes
Definition: driverData.hpp:102
loadCR::CRID
int CRID
Definition: driverData.hpp:106
driverData::setCurrentMatrixCounter_
int setCurrentMatrixCounter_
Definition: driverData.hpp:238
initCR::CRID
int CRID
Definition: driverData.hpp:85
driverData::loadNodeBCs_
std::vector< nodeBC * > loadNodeBCs_
Definition: driverData.hpp:219
putBlockFieldNodeSolution::estimates
double * estimates
Definition: driverData.hpp:158
loadCR::fieldIDs
int * fieldIDs
Definition: driverData.hpp:101
driverData::readData
int readData(const char *fileName)
Definition: driverData.cpp:105
FEI
Definition: FEI.hpp:144
sharedNodes
Definition: driverData.hpp:109
loadCR::loadCR
loadCR()
Definition: driverData.hpp:90
driverData::get_methodNames
std::vector< const char * > & get_methodNames()
Definition: driverData.hpp:174
driverData::sumInElemCounter_
int sumInElemCounter_
Definition: driverData.hpp:206
driverData::initElemBlock_fieldIDs_
int ** initElemBlock_fieldIDs_
Definition: driverData.hpp:199
driverData::resetSystem_
double resetSystem_
Definition: driverData.hpp:214
loadCR::penValue
double penValue
Definition: driverData.hpp:105
driverData::resetRHSVector_
double resetRHSVector_
Definition: driverData.hpp:216
driverData::sumInElems_
std::vector< sumInElem * > sumInElems_
Definition: driverData.hpp:205
nodeBC::fieldID
int fieldID
Definition: driverData.hpp:66
putBlockFieldNodeSolution::elemBlockID
int elemBlockID
Definition: driverData.hpp:153
driverData::sumInElemRHS_
std::vector< sumInElem * > sumInElemRHS_
Definition: driverData.hpp:211
driverData::sumInElemMatrixCounter_
int sumInElemMatrixCounter_
Definition: driverData.hpp:209
initCR::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:83
loadCR::numNodes
int numNodes
Definition: driverData.hpp:99
driverData::sumInElemMatrix_
std::vector< sumInElem * > sumInElemMatrix_
Definition: driverData.hpp:208
initCR::initCR
initCR()
Definition: driverData.hpp:75
setIDLists::numRHSs
int numRHSs
Definition: driverData.hpp:145
driverData::initElemBlock_ints_
int * initElemBlock_ints_
Definition: driverData.hpp:197
driverData::initElemCounter_
int initElemCounter_
Definition: driverData.hpp:203
driverData::is_reg_char
int is_reg_char(char c)
Definition: driverData.cpp:826
sumInElem::numNodes
int numNodes
Definition: driverData.hpp:40
sumInElem::stiffness
double ** stiffness
Definition: driverData.hpp:44
sumInElem::sumInElem
sumInElem()
Definition: driverData.hpp:30
nodeBC::nodeBC
nodeBC()
Definition: driverData.hpp:51
nodeBC::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:65
sharedNodes::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:121
driverData::initFields_numFields_
int initFields_numFields_
Definition: driverData.hpp:192
nodeBC::alpha
double ** alpha
Definition: driverData.hpp:68
nodeBC::gamma
double ** gamma
Definition: driverData.hpp:70
driverData::initCRMult_
std::vector< initCR * > initCRMult_
Definition: driverData.hpp:222
sumInElem::elemBlockID
GlobalID elemBlockID
Definition: driverData.hpp:38
GlobalID
int GlobalID
Definition: fei_defs.h:60
setIDLists::rhsIDs
int * rhsIDs
Definition: driverData.hpp:144
initElem::elemID
GlobalID elemID
Definition: driverData.hpp:23
sumInElem::nodeIDs
GlobalID * nodeIDs
Definition: driverData.hpp:41
setIDLists::matrixIDs
int * matrixIDs
Definition: driverData.hpp:142
fei
Definition: fei_ArrayUtils.hpp:16
driverData::initElemBlock_numInts_
int initElemBlock_numInts_
Definition: driverData.hpp:196
driverData::setCurrentRHSCounter_
int setCurrentRHSCounter_
Definition: driverData.hpp:241
driverData::initSharedNodes_
std::vector< sharedNodes * > initSharedNodes_
Definition: driverData.hpp:228
driverData::putBlockFieldNodeSolution_
std::vector< putBlockFieldNodeSolution * > putBlockFieldNodeSolution_
Definition: driverData.hpp:243
sharedNodes::sharedNodes
sharedNodes()
Definition: driverData.hpp:111
driverData::initCRMultCounter_
int initCRMultCounter_
Definition: driverData.hpp:223
putBlockFieldNodeSolution::numNodes
int numNodes
Definition: driverData.hpp:156
sumInElem::stiff1D
double * stiff1D
Definition: driverData.hpp:43
fei_defs.h
putBlockFieldNodeSolution
Definition: driverData.hpp:148
driverData::initFields_fieldIDs_
int * initFields_fieldIDs_
Definition: driverData.hpp:194
initElem::numNodes
int numNodes
Definition: driverData.hpp:24
setIDLists::numMatrices
int numMatrices
Definition: driverData.hpp:143
sumInElem::elemID
GlobalID elemID
Definition: driverData.hpp:39
nodeBC::fieldSize
int fieldSize
Definition: driverData.hpp:67
driverData::getKeyword
int getKeyword(FEI_ISTREAM *instr, char *&keyword)
Definition: driverData.cpp:801
nodeBC
Definition: driverData.hpp:49
putBlockFieldNodeSolution::putBlockFieldNodeSolution
putBlockFieldNodeSolution()
Definition: driverData.hpp:150
driverData::setCurrentRHS_
std::vector< int > setCurrentRHS_
Definition: driverData.hpp:240
driverData::putBlockFieldNodeSolutionCounter_
int putBlockFieldNodeSolutionCounter_
Definition: driverData.hpp:244
initElem::~initElem
~initElem()
Definition: driverData.hpp:18
initElem
Definition: driverData.hpp:15
parameters::paramList
std::vector< char * > paramList
Definition: driverData.hpp:134
initCR::fieldIDs
int * fieldIDs
Definition: driverData.hpp:84
driverData::skipWhite
int skipWhite(FEI_ISTREAM *instr)
Definition: driverData.cpp:834
sumInElem::elemFormat
int elemFormat
Definition: driverData.hpp:46
driverData::call_fei_method
int call_fei_method(const char *method, FEI *fei)
Definition: driverData.cpp:134
driverData::tempLen_
int tempLen_
Definition: driverData.hpp:188
driverData::sumInElemRHSCounter_
int sumInElemRHSCounter_
Definition: driverData.hpp:212
driverData::resetInitialGuess_
double resetInitialGuess_
Definition: driverData.hpp:217
loadCR::CRValue
double CRValue
Definition: driverData.hpp:104
parameters
Definition: driverData.hpp:126
sharedNodes::sharedProcIDs
int ** sharedProcIDs
Definition: driverData.hpp:123
FEI_ISTREAM
#define FEI_ISTREAM
Definition: fei_iostream.hpp:32
driverData::temp_
char * temp_
Definition: driverData.hpp:187
driverData::parameters_
std::vector< parameters * > parameters_
Definition: driverData.hpp:231
setIDLists
Definition: driverData.hpp:137
initCR
Definition: driverData.hpp:73
sharedNodes::numProcsPerNode
int * numProcsPerNode
Definition: driverData.hpp:122
loadCR
Definition: driverData.hpp:88
driverData::initElemBlock_elemDofFieldIDs_
int * initElemBlock_elemDofFieldIDs_
Definition: driverData.hpp:200
driverData::initElems_
std::vector< initElem * > initElems_
Definition: driverData.hpp:202
setIDLists::setIDLists
setIDLists()
Definition: driverData.hpp:139
putBlockFieldNodeSolution::fieldSize
int fieldSize
Definition: driverData.hpp:155