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

Last change on this file since 17472 was 17472, checked in by Mathieu Morlighem, 11 years ago

NEW: working on Tetra elements

File size: 2.7 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 IssmDouble* values;
21
22 /*TetraInput constructors, destructors*/
23 TetraInput();
24 TetraInput(int enum_type,IssmDouble* values,int element_type_in);
25 ~TetraInput();
26
27 /*Object virtual functions definitions*/
28 void Echo();
29 void DeepEcho();
30 int Id();
31 int ObjectEnum();
32 Object *copy();
33
34 /*TetraInput management:*/
35 int InstanceEnum();
36 Input* SpawnTriaInput(int location){_error_("not supported yet");};
37 Input* SpawnSegInput(int index1,int index2){_error_("not supported yet");};
38 Input* PointwiseDivide(Input* inputB);
39 Input* PointwiseMin(Input* inputB);
40 Input* PointwiseMax(Input* inputB);
41 int GetResultInterpolation(void);
42 int GetResultNumberOfNodes(void);
43 void ResultToPatch(IssmDouble* values,int nodesperelement,int sid);
44 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
45 void Configure(Parameters* parameters);
46
47 /*numerics*/
48 void GetInputValue(bool* pvalue){_error_("not implemented yet");}
49 void GetInputValue(int* pvalue){_error_("not implemented yet");}
50 void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");}
51 void GetInputValue(IssmDouble* pvalue,Gauss* gauss);
52 void GetInputValue(IssmDouble* pvalue,Gauss* gauss,IssmDouble time){_error_("not implemented yet");};
53 void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int index){_error_("not implemented yet");};
54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
55 void GetInputAverage(IssmDouble* pvalue);
56 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
57 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
58 void ChangeEnum(int newenumtype);
59 void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
60 void ConstrainMin(IssmDouble minimum);
61 void Set(IssmDouble setvalue);
62 void Scale(IssmDouble scale_factor);
63 void AXPY(Input* xinput,IssmDouble scalar);
64 void Constrain(IssmDouble cm_min, IssmDouble cm_max);
65 IssmDouble InfinityNorm(void);
66 IssmDouble Max(void);
67 IssmDouble MaxAbs(void);
68 IssmDouble Min(void);
69 IssmDouble MinAbs(void);
70 void Extrude(void){_error_("not supported yet");};
71 void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
72 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
73
74};
75#endif /* _TETRAINPUT_H */
Note: See TracBrowser for help on using the repository browser.