source: issm/trunk/src/c/objects/Params/PetscVecParam.h@ 4244

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

New class Update, just to update object properties, relevant only to Elements, Loads, Nodes and Materials. Simplifies greatly all the other objects that don't need updates

File size: 3.5 KB
RevLine 
[3683]1/*! \file PetscVecParam.h
2 * \brief: header file for triavertexinput object
3 */
4
5
6#ifndef _PETSCVECPARAM_H_
7#define _PETSCVECPARAM_H_
8
9/*Headers:*/
10/*{{{1*/
[3715]11
12#ifdef HAVE_CONFIG_H
13 #include "config.h"
14#else
15#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
16#endif
17
18#ifdef _SERIAL_
19#include <mex.h>
20#endif
21
22
[3683]23#include "./Param.h"
[3775]24#include "../../include/include.h"
[3683]25#include "../../shared/shared.h"
[3775]26#include "../../include/include.h"
27#include "../../include/include.h"
[3683]28/*}}}*/
29
30class PetscVecParam: public Param{
31
32 private:
33 /*just hold 3 values for 3 vertices: */
34 int enum_type;
35 Vec value;
36
37 public:
38 /*constructors, destructors: {{{1*/
39 PetscVecParam();
40 PetscVecParam(int enum_type,Vec value);
41 ~PetscVecParam();
42 /*}}}*/
43 /*Object methods: {{{1*/
44 Object* copy();
45 void DeepEcho();
46 void Demarshall(char** pmarshalled_dataset);
47 void Echo();
48 int Enum();
49 int Id();
50 void Marshall(char** pmarshalled_dataset);
51 int MarshallSize();
52 int MyRank();
53 /*}}}*/
54 /*Param methods: {{{1*/
55 int EnumType(){return enum_type;}
[3842]56 void GetParameterValue(bool* pbool){ISSMERROR("PetscVec param of enum %i (%s) cannot return a bool",enum_type,EnumAsString(enum_type));}
57 void GetParameterValue(int* pinteger){ISSMERROR("PetscVec param of enum %i (%s) cannot return an integer",enum_type,EnumAsString(enum_type));}
58 void GetParameterValue(double* pdouble){ISSMERROR("PetscVec param of enum %i (%s) cannot return a double",enum_type,EnumAsString(enum_type));}
59 void GetParameterValue(char** pstring){ISSMERROR("PetscVec param of enum %i (%s) cannot return a string",enum_type,EnumAsString(enum_type));}
60 void GetParameterValue(char*** pstringarray,int* pM){ISSMERROR("PetscVec param of enum %i (%s) cannot return a string arrayl",enum_type,EnumAsString(enum_type));}
61 void GetParameterValue(double** pdoublearray,int* pM){ISSMERROR("PetscVec param of enum %i (%s) cannot return a double array",enum_type,EnumAsString(enum_type));}
62 void GetParameterValue(double** pdoublearray,int* pM, int* pN){ISSMERROR("PetscVec param of enum %i (%s) cannot return a double array",enum_type,EnumAsString(enum_type));}
63 void GetParameterValue(Mat* pmat){ISSMERROR("PetscVec param of enum %i (%s) cannot return a Mat",enum_type,EnumAsString(enum_type));}
[3683]64 void GetParameterValue(Vec* poutput);
[4059]65
66 void SetValue(bool boolean){ISSMERROR("Bool param of enum %i (%s) cannot hold a boolean",enum_type,EnumAsString(enum_type));}
67 void SetValue(int integer){ISSMERROR("Bool param of enum %i (%s) cannot hold an integer",enum_type,EnumAsString(enum_type));}
68 void SetValue(double scalar){ISSMERROR("Bool param of enum %i (%s) cannot hold a scalar",enum_type,EnumAsString(enum_type));}
69 void SetValue(char* string){ISSMERROR("Bool param of enum %i (%s) cannot hold a string",enum_type,EnumAsString(enum_type));}
70 void SetValue(char** stringarray,int M){ISSMERROR("Bool param of enum %i (%s) cannot hold a string array",enum_type,EnumAsString(enum_type));}
71 void SetValue(double* doublearray,int M){ISSMERROR("Bool param of enum %i (%s) cannot hold a double array",enum_type,EnumAsString(enum_type));}
72 void SetValue(double* pdoublearray,int M,int N){ISSMERROR("Bool param of enum %i (%s) cannot hold a double array",enum_type,EnumAsString(enum_type));}
73 void SetValue(Vec vec);
74 void SetValue(Mat mat){ISSMERROR("Bool param of enum %i (%s) cannot hold a Mat",enum_type,EnumAsString(enum_type));}
75
[3683]76 char* GetParameterName(void);
[3715]77 #ifdef _SERIAL_
[3683]78 void SetMatlabField(mxArray* dataref);
[3715]79 #endif
80
[3683]81 /*}}}*/
82};
83#endif /* _PETSCVECPARAM_H */
Note: See TracBrowser for help on using the repository browser.