Ice Sheet System Model  4.18
Code documentation
Parameters.h
Go to the documentation of this file.
1 #ifndef _CONTAINER_PARAMETERS_H_
2 #define _CONTAINER_PARAMETERS_H_
3 #include <stdio.h>
4 
5 /*forward declarations */
6 class Param;
7 class DataSet;
8 template <class doublematrix> class Matrix;
9 template <class doubletype> class Vector;
10 #include "../../shared/shared.h"
11 
12 #define NUMPARAMS ParametersENDEnum - ParametersSTARTEnum -1
13 
18 class Parameters{
19 
20  private:
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 
39  void FindParam(bool* pinteger,int enum_type);
40  void FindParam(int* pinteger,int enum_type);
41  void FindParam(IssmDouble* pscalar, int enum_type);
42  void FindParam(IssmDouble* pscalar, int enum_type,IssmDouble time);
43  void FindParam(IssmDouble* pscalar, int row,IssmDouble time,int enum_type);
44  void FindParam(char** pstring,int enum_type);
45  void FindParam(char*** pstringarray,int* pM,int enum_type);
46  void FindParam(int** pintarray,int* pM,int enum_type);
47  void FindParam(int** pintarray,int* pM,int* PN,int enum_type);
48  void FindParam(IssmDouble** pIssmDoublearray,int* pM,int enum_type);
49  void FindParam(IssmDouble** pIssmDoublearray,int* pM,int* pN,int enum_type);
50  void FindParam(IssmDouble*** parray,int* pM, int** pmdims_array,int** pndims_array,int enum_type);
51  void FindParam(Vector<IssmDouble>** pvec,int enum_type);
52  void FindParam(Matrix<IssmDouble>** pmat,int enum_type);
53  void FindParam(FILE** pfid,int enum_type);
54  void FindParam(DataSet** pdataset, int enum_type);
55  void FindParamAndMakePassive(IssmPDouble* pscalar, int enum_type);
56  void FindParamAndMakePassive(IssmPDouble** pvec,int* pM,int enum_type);
57  void FindParamInDataset(IssmDouble** pIssmDoublearray,int* pM,int* pN,int dataset_type,int enum_type);
58  IssmDouble FindParam(int enum_type);
59 
60  void SetParam(bool boolean,int enum_type);
61  void SetParam(int integer,int enum_type);
62  void SetParam(IssmDouble scalar, int enum_type);
63  void SetParam(char* string,int enum_type);
64  void SetParam(char** stringarray,int M,int enum_type);
65  void SetParam(IssmDouble* IssmDoublearray,int M,int enum_type);
66  void SetParam(IssmDouble* IssmDoublearray,int M,int N,int enum_type);
67  void SetParam(int* intarray,int M,int enum_type);
68  void SetParam(int* intarray,int M,int N,int enum_type);
69  void SetParam(Vector<IssmDouble>* vec,int enum_type);
70  void SetParam(Matrix<IssmDouble>* mat,int enum_type);
71  void SetParam(FILE* fid,int enum_type);
72  void SetParam(DataSet* dataset,int enum_type);
73 
74  Param* FindParamObject(int enum_type);
75 
76 };
77 
78 /*Methods relating to parameters: */
79 char *OptionsFromAnalysis(char** ptoolkit,Parameters *parameters,int analysis_type);
80 void ToolkitsOptionsFromAnalysis(Parameters* parameters,int analysis_type);
81 
82 #endif //ifndef _PARAMETERS_H_
Matrix
Definition: Matrix.h:27
IssmDouble
double IssmDouble
Definition: types.h:37
Param
Definition: Param.h:21
Parameters::Exist
bool Exist(int enum_type)
Definition: Parameters.cpp:254
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
NUMPARAMS
#define NUMPARAMS
Definition: Parameters.h:12
ToolkitsOptionsFromAnalysis
void ToolkitsOptionsFromAnalysis(Parameters *parameters, int analysis_type)
Parameters::Copy
Parameters * Copy(void)
Definition: Parameters.cpp:86
Parameters::AddObject
void AddObject(Param *newparam)
Definition: Parameters.cpp:67
Parameters::SetParam
void SetParam(bool boolean, int enum_type)
Definition: Parameters.cpp:441
Parameters::DeepEcho
void DeepEcho()
Definition: Parameters.cpp:99
Parameters::Parameters
Parameters()
Definition: Parameters.cpp:45
Parameters::EnumToIndex
int EnumToIndex(int enum_in)
Definition: Parameters.cpp:57
Parameters::FindParamInDataset
void FindParamInDataset(IssmDouble **pIssmDoublearray, int *pM, int *pN, int dataset_type, int enum_type)
Definition: Parameters.cpp:410
Parameters::FindParamAndMakePassive
void FindParamAndMakePassive(IssmPDouble *pscalar, int enum_type)
Definition: Parameters.cpp:379
Parameters::params
Param * params[NUMPARAMS]
Definition: Parameters.h:21
Parameters::~Parameters
~Parameters()
Definition: Parameters.cpp:50
Parameters::Delete
void Delete(int enum_type)
Definition: Parameters.cpp:243
Parameters::Echo
void Echo()
Definition: Parameters.cpp:106
Parameters::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Parameters.cpp:113
OptionsFromAnalysis
char * OptionsFromAnalysis(char **ptoolkit, Parameters *parameters, int analysis_type)
Definition: Parameters.cpp:595
Parameters::FindParam
void FindParam(bool *pinteger, int enum_type)
Definition: Parameters.cpp:262
IssmPDouble
IssmDouble IssmPDouble
Definition: types.h:38
Parameters::FindParamObject
Param * FindParamObject(int enum_type)
Definition: Parameters.cpp:588
DataSet
Declaration of DataSet class.
Definition: DataSet.h:14
Vector
Definition: Vector.h:25