source: issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h@ 19198

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

CHG: re-introducing Marshalling routines in support of check pointing. Implemented
the dataset backbone, and the FemModel backbone. Now we have to bring back the low
level drivers for the classes.

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