Ice Sheet System Model  4.18
Code documentation
Pengrid.h
Go to the documentation of this file.
1 
4 #ifndef _PENGRID_H_
5 #define _PENGRID_H_
6 
7 /*Headers:*/
8 /*{{{*/
9 #ifdef HAVE_CONFIG_H
10 #include <config.h>
11 #else
12 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
13 #endif
14 #include "./Load.h"
15 class Hook;
16 class Inputs;
17 class Parameters;
18 class IoModel;
19 /*}}}*/
20 
21 class Pengrid: public Load{
22 
23  private:
24 
25  int id;
26 
27  /*Hooks*/
28  Hook* hnode; //hook to 1 node
29  Hook* helement; //hook to 1 element
30 
31  /*Corresponding fields*/
34 
35  Parameters* parameters; //pointer to solution parameters
36 
37  /*internals: */
38  int active;
40 
41  public:
42 
43  /*Pengrid constructors, destructors {{{*/
44  Pengrid();
45  Pengrid(int id, int index, IoModel* iomodel);
46  ~Pengrid();
47  /*}}}*/
48  /*Object virtual functions definitions:{{{ */
49  Object* copy();
50  void DeepEcho();
51  void Echo();
52  int Id();
53  void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
54  int ObjectEnum();
55  /*}}}*/
56  /*Load virtual functions definitions: {{{*/
57  void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
58  void CreateJacobianMatrix(Matrix<IssmDouble>* Jff){_error_("Not implemented yet");};
61  void GetNodesLidList(int* lidlist);
62  void GetNodesSidList(int* sidlist);
63  int GetNumberOfNodes(void);
64  bool IsPenalty(void);
65  void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");};
68  void ResetHooks();
69  void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
70  void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
71  /*}}}*/
72  /*Pengrid management {{{*/
73  void ConstraintActivate(int* punstable);
74  void ConstraintActivateHydrologyDCInefficient(int* punstable);
75  void ConstraintActivateThermal(int* punstable);
82  void ResetConstraint(void);
83  void ResetZigzagCounter(void);
84  /*}}}*/
85 
86 };
87 
88 #endif /* _PENGRID_H_ */
Matrix< IssmDouble >
Pengrid::PenaltyCreateKMatrixHydrologyDCInefficient
ElementMatrix * PenaltyCreateKMatrixHydrologyDCInefficient(IssmDouble kmax)
Definition: Pengrid.cpp:480
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Pengrid::ConstraintActivate
void ConstraintActivate(int *punstable)
Definition: Pengrid.cpp:332
Pengrid::SetwiseNodeConnectivity
void SetwiseNodeConnectivity(int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
Definition: Pengrid.cpp:280
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Pengrid::Id
int Id()
Definition: Pengrid.cpp:119
Pengrid::PenaltyCreateKMatrix
void PenaltyCreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *kfs, IssmDouble kmax)
Definition: Pengrid.cpp:206
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Elements
Declaration of Elements class.
Definition: Elements.h:17
Pengrid::DeepEcho
void DeepEcho()
Definition: Pengrid.cpp:103
Pengrid::ConstraintActivateThermal
void ConstraintActivateThermal(int *punstable)
Definition: Pengrid.cpp:417
Load
Definition: Load.h:22
Pengrid::CreatePVector
void CreatePVector(Vector< IssmDouble > *pf)
Definition: Pengrid.cpp:175
Pengrid::PenaltyCreateKMatrixThermal
ElementMatrix * PenaltyCreateKMatrixThermal(IssmDouble kmax)
Definition: Pengrid.cpp:524
Pengrid::active
int active
Definition: Pengrid.h:38
Pengrid::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Pengrid.cpp:121
Pengrid::PenaltyCreatePVectorMelting
ElementVector * PenaltyCreatePVectorMelting(IssmDouble kmax)
Definition: Pengrid.cpp:565
Pengrid::Echo
void Echo()
Definition: Pengrid.cpp:115
Pengrid::PenaltyCreateJacobianMatrix
void PenaltyCreateJacobianMatrix(Matrix< IssmDouble > *Jff, IssmDouble kmax)
Definition: Pengrid.h:65
Pengrid::Pengrid
Pengrid()
Definition: Pengrid.cpp:22
Pengrid::PenaltyCreatePVectorThermal
ElementVector * PenaltyCreatePVectorThermal(IssmDouble kmax)
Definition: Pengrid.cpp:606
Pengrid::GetNodesSidList
void GetNodesSidList(int *sidlist)
Definition: Pengrid.cpp:189
Element
Definition: Element.h:41
Pengrid::Configure
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Pengrid.cpp:153
Object
Definition: Object.h:13
Pengrid::CreateJacobianMatrix
void CreateJacobianMatrix(Matrix< IssmDouble > *Jff)
Definition: Pengrid.h:58
Pengrid::element
Element * element
Definition: Pengrid.h:33
Materials
Declaration of Materials class.
Definition: Materials.h:16
Pengrid::id
int id
Definition: Pengrid.h:25
Pengrid::zigzag_counter
int zigzag_counter
Definition: Pengrid.h:39
Pengrid::GetNodesLidList
void GetNodesLidList(int *lidlist)
Definition: Pengrid.cpp:181
Pengrid::ResetZigzagCounter
void ResetZigzagCounter(void)
Definition: Pengrid.cpp:636
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
Pengrid
Definition: Pengrid.h:21
Pengrid::ObjectEnum
int ObjectEnum()
Definition: Pengrid.cpp:146
Pengrid::ConstraintActivateHydrologyDCInefficient
void ConstraintActivateHydrologyDCInefficient(int *punstable)
Definition: Pengrid.cpp:357
Pengrid::GetNumberOfNodes
int GetNumberOfNodes(void)
Definition: Pengrid.cpp:197
Pengrid::ResetHooks
void ResetHooks()
Definition: Pengrid.cpp:264
Pengrid::IsPenalty
bool IsPenalty(void)
Definition: Pengrid.cpp:202
Pengrid::CreateKMatrix
void CreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
Definition: Pengrid.cpp:168
Pengrid::PenaltyCreatePVector
void PenaltyCreatePVector(Vector< IssmDouble > *pf, IssmDouble kmax)
Definition: Pengrid.cpp:234
Pengrid::parameters
Parameters * parameters
Definition: Pengrid.h:35
Loads
Declaration of Loads class.
Definition: Loads.h:16
Node
Definition: Node.h:23
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Pengrid::PenaltyCreatePVectorHydrologyDCInefficient
ElementVector * PenaltyCreatePVectorHydrologyDCInefficient(IssmDouble kmax)
Definition: Pengrid.cpp:541
Pengrid::ResetConstraint
void ResetConstraint(void)
Definition: Pengrid.cpp:631
Pengrid::hnode
Hook * hnode
Definition: Pengrid.h:28
Pengrid::copy
Object * copy()
Definition: Pengrid.cpp:75
Pengrid::node
Node * node
Definition: Pengrid.h:32
ElementVector
Definition: ElementVector.h:20
IoModel
Definition: IoModel.h:48
Pengrid::helement
Hook * helement
Definition: Pengrid.h:29
Pengrid::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Pengrid.cpp:276
ElementMatrix
Definition: ElementMatrix.h:19
Vector< IssmDouble >
Pengrid::~Pengrid
~Pengrid()
Definition: Pengrid.cpp:67
Pengrid::PenaltyCreateKMatrixMelting
ElementMatrix * PenaltyCreateKMatrixMelting(IssmDouble kmax)
Definition: Pengrid.cpp:496