source: issm/trunk/src/c/objects/Pengrid.h@ 3621

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

Almost there

File size: 2.5 KB
Line 
1/*!\file Pengrid.h
2 * \brief: header file for pengrid object */
3
4#ifndef _PENGRID_H_
5#define _PENGRID_H_
6
7#include "./Load.h"
8#include "./Node.h"
9#include "./Element.h"
10#include "./Matpar.h"
11
12class Element;
13class Pengrid: public Load{
14
15 private:
16
17 int id;
18
19 Hook hnode; //hook to 1 node
20 Hook hmatpar; //hook to 1 matpar
21
22 Parameters* parameters; //pointer to solution parameters
23 Inputs* inputs;
24
25 /*internals: */
26 int active;
27 int zigzag_counter;
28
29 public:
30
31 /*FUNCTION constructors, destructors {{{1*/
32 Pengrid();
33 Pengrid(int pengrid_id,int pengrid_node_id int pengrid_matpar_id);
34 Pengrid(int pengrid_id,Hook* pengrid_hnode, Hook* pengrid_hmatpar, Parameters* pengrid_parameters, Inputs* pengrid_inputs);
35 Pengrid(int i, IoModel* iomodel);
36 ~Pengrid();
37 /*}}}*/
38 /*FUNCTION object management {{{1*/
39 void Configure(void* elements,void* nodes,void* materials);
40 Object* copy();
41 void DeepEcho();
42 void Demarshall(char** pmarshalled_dataset);
43 void Echo();
44 int Enum();
45 int GetId();
46 char* GetName();
47 void Marshall(char** pmarshalled_dataset);
48 int MarshallSize();
49 int MyRank();
50 /*}}}*/
51 /*FUNCTION element numerical routines {{{1*/
52 void DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type);
53 void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
54 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type);
55 void PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
56 void PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type);
57 void PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
58 void GetDofList(int* doflist,int* pnumberofdofspernode);
59 void PenaltyCreateKMatrixThermal(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
60 void PenaltyCreateKMatrixMelting(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
61 void MatparConfiguration(Matpar* matpar,int matpar_offset);
62 void PenaltyCreatePVectorThermal(Vec pg, double kmax,int analysis_type,int sub_analysis_type);
63 void PenaltyCreatePVectorMelting(Vec pg, double kmax,int analysis_type,int sub_analysis_type);
64 void PenaltyConstrain(int* punstable,int analysis_type,int sub_analysis_type);
65 void PenaltyConstrainThermal(int* punstable,int analysis_type,int sub_analysis_type);
66
67 /*updates:*/
68 void UpdateFromDakota(void* inputs);
69 void UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
70 /*}}}*/
71
72};
73
74#endif /* _PENGRID_H_ */
75
76
Note: See TracBrowser for help on using the repository browser.