source: issm/branches/trunk-jpl-damage/src/c/objects/Loads/Riftfront.h@ 12168

Last change on this file since 12168 was 12168, checked in by cborstad, 13 years ago

merged trunk-jpl into branch through revision 12167

File size: 3.5 KB
Line 
1/*!\file Riftfront.h
2 * \brief: header file for riftfront object
3 */
4
5#ifndef _RIFTFRONT_H_
6#define _RIFTFRONT_H_
7
8/*Headers:*/
9/*{{{1*/
10#include "./Load.h"
11class Hook;
12class Parameters;
13class Inputs;
14class IoModel;
15/*}}}*/
16
17class Riftfront: public Load {
18
19 public:
20 int id;
21 int analysis_type;
22
23 /*hooks: */
24 Hook* hnodes;
25 Hook* helements;
26 Hook* hmatpar;
27
28 /*Corresponding fields*/
29 Matpar *matpar;
30 Node **nodes;
31 Element **elements;
32
33 /*computational: */
34 int penalty_lock;
35 bool active;
36 bool frozen;
37 int counter;
38 bool prestable;
39 bool material_converged;
40 double normal[2];
41 double length;
42 double fraction;
43 int state;
44
45 Parameters* parameters; //pointer to solution parameters
46 Inputs* inputs;
47
48
49 /*Riftfrontconstructors,destructors: {{{1*/
50 Riftfront();
51 Riftfront(int riftfront_id,int i, IoModel* iomodel,int analysis_type);
52 ~Riftfront();
53 /*}}}*/
54 /*Object virtual functions definitions:{{{1 */
55 void Echo();
56 void DeepEcho();
57 int Id();
58 int MyRank();
59 int ObjectEnum();
60 Object* copy();
61 /*}}}*/
62 /*Update virtual functions resolution: {{{1*/
63 void InputUpdateFromVector(double* vector, int name, int type);
64 void InputUpdateFromVector(int* vector, int name, int type){_error_("Not implemented yet!");}
65 void InputUpdateFromVector(bool* vector, int name, int type){_error_("Not implemented yet!");}
66 void InputUpdateFromMatrixDakota(double* matrix, int nrows,int ncols, int name, int type){_error_("Not implemented yet!");}
67 void InputUpdateFromVectorDakota(double* vector, int name, int type){_error_("Not implemented yet!");}
68 void InputUpdateFromVectorDakota(int* vector, int name, int type){_error_("Not implemented yet!");}
69 void InputUpdateFromVectorDakota(bool* vector, int name, int type){_error_("Not implemented yet!");}
70 void InputUpdateFromConstant(double constant, int name);
71 void InputUpdateFromConstant(int constant, int name){_error_("Not implemented yet!");}
72 void InputUpdateFromConstant(bool constant, int name);
73 void InputUpdateFromSolution(double* solution){_error_("Not implemented yet!");}
74 void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
75 /*}}}*/
76 /*Load virtual functions definitions: {{{1*/
77 void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
78 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
79 void CreateKMatrix(Matrix* Kff, Matrix* Kfs);
80 void CreatePVector(Vector* pf);
81 void CreateJacobianMatrix(Matrix* Jff){_error_("Not implemented yet");};
82 void PenaltyCreateJacobianMatrix(Matrix* Jff,double kmax){_error_("Not implemented yet");};
83 void PenaltyCreateKMatrix(Matrix* Kff, Matrix* kfs, double kmax);
84 void PenaltyCreatePVector(Vector* pf, double kmax);
85 bool InAnalysis(int analysis_type);
86 /*}}}*/
87 /*Riftfront specific routines: {{{1*/
88 bool PreStable();
89 ElementMatrix* PenaltyCreateKMatrixDiagnosticHoriz(double kmax);
90 ElementVector* PenaltyCreatePVectorDiagnosticHoriz(double kmax);
91 void SetPreStable();
92 int PreConstrain(int* punstable);
93 int Constrain(int* punstable);
94 void FreezeConstraints(void);
95 bool IsFrozen(void);
96 int Penetration(double* ppenetration);
97 int MaxPenetration(double* ppenetration);
98 int PotentialUnstableConstraint(int* punstable);
99 int IsMaterialStable(void);
100 bool IsInput(int name);
101 /*}}}*/
102};
103
104#endif /* _RIFTFRONT_H_ */
Note: See TracBrowser for help on using the repository browser.