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

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

Completed separation of Petsc from ISSM. Matrix and Vector
are now the vehicles for Mat and Vec objects when running with
Petsc, or double* when running with a custom made type of matrix (still
to be finished).

File size: 4.3 KB
RevLine 
[6200]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;
[6260]20 int control_id;
[6200]21 Input* values;
22 Input* savedvalues;
[8129]23 Input* minvalues;
24 Input* maxvalues;
[6200]25 Input* gradient;
26
27 /*ControlInput constructors, destructors: {{{1*/
28 ControlInput();
[8129]29 ControlInput(int enum_type,int enum_input,double* pvalues,double* pmin,double* pmax,int id);
[6200]30 ~ControlInput();
31 /*}}}*/
32 /*Object virtual functions definitions:{{{1 */
33 void Echo();
34 void DeepEcho();
35 int Id();
36 int MyRank();
[9777]37 #ifdef _SERIAL_
[6200]38 void Marshall(char** pmarshalled_dataset);
39 int MarshallSize();
40 void Demarshall(char** pmarshalled_dataset);
[9777]41 #endif
[9883]42 int ObjectEnum();
[6200]43 Object* copy();
44 /*}}}*/
45 /*ControlInput management: {{{1*/
[9883]46 int InstanceEnum();
[6200]47 Input* SpawnTriaInput(int* indices);
[6412]48 Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
[8129]49 Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
50 Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
[6200]51 ElementResult* SpawnResult(int step, double time);
[8363]52 void AddTimeValues(double* values,int step,double time){_error_("not supported yet");};
53 void Configure(Parameters* parameters);
[6200]54 /*}}}*/
55 /*numerics: {{{1*/
[11317]56 void SetInput(Input* in_input);
[10135]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);
[6412]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");};
[8129]80 void Constrain(void);
81 void Constrain(double min,double max);
[6412]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");};
[6200]87 void Extrude(void);
88 void VerticallyIntegrate(Input* thickness_input);
[11695]89 void GetVectorFromInputs(Vector* vector,int* doflist,const char* data);
90 void GetVectorFromInputs(Vector* vector,int* doflist);
[6412]91 void GetValuesPtr(double** pvalues,int* pnum_values){_error_("not implemented yet");};
[6200]92 ElementResult* SpawnGradient(int step, double time);
[11695]93 void GetGradient(Vector* gradient_vec,int* doflist);
[6238]94 void ScaleGradient(double scale);
[6200]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.