source: issm/trunk-jpl/src/c/objects/Inputs/ControlInput.h@ 12704

Last change on this file since 12704 was 12704, checked in by Mathieu Morlighem, 13 years ago

merged trunk and trunk-jpl

File size: 4.5 KB
Line 
1/*! \file ControlInput.h
2 * \brief: header file for triavertexinput object
3 */
4
5
6#ifndef _CONTROLINPUT_H_
7#define _CONTROLINPUT_H_
8
9/*Headers:*/
10/*{{{*/
11#include "./Input.h"
12#include "../../include/include.h"
13class GaussTria;
14/*}}}*/
15
16class ControlInput: public Input{
17
18 public:
19 int enum_type;
20 int control_id;
21 Input* values;
22 Input* savedvalues;
23 Input* minvalues;
24 Input* maxvalues;
25 Input* gradient;
26
27 /*ControlInput constructors, destructors: {{{*/
28 ControlInput();
29 ControlInput(int enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id);
30 ~ControlInput();
31 /*}}}*/
32 /*Object virtual functions definitions:{{{ */
33 void Echo();
34 void DeepEcho();
35 int Id();
36 int MyRank();
37 int ObjectEnum();
38 Object* copy();
39 /*}}}*/
40 /*ControlInput management: {{{*/
41 int InstanceEnum();
42 Input* SpawnTriaInput(int* indices);
43 Input* PointwiseDivide(Input* inputB){_error2_("not implemented yet");};
44 Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");};
45 Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");};
46 ElementResult* SpawnResult(int step, IssmDouble time);
47 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");};
48 void Configure(Parameters* parameters);
49 /*}}}*/
50 /*numerics: {{{*/
51 void SetInput(Input* in_input);
52 void GetInputValue(bool* pvalue);
53 void GetInputValue(int* pvalue);
54 void GetInputValue(IssmDouble* pvalue);
55 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss);
56 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
57 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
58 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,IssmDouble time){_error2_("not implemented yet");};
59 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
60 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
61 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussTria* gauss);
62 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss);
63 void GetInputAverage(IssmDouble* pvalue);
64 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
65 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
66 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
67 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
68 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
69 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
70 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
71 void ChangeEnum(int newenumtype){_error2_("not implemented yet");};
72 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};
73 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
74 void Scale(IssmDouble scale_factor){_error2_("not implemented yet");};
75 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
76 void AXPY(Input* xinput,IssmDouble scalar){_error2_("not implemented yet");};
77 void Constrain(void);
78 void Constrain(IssmDouble min,IssmDouble max);
79 IssmDouble InfinityNorm(void){_error2_("not implemented yet");};
80 IssmDouble Max(void){_error2_("not implemented yet");};
81 IssmDouble MaxAbs(void){_error2_("not implemented yet");};
82 IssmDouble Min(void){_error2_("not implemented yet");};
83 IssmDouble MinAbs(void){_error2_("not implemented yet");};
84 void Extrude(void);
85 void VerticallyIntegrate(Input* thickness_input);
86 void GetVectorFromInputs(Vector* vector,int* doflist,const char* data);
87 void GetVectorFromInputs(Vector* vector,int* doflist);
88 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};
89 ElementResult* SpawnGradient(int step, IssmDouble time);
90 void GetGradient(Vector* gradient_vec,int* doflist);
91 void ScaleGradient(IssmDouble scale);
92 void SetGradient(Input* gradient_in);
93 void UpdateValue(IssmDouble scalar);
94 void SaveValue(void);
95 /*}}}*/
96
97};
98#endif /* _CONTROLINPUT_H */
Note: See TracBrowser for help on using the repository browser.