Ice Sheet System Model  4.18
Code documentation
Riftfront.h
Go to the documentation of this file.
1 
5 #ifndef _RIFTFRONT_H_
6 #define _RIFTFRONT_H_
7 
8 /*Headers:*/
9 /*{{{*/
10 #include "./Load.h"
11 class Hook;
12 class Parameters;
13 class IoModel;
14 /*}}}*/
15 
16 class Riftfront: public Load {
17 
18  public:
19  int id;
20 
21  /*properties*/
22  int type;
23  int fill;
26  bool shelf;
27 
28  /*hooks: */
32 
33  /*Corresponding fields*/
37 
38  /*computational: */
40  bool active;
41  bool frozen;
42  int counter;
43  bool prestable;
48  int state;
49 
50  Parameters *parameters; //pointer to solution parameters
51 
52  /*Riftfrontconstructors,destructors: {{{*/
53  Riftfront();
54  Riftfront(int riftfront_id,int i, IoModel* iomodel);
55  ~Riftfront();
56  /*}}}*/
57  /*Object virtual functions definitions:{{{ */
58  Object* copy();
59  void DeepEcho();
60  void Echo();
61  int Id();
62  void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
63  int ObjectEnum();
64  /*}}}*/
65  /*Update virtual functions resolution: {{{*/
66  void InputUpdateFromConstant(IssmDouble constant, int name);
67  void InputUpdateFromConstant(int constant, int name){_error_("Not implemented yet!");}
68  void InputUpdateFromConstant(bool constant, int name);
69  void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
70  void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows,int ncols, int name, int type){_error_("Not implemented yet!");}
71  void InputUpdateFromVector(IssmDouble* vector, int name, int type);
72  void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("Not implemented yet!");}
73  /*}}}*/
74  /*Load virtual functions definitions: {{{*/
76  void CreateJacobianMatrix(Matrix<IssmDouble>* Jff){_error_("Not implemented yet");};
79  void GetNodesLidList(int* lidlist);
80  void GetNodesSidList(int* sidlist);
81  int GetNumberOfNodes(void);
82  bool IsPenalty(void);
83  void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");};
86  void ResetHooks();
88  void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
89  /*}}}*/
90  /*Riftfront specific routines: {{{*/
91  int Constrain(int* punstable);
92  void FreezeConstraints(void);
93  bool IsFrozen(void);
96  /*}}}*/
97 };
98 #endif /* _RIFTFRONT_H_ */
Matrix< IssmDouble >
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Riftfront::normal
IssmDouble normal[2]
Definition: Riftfront.h:45
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Riftfront::material_converged
bool material_converged
Definition: Riftfront.h:44
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Riftfront::shelf
bool shelf
Definition: Riftfront.h:26
Elements
Declaration of Elements class.
Definition: Elements.h:17
Riftfront::Configure
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Riftfront.cpp:254
Riftfront::InputUpdateFromConstant
void InputUpdateFromConstant(int constant, int name)
Definition: Riftfront.h:67
Riftfront::penalty_lock
int penalty_lock
Definition: Riftfront.h:39
Load
Definition: Load.h:22
Riftfront::DeepEcho
void DeepEcho()
Definition: Riftfront.cpp:151
Riftfront::SetwiseNodeConnectivity
void SetwiseNodeConnectivity(int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
Definition: Riftfront.cpp:375
Riftfront::hvertices
Hook * hvertices
Definition: Riftfront.h:30
Riftfront::InputUpdateFromConstant
void InputUpdateFromConstant(IssmDouble constant, int name)
Definition: Riftfront.cpp:242
Riftfront::Riftfront
Riftfront()
Definition: Riftfront.cpp:22
Riftfront::length
IssmDouble length
Definition: Riftfront.h:46
Riftfront::InputUpdateFromVector
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
Definition: Riftfront.cpp:246
Riftfront::elements
Element ** elements
Definition: Riftfront.h:36
Riftfront::CreateKMatrix
void CreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
Definition: Riftfront.cpp:272
Element
Definition: Element.h:41
Riftfront::parameters
Parameters * parameters
Definition: Riftfront.h:50
Riftfront::ObjectEnum
int ObjectEnum()
Definition: Riftfront.cpp:231
Riftfront::hnodes
Hook * hnodes
Definition: Riftfront.h:29
Object
Definition: Object.h:13
Riftfront::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Riftfront.cpp:189
Riftfront::copy
Object * copy()
Definition: Riftfront.cpp:107
Materials
Declaration of Materials class.
Definition: Materials.h:16
Riftfront::CreateJacobianMatrix
void CreateJacobianMatrix(Matrix< IssmDouble > *Jff)
Definition: Riftfront.h:76
Riftfront::GetNumberOfNodes
int GetNumberOfNodes(void)
Definition: Riftfront.cpp:298
Load.h
abstract class for Load object This class is a place holder for the Icefront and the Penpair loads....
Hook
Definition: Hook.h:16
Riftfront::Id
int Id()
Definition: Riftfront.cpp:187
Riftfront::state
int state
Definition: Riftfront.h:48
Riftfront::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Riftfront.cpp:371
Riftfront::active
bool active
Definition: Riftfront.h:40
Riftfront::friction
IssmDouble friction
Definition: Riftfront.h:24
Riftfront::helements
Hook * helements
Definition: Riftfront.h:31
Riftfront::~Riftfront
~Riftfront()
Definition: Riftfront.cpp:98
Riftfront::FreezeConstraints
void FreezeConstraints(void)
Definition: Riftfront.cpp:675
Riftfront::PenaltyCreateKMatrix
void PenaltyCreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *kfs, IssmDouble kmax)
Definition: Riftfront.cpp:307
Riftfront::fraction
IssmDouble fraction
Definition: Riftfront.h:47
Riftfront::Constrain
int Constrain(int *punstable)
Definition: Riftfront.cpp:594
Riftfront::fractionincrement
IssmDouble fractionincrement
Definition: Riftfront.h:25
Riftfront::GetNodesSidList
void GetNodesSidList(int *sidlist)
Definition: Riftfront.cpp:290
Riftfront::IsFrozen
bool IsFrozen(void)
Definition: Riftfront.cpp:682
Riftfront::PenaltyCreateKMatrixStressbalanceHoriz
ElementMatrix * PenaltyCreateKMatrixStressbalanceHoriz(IssmDouble kmax)
Definition: Riftfront.cpp:431
Loads
Declaration of Loads class.
Definition: Loads.h:16
Node
Definition: Node.h:23
Riftfront::InputUpdateFromIoModel
void InputUpdateFromIoModel(int index, IoModel *iomodel)
Definition: Riftfront.h:69
Riftfront::ResetHooks
void ResetHooks()
Definition: Riftfront.cpp:357
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Riftfront::vertices
Vertex ** vertices
Definition: Riftfront.h:35
Riftfront::PenaltyCreatePVector
void PenaltyCreatePVector(Vector< IssmDouble > *pf, IssmDouble kmax)
Definition: Riftfront.cpp:332
Riftfront::IsPenalty
bool IsPenalty(void)
Definition: Riftfront.cpp:303
Riftfront::nodes
Node ** nodes
Definition: Riftfront.h:34
Riftfront::PenaltyCreatePVectorStressbalanceHoriz
ElementVector * PenaltyCreatePVectorStressbalanceHoriz(IssmDouble kmax)
Definition: Riftfront.cpp:504
Riftfront::counter
int counter
Definition: Riftfront.h:42
Riftfront::frozen
bool frozen
Definition: Riftfront.h:41
Riftfront::PenaltyCreateJacobianMatrix
void PenaltyCreateJacobianMatrix(Matrix< IssmDouble > *Jff, IssmDouble kmax)
Definition: Riftfront.h:83
ElementVector
Definition: ElementVector.h:20
Riftfront::fill
int fill
Definition: Riftfront.h:23
Riftfront::type
int type
Definition: Riftfront.h:22
Vertex
Definition: Vertex.h:19
IoModel
Definition: IoModel.h:48
Riftfront::CreatePVector
void CreatePVector(Vector< IssmDouble > *pf)
Definition: Riftfront.cpp:277
Riftfront::GetNodesLidList
void GetNodesLidList(int *lidlist)
Definition: Riftfront.cpp:282
ElementMatrix
Definition: ElementMatrix.h:19
Vector< IssmDouble >
Riftfront::InputUpdateFromMatrixDakota
void InputUpdateFromMatrixDakota(IssmDouble *matrix, int nrows, int ncols, int name, int type)
Definition: Riftfront.h:70
Riftfront::Echo
void Echo()
Definition: Riftfront.cpp:162
Riftfront::prestable
bool prestable
Definition: Riftfront.h:43
Riftfront
Definition: Riftfront.h:16
Riftfront::InputUpdateFromVectorDakota
void InputUpdateFromVectorDakota(IssmDouble *vector, int name, int type)
Definition: Riftfront.h:72
Riftfront::id
int id
Definition: Riftfront.h:19