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

Last change on this file since 12530 was 12530, checked in by utke, 13 years ago

in the first round the assumption was made that the inputs remain passive but in the second round after discussion with M. Morlighem all inputs were consistently made active with the exception of the xyz_list arguments

File size: 4.4 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,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");};
57 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss);
58 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};
59 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};
60 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);
61 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);
62 void GetInputAverage(IssmDouble* pvalue);
63 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
64 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};
65 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
66 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
67 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
68 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
69 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};
70 void ChangeEnum(int newenumtype){_error2_("not implemented yet");};
71 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};
72 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");};
73 void Scale(IssmDouble scale_factor){_error2_("not implemented yet");};
74 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");};
75 void AXPY(Input* xinput,IssmDouble scalar){_error2_("not implemented yet");};
76 void Constrain(void);
77 void Constrain(IssmDouble min,IssmDouble max);
78 IssmDouble InfinityNorm(void){_error2_("not implemented yet");};
79 IssmDouble Max(void){_error2_("not implemented yet");};
80 IssmDouble MaxAbs(void){_error2_("not implemented yet");};
81 IssmDouble Min(void){_error2_("not implemented yet");};
82 IssmDouble MinAbs(void){_error2_("not implemented yet");};
83 void Extrude(void);
84 void VerticallyIntegrate(Input* thickness_input);
85 void GetVectorFromInputs(Vector* vector,int* doflist,const char* data);
86 void GetVectorFromInputs(Vector* vector,int* doflist);
87 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};
88 ElementResult* SpawnGradient(int step, IssmDouble time);
89 void GetGradient(Vector* gradient_vec,int* doflist);
90 void ScaleGradient(IssmDouble scale);
91 void SetGradient(Input* gradient_in);
92 void UpdateValue(IssmDouble scalar);
93 void SaveValue(void);
94 /*}}}*/
95
96};
97#endif /* _CONTROLINPUT_H */
Note: See TracBrowser for help on using the repository browser.