Ice Sheet System Model  4.18
Code documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Channel.h
Go to the documentation of this file.
1 
5 #ifndef _CHANNEL_H_
6 #define _CHANNEL_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 Channel: public Load {
19 
20  private:
23  bool boundary;
24 
25  public:
26  int sid;
27  int id;
28 
29  /*Hooks*/
33 
34  /*Corresponding fields*/
39 
40  /*Channel constructors,destructors {{{*/
41  Channel();
42  Channel(int numericalflux_id,IssmDouble channelarea,int index,IoModel* iomodel);
43  //Channel(int numericalflux_id,int i,int index,IoModel* iomodel);
44  ~Channel();
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){/*Do nothing*/};
56  void InputUpdateFromConstant(int constant, int name){/*Do nothing*/};
57  void InputUpdateFromConstant(bool constant, int name){_error_("Not implemented yet!");}
58  void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
59  void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*Do nothing*/}
60  void InputUpdateFromVector(IssmDouble* vector, int name, int type){/*Do nothing*/}
61  void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*Do nothing*/}
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 GetNodesLidList(int* lidlist);
69  void GetNodesSidList(int* sidlist);
70  int GetNumberOfNodes(void);
71  bool IsPenalty(void);
72  void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");};
75  void ResetHooks();
77  void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
78  /*}}}*/
79  /*Channel management:{{{*/
80  void SetChannelCrossSectionOld(void);
81  void UpdateChannelCrossSection(void);
85  /*}}}*/
86 
87 };
88 
89 #endif /* _NUMERICALFLUX_H_ */
Matrix< IssmDouble >
Channel::GetNumberOfNodes
int GetNumberOfNodes(void)
Definition: Channel.cpp:258
Channel::GetNodesSidList
void GetNodesSidList(int *sidlist)
Definition: Channel.cpp:250
Vertices
Declaration of Vertices class.
Definition: Vertices.h:15
Channel::ResetHooks
void ResetHooks()
Definition: Channel.cpp:280
Channel
Definition: Channel.h:18
Channel::InputUpdateFromVectorDakota
void InputUpdateFromVectorDakota(IssmDouble *vector, int name, int type)
Definition: Channel.h:61
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
Channel::CreatePVectorHydrologyGlaDS
ElementVector * CreatePVectorHydrologyGlaDS(void)
Definition: Channel.cpp:487
Channel::hvertices
Hook * hvertices
Definition: Channel.h:32
Channel::hnodes
Hook * hnodes
Definition: Channel.h:31
Channel::CreateKMatrixHydrologyGlaDS
ElementMatrix * CreateKMatrixHydrologyGlaDS(void)
Definition: Channel.cpp:354
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Channel::S
IssmDouble S
Definition: Channel.h:21
Channel::id
int id
Definition: Channel.h:27
Channel::Sold
IssmDouble Sold
Definition: Channel.h:22
Elements
Declaration of Elements class.
Definition: Elements.h:17
Channel::PenaltyCreateJacobianMatrix
void PenaltyCreateJacobianMatrix(Matrix< IssmDouble > *Jff, IssmDouble kmax)
Definition: Channel.h:72
Load
Definition: Load.h:22
Channel::Channel
Channel()
Definition: Channel.cpp:30
Channel::GetNodesLidList
void GetNodesLidList(int *lidlist)
Definition: Channel.cpp:242
Channel::InputUpdateFromConstant
void InputUpdateFromConstant(bool constant, int name)
Definition: Channel.h:57
Element
Definition: Element.h:41
Channel::ObjectEnum
int ObjectEnum()
Definition: Channel.cpp:174
Channel::element
Element * element
Definition: Channel.h:35
Channel::vertices
Vertex ** vertices
Definition: Channel.h:36
Channel::PenaltyCreatePVector
void PenaltyCreatePVector(Vector< IssmDouble > *pf, IssmDouble kmax)
Definition: Channel.cpp:273
Object
Definition: Object.h:13
Channel::SetwiseNodeConnectivity
void SetwiseNodeConnectivity(int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
Definition: Channel.cpp:298
Channel::CreateJacobianMatrix
void CreateJacobianMatrix(Matrix< IssmDouble > *Jff)
Definition: Channel.h:65
Materials
Declaration of Materials class.
Definition: Materials.h:16
Channel::Configure
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Channel.cpp:179
Channel::IsPenalty
bool IsPenalty(void)
Definition: Channel.cpp:262
Channel::Echo
void Echo()
Definition: Channel.cpp:134
Load.h
abstract class for Load object This class is a place holder for the Icefront and the Penpair loads....
Channel::copy
Object * copy()
Definition: Channel.cpp:93
Hook
Definition: Hook.h:16
Channel::sid
int sid
Definition: Channel.h:26
Channel::boundary
bool boundary
Definition: Channel.h:23
Channel::CreateKMatrix
void CreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
Definition: Channel.cpp:196
Channel::CreatePVector
void CreatePVector(Vector< IssmDouble > *pf)
Definition: Channel.cpp:219
Channel::InputUpdateFromConstant
void InputUpdateFromConstant(int constant, int name)
Definition: Channel.h:56
Channel::InputUpdateFromIoModel
void InputUpdateFromIoModel(int index, IoModel *iomodel)
Definition: Channel.h:58
Channel::SetChannelCrossSectionOld
void SetChannelCrossSectionOld(void)
Definition: Channel.cpp:596
Channel::InputUpdateFromConstant
void InputUpdateFromConstant(IssmDouble constant, int name)
Definition: Channel.h:55
Channel::SetCurrentConfiguration
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Definition: Channel.cpp:294
Channel::~Channel
~Channel()
Definition: Channel.cpp:85
Channel::DeepEcho
void DeepEcho()
Definition: Channel.cpp:119
Loads
Declaration of Loads class.
Definition: Loads.h:16
Node
Definition: Node.h:23
Channel::InputUpdateFromMatrixDakota
void InputUpdateFromMatrixDakota(IssmDouble *matrix, int nrows, int ncols, int name, int type)
Definition: Channel.h:59
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
Channel::parameters
Parameters * parameters
Definition: Channel.h:38
Channel::helement
Hook * helement
Definition: Channel.h:30
ElementVector
Definition: ElementVector.h:20
Vertex
Definition: Vertex.h:19
IoModel
Definition: IoModel.h:48
IssmPDouble
IssmDouble IssmPDouble
Definition: types.h:38
Channel::WriteChannelCrossSection
void WriteChannelCrossSection(IssmPDouble *values)
Definition: Channel.cpp:716
ElementMatrix
Definition: ElementMatrix.h:19
Channel::PenaltyCreateKMatrix
void PenaltyCreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *kfs, IssmDouble kmax)
Definition: Channel.cpp:266
Channel::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Channel.cpp:148
Channel::nodes
Node ** nodes
Definition: Channel.h:37
Vector< IssmDouble >
Channel::Id
int Id()
Definition: Channel.cpp:144
Channel::UpdateChannelCrossSection
void UpdateChannelCrossSection(void)
Definition: Channel.cpp:601
Channel::InputUpdateFromVector
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
Definition: Channel.h:60