Changeset 20653 for issm/trunk-jpl/src/c/classes/IoModel.h
- Timestamp:
- 05/26/16 00:34:45 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/IoModel.h
r20645 r20653 9 9 10 10 #include "../shared/Enum/Enum.h" 11 #include <vector> 11 12 12 13 class Parameters; … … 15 16 class Option; 16 17 18 class IoConstant { /*holds single IssmDouble, int, bool and char from input*/ 19 public: 20 bool isindependent; 21 int data_enum; 22 char* name; 23 Param* constant; 24 25 ~IoConstant(); 26 IoConstant(); 27 IoConstant(bool value,int enum_in); 28 IoConstant(int value,int enum_in); 29 IoConstant(IssmDouble value,int enum_in); 30 IoConstant(char* value,int enum_in); 31 }; 32 33 class IoData { /*holds temporary data (array), memory intensive*/ 34 public: 35 bool isindependent; 36 int data_enum; 37 char* name; 38 int M,N; 39 int code; 40 int layout; 41 IssmDouble* data; 42 43 ~IoData(); 44 IoData(); 45 IoData(IssmDouble* matrix,int code,int layout_in,int M,int N,int enum_in); 46 }; 47 17 48 class IoModel { 18 49 19 50 private: 20 Parameters *constants; //this dataset holds all IssmDouble, int, bool and char from input 51 std::vector<IoConstant*> constants; //this dataset holds all IssmDouble, int, bool and char from input 52 std::vector<IoData*> data; //this dataset holds temporary data, memory intensive 53 54 /*for AD mode: to keep track of our independent variables we fetch:*/ 55 //bool *independents; 56 //DataSet *independent_objects; 21 57 22 58 public: 23 IssmDouble **data; //this dataset holds temporary data, memory intensive.24 25 59 /*pointer to input file*/ 26 60 FILE *fid; … … 55 89 int constraintcounter; //keep track of how many constraints are being created in each analysis 56 90 57 /*for AD mode: to keep track of our independent variables we fetch:*/58 bool *independents;59 DataSet *independent_objects;60 61 91 /*Methods*/ 62 92 ~IoModel(); … … 64 94 IoModel(FILE* iomodel_handle,int solution_enum_in,bool trace,IssmPDouble* X); 65 95 96 /*NEW*/ 97 void AddConstant(IoConstant* constant_in); 98 void AddConstantIndependent(IoConstant* constant_in); 99 void AddData(IoData* data_in); 100 void AddDataIndependent(IoData* data_in); 101 void FindConstant(bool* pvalue,int constant_enum); 102 void FindConstant(int* pvalue,int constant_enum); 103 void FindConstant(IssmDouble* pvalue,int constant_enum); 104 void FindConstant(char **pvalue,int constant_enum); 105 void FetchIndependentConstant(int* pXcount,IssmPDouble* X,int name); 106 void FetchIndependentData(int* pXcount,IssmPDouble* X,int name); 107 int NumIndependents(); 108 void FillIndependents(IssmDouble* xp); 109 66 110 /*Input/Output*/ 67 111 void CheckEnumSync(void); 68 void FindConstant(bool *poutput,int constant_enum);69 void FindConstant(int *poutput,int constant_enum);70 void FindConstant(IssmDouble *poutput,int constant_enum);71 void FindConstant(char **poutput,int constant_enum);72 112 Param *CopyConstantObject(int constant_enum); 73 113 IssmDouble *Data(int dataenum);
Note:
See TracChangeset
for help on using the changeset viewer.