source: issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h@ 19554

Last change on this file since 19554 was 19554, checked in by Eric.Larour, 10 years ago

CHG: finished first prototype implementation of the GEMB model inside the Gembx module of the SurfaceMassBalancex module,
and inside the SMBgemb.m class, as well as the SMBGemb method of the Element.cpp class.
Had to introduce the concept also of a DoubleArrayInput to keep track of the vertical gridded datasets within each element.

File size: 3.6 KB
Line 
1/*! \file DoubleArrayInput.h
2 * \brief: header file for vector type input object
3 */
4
5#ifndef _DOUBLE_ARRAY_INPUT_H_
6#define _DOUBLE_ARRAY_INPUT_H_
7
8/*Headers:*/
9/*{{{*/
10#include "./Input.h"
11/*}}}*/
12
13class DoubleArrayInput: public Input{
14
15 public:
16 int enum_type;
17 IssmDouble* values; /*vector*/
18 int m; /*size of vector*/
19
20 /*DoubleArrayInput constructors, destructors: {{{*/
21 DoubleArrayInput();
22 DoubleArrayInput(int enum_type,IssmDouble* values, int m);
23 ~DoubleArrayInput();
24 /*}}}*/
25 /*Object virtual functions definitions:{{{ */
26 void Echo();
27 void DeepEcho();
28 int Id();
29 int ObjectEnum();
30 Object* copy();
31 void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
32 /*}}}*/
33 /*DoubleArrayInput management: {{{*/
34 int InstanceEnum();
35 Input* SpawnTriaInput(int index1,int index2,int index3){_error_("not implemented yet");};
36 Input* SpawnSegInput(int index1,int index2){_error_("not implemented yet");};
37 Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
38 Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
39 Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
40 int GetResultInterpolation(void){return P0ArrayEnum;};
41 int GetResultNumberOfNodes(void){return 1;};
42 int GetResultArraySize(void){return m;};
43 void ResultToMatrix(IssmDouble* values,int ncols,int sid);
44 void Configure(Parameters* parameters);
45 void GetValues(IssmDouble** pvalues,int* pm);
46 /*}}}*/
47 /*numerics: {{{*/
48 void GetInputValue(bool* pvalue){_error_("not implemented yet");};
49 void GetInputValue(int* pvalue){_error_("not implemented yet");};
50 void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");};
51 void GetInputValue(IssmDouble* pvalue,Gauss* gauss){_error_("not implemented yet");};
52 void GetInputValue(IssmDouble* pvalue,Gauss* gauss,IssmDouble time){_error_("not implemented yet");};
53 void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
55 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
56 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
57 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
58 void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
59 void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
60 void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
61 void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
62 void AXPY(Input* xinput,IssmDouble scalar){_error_("not implemented yet");};
63 void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error_("not implemented yet");};
64 void ChangeEnum(int newenumtype);
65 IssmDouble InfinityNorm(void){_error_("not implemented yet");};
66 IssmDouble Max(void){_error_("not implemented yet");};
67 IssmDouble MaxAbs(void){_error_("not implemented yet");};
68 IssmDouble Min(void){_error_("not implemented yet");};
69 IssmDouble MinAbs(void){_error_("not implemented yet");};
70 void Extrude(int start){_error_("not supported yet");};
71 void VerticallyIntegrate(Input* thickness_input){_error_("not implemented yet");};
72 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");};
73 /*}}}*/
74
75};
76#endif /* _DOUBLE_ARRAY_INPUT_H */
Note: See TracBrowser for help on using the repository browser.