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

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

Added support for bounds on control parameters for TAO

File size: 4.2 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/*{{{1*/
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: {{{1*/
28 ControlInput();
29 ControlInput(int enum_type,int enum_input,double* pvalues,double* pmin,double* pmax,int id);
30 ~ControlInput();
31 /*}}}*/
32 /*Object virtual functions definitions:{{{1 */
33 void Echo();
34 void DeepEcho();
35 int Id();
36 int MyRank();
37 #ifdef _SERIAL_
38 void Marshall(char** pmarshalled_dataset);
39 int MarshallSize();
40 void Demarshall(char** pmarshalled_dataset);
41 #endif
42 int ObjectEnum();
43 Object* copy();
44 /*}}}*/
45 /*ControlInput management: {{{1*/
46 int InstanceEnum();
47 Input* SpawnTriaInput(int* indices);
48 Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
49 Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
50 Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
51 ElementResult* SpawnResult(int step, double time);
52 void AddTimeValues(double* values,int step,double time){_error_("not supported yet");};
53 void Configure(Parameters* parameters);
54 /*}}}*/
55 /*numerics: {{{1*/
56 void SetInput(Input* in_input);
57 void GetInputValue(bool* pvalue);
58 void GetInputValue(int* pvalue);
59 void GetInputValue(double* pvalue);
60 void GetInputValue(double* pvalue,GaussTria* gauss);
61 void GetInputValue(double* pvalue,GaussPenta* gauss);
62 void GetInputValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
63 void GetInputValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
64 void GetInputDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
65 void GetInputDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss);
66 void GetInputAverage(double* pvalue);
67 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
68 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
69 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
70 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
71 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
72 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
73 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
74 void ChangeEnum(int newenumtype){_error_("not implemented yet");};
75 void SquareMin(double* psquaremin, bool process_units,Parameters* parameters){_error_("not implemented yet");};
76 void ConstrainMin(double minimum){_error_("not implemented yet");};
77 void Scale(double scale_factor){_error_("not implemented yet");};
78 void ArtificialNoise(double min,double max){_error_("not implemented yet");};
79 void AXPY(Input* xinput,double scalar){_error_("not implemented yet");};
80 void Constrain(void);
81 void Constrain(double min,double max);
82 double InfinityNorm(void){_error_("not implemented yet");};
83 double Max(void){_error_("not implemented yet");};
84 double MaxAbs(void){_error_("not implemented yet");};
85 double Min(void){_error_("not implemented yet");};
86 double MinAbs(void){_error_("not implemented yet");};
87 void Extrude(void);
88 void VerticallyIntegrate(Input* thickness_input);
89 void GetVectorFromInputs(Vec vector,int* doflist,const char* data);
90 void GetVectorFromInputs(Vec vector,int* doflist);
91 void GetValuesPtr(double** pvalues,int* pnum_values){_error_("not implemented yet");};
92 ElementResult* SpawnGradient(int step, double time);
93 void GetGradient(Vec gradient_vec,int* doflist);
94 void ScaleGradient(double scale);
95 void SetGradient(Input* gradient_in);
96 void UpdateValue(double scalar);
97 void SaveValue(void);
98 /*}}}*/
99
100};
101#endif /* _CONTROLINPUT_H */
Note: See TracBrowser for help on using the repository browser.