Ice Sheet System Model  4.18
Code documentation
Moulin.h
Go to the documentation of this file.
1 
4 #ifndef _MOULIN_H_
5 #define _MOULIN_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 Moulin: public Load{
22 
23  private:
24 
25  int id;
26 
27  /*Hooks*/
28  Hook* hnode; //hook to 1 node
29  Hook* hvertex; //hook to 1 vertex
30  Hook* helement; //hook to 1 element
31 
32  /*Corresponding fields*/
36 
37  Parameters* parameters; //pointer to solution parameters
38 
39  public:
40 
41  /*Moulin constructors, destructors {{{*/
42  Moulin();
43  Moulin(int index, int id, IoModel* iomodel);
44  ~Moulin();
45  /*}}}*/
46  /*Object virtual functions definitions:{{{ */
47  Object* copy();
48  void DeepEcho();
49  void Echo();
50  int Id();
51  void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
52  int ObjectEnum();
53  /*}}}*/
54  /*Update virtual functions resolution: {{{*/
55  void InputUpdateFromConstant(IssmDouble constant, int name);
56  void InputUpdateFromConstant(int constant, int name);
57  void InputUpdateFromConstant(bool constant, int name);
58  void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
59  void InputUpdateFromMatrixDakota(IssmDouble* matrix ,int nrows, int ncols, int name, int type);
60  void InputUpdateFromVector(IssmDouble* vector, int name, int type);
61  void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
62  /*}}}*/
63  /*Load virtual functions definitions: {{{*/
64  void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
65  void CreateJacobianMatrix(Matrix<IssmDouble>* Jff){_error_("Not implemented yet");};
68  void GetNodesSidList(int* sidlist);
69  void GetNodesLidList(int* lidlist);
70  int GetNumberOfNodes(void);
71  bool IsPenalty(void);
72  void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");};
75  void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
76  void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
77  void ResetHooks();
78  /*}}}*/
79 
85 };
86 
87 #endif /* _MOULIN_H_ */
Matrix< IssmDouble >
Moulin::CreateKMatrix
void CreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
Definition: Moulin.cpp:159
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Moulin::hvertex
Hook * hvertex
Definition: Moulin.h:29
IssmDouble
double IssmDouble
Definition: types.h:37
Moulin::CreateKMatrixHydrologyGlaDS
ElementMatrix * CreateKMatrixHydrologyGlaDS(void)
Definition: Moulin.cpp:353
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Moulin::CreatePVectorHydrologyDCInefficient
ElementVector * CreatePVectorHydrologyDCInefficient(void)
Definition: Moulin.cpp:419
Moulin::id
int id
Definition: Moulin.h:25
Moulin::GetNumberOfNodes
int GetNumberOfNodes(void)
Definition: Moulin.cpp:238
Moulin
Definition: Moulin.h:21
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Moulin::InputUpdateFromVectorDakota
void InputUpdateFromVectorDakota(IssmDouble *vector, int name, int type)
Definition: Moulin.cpp:348
Moulin::DeepEcho
void DeepEcho()
Definition: Moulin.cpp:94
Elements
Declaration of Elements class.
Definition: Elements.h:17
Moulin::PenaltyCreateKMatrix
void PenaltyCreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *kfs, IssmDouble kmax)
Definition: Moulin.cpp:247
Moulin::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Moulin.cpp:271
Load
Definition: Load.h:22
Moulin::CreatePVector
void CreatePVector(Vector< IssmDouble > *pf)
Definition: Moulin.cpp:191
Moulin::GetNodesLidList
void GetNodesLidList(int *lidlist)
Definition: Moulin.cpp:222
Moulin::helement
Hook * helement
Definition: Moulin.h:30
Moulin::CreatePVectorHydrologyShakti
ElementVector * CreatePVectorHydrologyShakti(void)
Definition: Moulin.cpp:401
Moulin::Moulin
Moulin()
Definition: Moulin.cpp:22
Moulin::PenaltyCreateJacobianMatrix
void PenaltyCreateJacobianMatrix(Matrix< IssmDouble > *Jff, IssmDouble kmax)
Definition: Moulin.h:72
Moulin::hnode
Hook * hnode
Definition: Moulin.h:28
Moulin::Echo
void Echo()
Definition: Moulin.cpp:105
Moulin::vertex
Vertex * vertex
Definition: Moulin.h:34
Element
Definition: Element.h:41
Moulin::element
Element * element
Definition: Moulin.h:35
Moulin::CreatePVectorHydrologyGlaDS
ElementVector * CreatePVectorHydrologyGlaDS(void)
Definition: Moulin.cpp:375
Moulin::InputUpdateFromConstant
void InputUpdateFromConstant(IssmDouble constant, int name)
Definition: Moulin.cpp:327
Object
Definition: Object.h:13
Materials
Declaration of Materials class.
Definition: Materials.h:16
Moulin::SetwiseNodeConnectivity
void SetwiseNodeConnectivity(int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
Definition: Moulin.cpp:275
Moulin::InputUpdateFromIoModel
void InputUpdateFromIoModel(int index, IoModel *iomodel)
Definition: Moulin.h:58
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
Moulin::Id
int Id()
Definition: Moulin.cpp:109
Moulin::node
Node * node
Definition: Moulin.h:33
Moulin::ObjectEnum
int ObjectEnum()
Definition: Moulin.cpp:135
Moulin::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Moulin.cpp:111
Moulin::GetNodesSidList
void GetNodesSidList(int *sidlist)
Definition: Moulin.cpp:230
Loads
Declaration of Loads class.
Definition: Loads.h:16
Node
Definition: Node.h:23
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Moulin::copy
Object * copy()
Definition: Moulin.cpp:69
Moulin::parameters
Parameters * parameters
Definition: Moulin.h:37
Moulin::IsPenalty
bool IsPenalty(void)
Definition: Moulin.cpp:243
Moulin::PenaltyCreatePVector
void PenaltyCreatePVector(Vector< IssmDouble > *pf, IssmDouble kmax)
Definition: Moulin.cpp:253
Moulin::InputUpdateFromVector
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
Definition: Moulin.cpp:344
Moulin::CreateJacobianMatrix
void CreateJacobianMatrix(Matrix< IssmDouble > *Jff)
Definition: Moulin.h:65
Moulin::ResetHooks
void ResetHooks()
Definition: Moulin.cpp:258
ElementVector
Definition: ElementVector.h:20
Vertex
Definition: Vertex.h:19
IoModel
Definition: IoModel.h:48
Moulin::CreatePVectorHydrologyDCEfficient
ElementVector * CreatePVectorHydrologyDCEfficient(void)
Definition: Moulin.cpp:451
ElementMatrix
Definition: ElementMatrix.h:19
Vector< IssmDouble >
Moulin::~Moulin
~Moulin()
Definition: Moulin.cpp:60
Moulin::InputUpdateFromMatrixDakota
void InputUpdateFromMatrixDakota(IssmDouble *matrix, int nrows, int ncols, int name, int type)
Definition: Moulin.cpp:340
Moulin::Configure
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Moulin.cpp:142