Ignore:
Timestamp:
05/26/16 00:34:45 (9 years ago)
Author:
Mathieu Morlighem
Message:

CHG: testing new IoModel using jekins (no AD capability on my local machine)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/IoModel.h

    r20645 r20653  
    99
    1010#include "../shared/Enum/Enum.h"
     11#include <vector>
    1112
    1213class Parameters;
     
    1516class Option;
    1617
     18class 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
     33class 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
    1748class IoModel {
    1849
    1950        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;
    2157
    2258        public:
    23                 IssmDouble **data;   //this dataset holds temporary data, memory intensive.
    24 
    2559                /*pointer to input file*/
    2660                FILE *fid;
     
    5589                int constraintcounter;   //keep track of how many constraints are being created in each analysis
    5690
    57                 /*for AD mode: to keep track of our independent variables we fetch:*/
    58                 bool    *independents;
    59                 DataSet *independent_objects;
    60 
    6191                /*Methods*/
    6292                ~IoModel();
     
    6494                IoModel(FILE* iomodel_handle,int solution_enum_in,bool trace,IssmPDouble* X);
    6595
     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
    66110                /*Input/Output*/
    67111                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);
    72112                Param      *CopyConstantObject(int constant_enum);
    73113                IssmDouble *Data(int dataenum);
Note: See TracChangeset for help on using the changeset viewer.