source: issm/trunk-jpl/src/c/classes/Params/Parameters.h@ 25506

Last change on this file since 25506 was 25506, checked in by Mathieu Morlighem, 5 years ago

NEW: new way of Marshalling femmodel

File size: 3.2 KB
Line 
1#ifndef _CONTAINER_PARAMETERS_H_
2#define _CONTAINER_PARAMETERS_H_
3#include <stdio.h>
4
5/*forward declarations */
6class Param;
7class DataSet;
8template <class doublematrix> class Matrix;
9template <class doubletype> class Vector;
10#include "../../shared/shared.h"
11
12#define NUMPARAMS ParametersENDEnum - ParametersSTARTEnum -1
13
14/*!\brief Declaration of Parameters class.
15 *
16 * Declaration of Parameters class. Parameters are a static array of Parameter objects.
17 */
18class Parameters{
19
20 private:
21 Param* params[NUMPARAMS];
22 int EnumToIndex(int enum_in);
23
24 public:
25
26 /*constructors, destructors*/
27 Parameters();
28 ~Parameters();
29
30 /*numerics*/
31 void AddObject(Param* newparam);
32 Parameters* Copy(void);
33 void DeepEcho();
34 void Echo();
35 void Delete(int enum_type);
36 bool Exist(int enum_type);
37 void Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction);
38 void Marshall2(MarshallHandle* marshallhandle);
39
40 void FindParam(bool* pinteger,int enum_type);
41 void FindParam(int* pinteger,int enum_type);
42 void FindParam(IssmDouble* pscalar, int enum_type);
43 void FindParam(IssmDouble* pscalar, int enum_type,IssmDouble time);
44 void FindParam(IssmDouble* pscalar, int row,IssmDouble time,int enum_type);
45 void FindParam(char** pstring,int enum_type);
46 void FindParam(char*** pstringarray,int* pM,int enum_type);
47 void FindParam(int** pintarray,int* pM,int enum_type);
48 void FindParam(int** pintarray,int* pM,int* PN,int enum_type);
49 void FindParam(IssmDouble** pIssmDoublearray,int* pM,int enum_type);
50 void FindParam(IssmDouble** pIssmDoublearray,int* pM,int* pN,int enum_type);
51 void FindParam(IssmDouble*** parray,int* pM, int** pmdims_array,int** pndims_array,int enum_type);
52 void FindParam(Vector<IssmDouble>** pvec,int enum_type);
53 void FindParam(Matrix<IssmDouble>** pmat,int enum_type);
54 void FindParam(FILE** pfid,int enum_type);
55 void FindParam(DataSet** pdataset, int enum_type);
56 void FindParamAndMakePassive(IssmPDouble* pscalar, int enum_type);
57 void FindParamAndMakePassive(IssmPDouble** pvec,int* pM,int enum_type);
58 void FindParamInDataset(IssmDouble** pIssmDoublearray,int* pM,int* pN,int dataset_type,int enum_type);
59 IssmDouble FindParam(int enum_type);
60
61 void SetParam(bool boolean,int enum_type);
62 void SetParam(int integer,int enum_type);
63 void SetParam(IssmDouble scalar, int enum_type);
64 void SetParam(char* string,int enum_type);
65 void SetParam(char** stringarray,int M,int enum_type);
66 void SetParam(IssmDouble* IssmDoublearray,int M,int enum_type);
67 void SetParam(IssmDouble* IssmDoublearray,int M,int N,int enum_type);
68 void SetParam(int* intarray,int M,int enum_type);
69 void SetParam(int* intarray,int M,int N,int enum_type);
70 void SetParam(Vector<IssmDouble>* vec,int enum_type);
71 void SetParam(Matrix<IssmDouble>* mat,int enum_type);
72 void SetParam(FILE* fid,int enum_type);
73 void SetParam(DataSet* dataset,int enum_type);
74
75 Param* FindParamObject(int enum_type);
76
77};
78
79/*Methods relating to parameters: */
80char *OptionsFromAnalysis(char** ptoolkit,Parameters *parameters,int analysis_type);
81void ToolkitsOptionsFromAnalysis(Parameters* parameters,int analysis_type);
82
83#endif //ifndef _PARAMETERS_H_
Note: See TracBrowser for help on using the repository browser.