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

Last change on this file since 23644 was 23644, checked in by Mathieu Morlighem, 6 years ago

NEW: removing matpar from femmodel

File size: 3.1 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
23 public:
24
25 /*constructors, destructors*/
26 Parameters();
27 ~Parameters();
28
29 /*numerics*/
30 void AddObject(Param* newparam);
31 Parameters* Copy(void);
32 void DeepEcho();
33 void Echo();
34 void Delete(int enum_type);
35 bool Exist(int enum_type);
36 void Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction);
37
38 void FindParam(bool* pinteger,int enum_type);
39 void FindParam(int* pinteger,int enum_type);
40 void FindParam(IssmDouble* pscalar, int enum_type);
41 void FindParam(IssmDouble* pscalar, int enum_type,IssmDouble time);
42 void FindParam(IssmDouble* pscalar, int row,IssmDouble time,int enum_type);
43 void FindParam(char** pstring,int enum_type);
44 void FindParam(char*** pstringarray,int* pM,int enum_type);
45 void FindParam(int** pintarray,int* pM,int enum_type);
46 void FindParam(int** pintarray,int* pM,int* PN,int enum_type);
47 void FindParam(IssmDouble** pIssmDoublearray,int* pM,int enum_type);
48 void FindParam(IssmDouble** pIssmDoublearray,int* pM,int* pN,int enum_type);
49 void FindParam(IssmDouble*** parray,int* pM, int** pmdims_array,int** pndims_array,int enum_type);
50 void FindParam(Vector<IssmDouble>** pvec,int enum_type);
51 void FindParam(Matrix<IssmDouble>** pmat,int enum_type);
52 void FindParam(FILE** pfid,int enum_type);
53 void FindParam(DataSet** pdataset, int enum_type);
54 void FindParamAndMakePassive(IssmPDouble* pscalar, int enum_type);
55 void FindParamAndMakePassive(IssmPDouble** pvec,int* pM,int enum_type);
56 void FindParamInDataset(IssmDouble** pIssmDoublearray,int* pM,int* pN,int dataset_type,int enum_type);
57 IssmDouble FindParam(int enum_type);
58
59 void SetParam(bool boolean,int enum_type);
60 void SetParam(int integer,int enum_type);
61 void SetParam(IssmDouble scalar, int enum_type);
62 void SetParam(char* string,int enum_type);
63 void SetParam(char** stringarray,int M,int enum_type);
64 void SetParam(IssmDouble* IssmDoublearray,int M,int enum_type);
65 void SetParam(IssmDouble* IssmDoublearray,int M,int N,int enum_type);
66 void SetParam(int* intarray,int M,int enum_type);
67 void SetParam(int* intarray,int M,int N,int enum_type);
68 void SetParam(Vector<IssmDouble>* vec,int enum_type);
69 void SetParam(Matrix<IssmDouble>* mat,int enum_type);
70 void SetParam(FILE* fid,int enum_type);
71 void SetParam(DataSet* dataset,int enum_type);
72
73 Param* FindParamObject(int enum_type);
74
75};
76
77/*Methods relating to parameters: */
78char *OptionsFromAnalysis(char** ptoolkit,Parameters *parameters,int analysis_type);
79void ToolkitsOptionsFromAnalysis(Parameters* parameters,int analysis_type);
80
81#endif //ifndef _PARAMETERS_H_
Note: See TracBrowser for help on using the repository browser.