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

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

Large commit, to strip out Petsc from the code. Created new Matrix and Vector
wrapper objects to the Petsc Mat and Vec objects. These wrappers make it possible
to hook up a different package to handle matrix and vector operations.

File size: 2.9 KB
RevLine 
[3683]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;
[4007]20 int analysis_type;
[3683]21
[4396]22 Hook* hnodes; //hook to 2 nodes
[5940]23 Node** nodes;
[3683]24
[4887]25 Parameters* parameters; //pointer to solution parameters
26
[3683]27 public:
28
[4248]29 /*Penpair constructors, destructors: {{{1*/
[3683]30 Penpair();
[4007]31 Penpair(int penpair_id,int* penpair_node_ids,int analysis_type);
[3683]32 ~Penpair();
[4007]33 /*}}}*/
[4248]34 /*Object virtual functions definitions:{{{1 */
35 void Echo();
[3683]36 void DeepEcho();
37 int Id();
[4248]38 int MyRank();
[9777]39 #ifdef _SERIAL_
[4007]40 void Marshall(char** pmarshalled_dataset);
41 int MarshallSize();
[4248]42 void Demarshall(char** pmarshalled_dataset);
[9777]43 #endif
[9883]44 int ObjectEnum();
[4248]45 Object* copy();
[4244]46 /*}}}*/
47 /*Update virtual functions resolution: {{{1*/
[11247]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);
[10576]51 void InputUpdateFromMatrixDakota(double* matrix, int nrow, int ncols,int name, int type){_error_("Not implemented yet!");}
[6412]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!");}
[4887]55 void InputUpdateFromConstant(double constant, int name);
56 void InputUpdateFromConstant(int constant, int name);
57 void InputUpdateFromConstant(bool constant, int name);
[6412]58 void InputUpdateFromSolution(double* solution){_error_("Not implemented yet!");}
59 void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
[4007]60 /*}}}*/
[4248]61 /*Load virtual functions definitions: {{{1*/
62 void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
[4575]63 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
[11679]64 void CreateKMatrix(Matrix* Kff, Matrix* Kfs);
65 void CreatePVector(Vector* pf);
66 void CreateJacobianMatrix(Matrix* Jff);
67 void PenaltyCreateKMatrix(Matrix* Kff,Matrix* Kfs,double kmax);
68 void PenaltyCreatePVector(Vector* pf, double kmax);
69 void PenaltyCreateJacobianMatrix(Matrix* Jff,double kmax);
[4248]70 bool InAnalysis(int analysis_type);
[4007]71 /*}}}*/
[4887]72 /*Penpair management: {{{1*/
[5937]73 ElementMatrix* PenaltyCreateKMatrixDiagnosticHoriz(double kmax);
74 ElementMatrix* PenaltyCreateKMatrixDiagnosticMacAyealPattyn(double kmax);
75 ElementMatrix* PenaltyCreateKMatrixDiagnosticStokes(double kmax);
[7833]76 ElementMatrix* PenaltyCreateKMatrixPrognostic(double kmax);
[4887]77 /*}}}*/
[3683]78};
79
80#endif /* _PENPAIR_H_ */
81
82
Note: See TracBrowser for help on using the repository browser.