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

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

Temporary

File size: 2.7 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 helement; //hook to 1 element
21 Hook hmatpar; //hook to 1 matpar
22
23 Parameters* parameters; //pointer to solution parameters
24 Inputs* inputs;
25
26 /*internals: */
27 int active;
28 int zigzag_counter;
29
30 public:
31
32 /*FUNCTION constructors, destructors {{{1*/
33 Pengrid();
34 Pengrid(int pengrid_id,int pengrid_node_id, int pengrid_element_id,int pengrid_matpar_id);
35 Pengrid(int pengrid_id,Hook* pengrid_hnode, Hook* pengrid_helement,Hook* pengrid_hmatpar, Parameters* pengrid_parameters, Inputs* pengrid_inputs);
36 Pengrid(int index, int id, IoModel* iomodel);
37 ~Pengrid();
38 /*}}}*/
39 /*FUNCTION object management {{{1*/
40 void Configure(DataSet* elementsin,DataSet* loadsin,DataSet* nodesin,DataSet* verticesin,DataSet* materialsin,Parameters* parametersin);
41 Object* copy();
42 void DeepEcho();
43 void Demarshall(char** pmarshalled_dataset);
44 void Echo();
45 int Enum();
46 int GetId();
47 char* GetName();
48 void Marshall(char** pmarshalled_dataset);
49 int MarshallSize();
50 int MyRank();
51 /*}}}*/
52 /*FUNCTION element numerical routines {{{1*/
53 void DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type);
54 void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
55 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type);
56 void PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
57 void PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type);
58 void PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
59 void GetDofList(int* doflist,int* pnumberofdofspernode);
60 void PenaltyCreateKMatrixThermal(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
61 void PenaltyCreateKMatrixMelting(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type);
62 void MatparConfiguration(Matpar* matpar,int matpar_offset);
63 void PenaltyCreatePVectorThermal(Vec pg, double kmax,int analysis_type,int sub_analysis_type);
64 void PenaltyCreatePVectorMelting(Vec pg, double kmax,int analysis_type,int sub_analysis_type);
65 void PenaltyConstrain(int* punstable,int analysis_type,int sub_analysis_type);
66 void PenaltyConstrainThermal(int* punstable,int analysis_type,int sub_analysis_type);
67
68 /*updates:*/
69 void UpdateFromDakota(void* inputs);
70 void UpdateInputs(double* solution, int analysis_type, int sub_analysis_type);
71 /*}}}*/
72
73};
74
75#endif /* _PENGRID_H_ */
76
77
Note: See TracBrowser for help on using the repository browser.