source: issm/trunk-jpl/src/c/objects/Loads/Penpair.h@ 11327

Last change on this file since 11327 was 11327, checked in by Mathieu Morlighem, 13 years ago

Added penalties in Newton's method

File size: 2.9 KB
Line 
1/*!\file Penpair.h
2 * \brief: header file for penpair object */
3
4#ifndef _PENPAIR_H_
5#define _PENPAIR_H_
6
7/*Headers:*/
8/*{{{1*/
9#include "./Load.h"
10#include "../Node.h"
11#include "../Elements/Element.h"
12
13class Element;
14/*}}}*/
15
16class Penpair: public Load{
17
18 private:
19 int id;
20 int analysis_type;
21
22 Hook* hnodes; //hook to 2 nodes
23 Node** nodes;
24
25 Parameters* parameters; //pointer to solution parameters
26
27 public:
28
29 /*Penpair constructors, destructors: {{{1*/
30 Penpair();
31 Penpair(int penpair_id,int* penpair_node_ids,int analysis_type);
32 ~Penpair();
33 /*}}}*/
34 /*Object virtual functions definitions:{{{1 */
35 void Echo();
36 void DeepEcho();
37 int Id();
38 int MyRank();
39 #ifdef _SERIAL_
40 void Marshall(char** pmarshalled_dataset);
41 int MarshallSize();
42 void Demarshall(char** pmarshalled_dataset);
43 #endif
44 int ObjectEnum();
45 Object* copy();
46 /*}}}*/
47 /*Update virtual functions resolution: {{{1*/
48 void InputUpdateFromVector(double* vector, int name, int type);
49 void InputUpdateFromVector(int* vector, int name, int type);
50 void InputUpdateFromVector(bool* vector, int name, int type);
51 void InputUpdateFromMatrixDakota(double* matrix, int nrow, int ncols,int name, int type){_error_("Not implemented yet!");}
52 void InputUpdateFromVectorDakota(double* vector, int name, int type){_error_("Not implemented yet!");}
53 void InputUpdateFromVectorDakota(int* vector, int name, int type){_error_("Not implemented yet!");}
54 void InputUpdateFromVectorDakota(bool* vector, int name, int type){_error_("Not implemented yet!");}
55 void InputUpdateFromConstant(double constant, int name);
56 void InputUpdateFromConstant(int constant, int name);
57 void InputUpdateFromConstant(bool constant, int name);
58 void InputUpdateFromSolution(double* solution){_error_("Not implemented yet!");}
59 void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
60 /*}}}*/
61 /*Load virtual functions definitions: {{{1*/
62 void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
63 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
64 void CreateKMatrix(Mat Kff, Mat Kfs);
65 void CreatePVector(Vec pf);
66 void CreateJacobianMatrix(Mat Jff);
67 void PenaltyCreateKMatrix(Mat Kff,Mat Kfs,double kmax);
68 void PenaltyCreatePVector(Vec pf, double kmax);
69 void PenaltyCreateJacobianMatrix(Mat Jff,double kmax);
70 bool InAnalysis(int analysis_type);
71 /*}}}*/
72 /*Penpair management: {{{1*/
73 ElementMatrix* PenaltyCreateKMatrixDiagnosticHoriz(double kmax);
74 ElementMatrix* PenaltyCreateKMatrixDiagnosticMacAyealPattyn(double kmax);
75 ElementMatrix* PenaltyCreateKMatrixDiagnosticStokes(double kmax);
76 ElementMatrix* PenaltyCreateKMatrixPrognostic(double kmax);
77 /*}}}*/
78};
79
80#endif /* _PENPAIR_H_ */
81
82
Note: See TracBrowser for help on using the repository browser.