Ice Sheet System Model  4.18
Code documentation
Neumannflux.h
Go to the documentation of this file.
1 
5 #ifndef _NEUMANNFLUX_H_
6 #define _NEUMANNFLUX_H_
7 
8 /*Headers:*/
9 #include "./Load.h"
10 class Hook;
11 class Parameters;
12 class IoModel;
13 class Element;
14 class Vertex;
15 class ElementMatrix;
16 class ElementVector;
17 
18 class Neumannflux: public Load {
19 
20  public:
21  int id;
22 
23  /*Hooks*/
27 
28  /*Corresponding fields*/
33 
34  /*Neumannflux constructors,destructors {{{*/
35  Neumannflux();
36  Neumannflux(int numericalflux_id,int i,IoModel* iomodel,int* segments);
37  ~Neumannflux();
38  /*}}}*/
39  /*Object virtual functions definitions:{{{ */
40  Object *copy();
41  void DeepEcho();
42  void Echo();
43  int Id();
44  void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
45  int ObjectEnum();
46  /*}}}*/
47  /*Update virtual functions resolution: {{{*/
48  void InputUpdateFromConstant(IssmDouble constant, int name){/*Do nothing*/};
49  void InputUpdateFromConstant(int constant, int name){/*Do nothing*/};
50  void InputUpdateFromConstant(bool constant, int name){/*Do nothing*/};
51  void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
52  void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*Do nothing*/}
53  void InputUpdateFromVector(IssmDouble* vector, int name, int type){/*Do nothing*/}
54  void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*Do nothing*/}
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();
70  void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
71  /*}}}*/
72  /*Neumannflux management:{{{*/
75  /*}}}*/
76 
77 };
78 
79 #endif /* _NEUMANNFLUX_H_ */
Matrix< IssmDouble >
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Neumannflux::Echo
void Echo()
Definition: Neumannflux.cpp:114
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Neumannflux::hnodes
Hook * hnodes
Definition: Neumannflux.h:25
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Neumannflux::CreateJacobianMatrix
void CreateJacobianMatrix(Matrix< IssmDouble > *Jff)
Definition: Neumannflux.h:58
Neumannflux::InputUpdateFromIoModel
void InputUpdateFromIoModel(int index, IoModel *iomodel)
Definition: Neumannflux.h:51
Elements
Declaration of Elements class.
Definition: Elements.h:17
Neumannflux::InputUpdateFromMatrixDakota
void InputUpdateFromMatrixDakota(IssmDouble *matrix, int nrows, int ncols, int name, int type)
Definition: Neumannflux.h:52
Neumannflux::PenaltyCreatePVector
void PenaltyCreatePVector(Vector< IssmDouble > *pf, IssmDouble kmax)
Definition: Neumannflux.cpp:262
Load
Definition: Load.h:22
Neumannflux::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Neumannflux.cpp:127
Neumannflux::GetNodesLidList
void GetNodesLidList(int *lidlist)
Definition: Neumannflux.cpp:230
Neumannflux::SetwiseNodeConnectivity
void SetwiseNodeConnectivity(int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
Definition: Neumannflux.cpp:287
Neumannflux::hvertices
Hook * hvertices
Definition: Neumannflux.h:26
Neumannflux::CreateKMatrix
void CreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
Definition: Neumannflux.cpp:177
Neumannflux::GetNumberOfNodes
int GetNumberOfNodes(void)
Definition: Neumannflux.cpp:246
Neumannflux::parameters
Parameters * parameters
Definition: Neumannflux.h:32
Neumannflux::PenaltyCreateKMatrix
void PenaltyCreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *kfs, IssmDouble kmax)
Definition: Neumannflux.cpp:255
Neumannflux::id
int id
Definition: Neumannflux.h:21
Element
Definition: Element.h:41
Object
Definition: Object.h:13
Neumannflux::InputUpdateFromConstant
void InputUpdateFromConstant(int constant, int name)
Definition: Neumannflux.h:49
Neumannflux
Definition: Neumannflux.h:18
Materials
Declaration of Materials class.
Definition: Materials.h:16
Neumannflux::IsPenalty
bool IsPenalty(void)
Definition: Neumannflux.cpp:251
Neumannflux::CreatePVectorHydrologyGlaDS
ElementVector * CreatePVectorHydrologyGlaDS(void)
Definition: Neumannflux.cpp:387
Neumannflux::PenaltyCreateJacobianMatrix
void PenaltyCreateJacobianMatrix(Matrix< IssmDouble > *Jff, IssmDouble kmax)
Definition: Neumannflux.h:65
Neumannflux::Neumannflux
Neumannflux()
Definition: Neumannflux.cpp:22
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
Neumannflux::InputUpdateFromConstant
void InputUpdateFromConstant(bool constant, int name)
Definition: Neumannflux.h:50
Neumannflux::InputUpdateFromVector
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
Definition: Neumannflux.h:53
Neumannflux::InputUpdateFromConstant
void InputUpdateFromConstant(IssmDouble constant, int name)
Definition: Neumannflux.h:48
Neumannflux::helement
Hook * helement
Definition: Neumannflux.h:24
Neumannflux::GetNodesSidList
void GetNodesSidList(int *sidlist)
Definition: Neumannflux.cpp:238
Neumannflux::nodes
Node ** nodes
Definition: Neumannflux.h:31
Neumannflux::DeepEcho
void DeepEcho()
Definition: Neumannflux.cpp:100
Neumannflux::ObjectEnum
int ObjectEnum()
Definition: Neumannflux.cpp:152
Neumannflux::CreatePVectorHydrologyShakti
ElementVector * CreatePVectorHydrologyShakti(void)
Definition: Neumannflux.cpp:343
Neumannflux::Configure
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Neumannflux.cpp:160
Neumannflux::vertices
Vertex ** vertices
Definition: Neumannflux.h:30
Loads
Declaration of Loads class.
Definition: Loads.h:16
Neumannflux::copy
Object * copy()
Definition: Neumannflux.cpp:75
Node
Definition: Node.h:23
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Neumannflux::element
Element * element
Definition: Neumannflux.h:29
Neumannflux::InputUpdateFromVectorDakota
void InputUpdateFromVectorDakota(IssmDouble *vector, int name, int type)
Definition: Neumannflux.h:54
Neumannflux::Id
int Id()
Definition: Neumannflux.cpp:123
Neumannflux::~Neumannflux
~Neumannflux()
Definition: Neumannflux.cpp:66
ElementVector
Definition: ElementVector.h:20
Vertex
Definition: Vertex.h:19
IoModel
Definition: IoModel.h:48
Neumannflux::ResetHooks
void ResetHooks()
Definition: Neumannflux.cpp:269
ElementMatrix
Definition: ElementMatrix.h:19
Vector< IssmDouble >
Neumannflux::CreatePVector
void CreatePVector(Vector< IssmDouble > *pf)
Definition: Neumannflux.cpp:204
Neumannflux::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Neumannflux.cpp:283