source: issm/trunk-jpl/src/c/classes/objects/Node.h@ 13623

Last change on this file since 13623 was 13623, checked in by Mathieu Morlighem, 12 years ago

CHG: cosmetics, removing all deboule blank lines and indent single white lines correctly

File size: 3.7 KB
Line 
1/*!\file Node.h
2 * \brief: header file for node object
3 */
4
5#ifndef _NODE_H_
6#define _NODE_H_
7
8/*Headers:*/
9/*{{{*/
10#include "./Object.h"
11#include "../../shared/shared.h"
12#include "../DofIndexing.h"
13class Inputs;
14class Hook;
15class IoModel;
16class DataSet;
17class Vertices;
18template <class doubletype> class Vector;
19template <class doubletype> class Matrix;
20#include "../Update.h"
21/*}}}*/
22
23class Node: public Object ,public Update{
24
25 public:
26
27 int id; //unique arbitrary id.
28 int sid; //"serial" id (rank of this node if the dataset was serial on 1 cpu)
29
30 DofIndexing indexing;
31 Hook *hvertex;
32 Inputs *inputs; //properties of this node
33 int analysis_type;
34 IssmDouble coord_system[3][3];
35
36 /*Node constructors, destructors {{{*/
37 Node();
38 Node(int node_id,int node_sid, int vertex_id,int io_index, IoModel* iomodel,int analysis_type);
39 ~Node();
40 /*}}}*/
41 /*Object virtual functions definitions:{{{ */
42 void Echo();
43 void DeepEcho();
44 int Id();
45 int ObjectEnum();
46 Object *copy() {_error_("Not implemented yet (similar to Elements)"); };
47 /*}}}*/
48 /*Update virtual functions definitions: {{{*/
49 void InputUpdateFromVector(IssmDouble* vector, int name, int type);
50 void InputUpdateFromVector(int* vector, int name, int type);
51 void InputUpdateFromVector(bool* vector, int name, int type);
52 void InputUpdateFromMatrixDakota(IssmDouble* matrix,int nrows, int ncols, int name, int type);
53 void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
54 void InputUpdateFromVectorDakota(int* vector, int name, int type);
55 void InputUpdateFromVectorDakota(bool* vector, int name, int type);
56 void InputUpdateFromConstant(IssmDouble constant, int name);
57 void InputUpdateFromConstant(int constant, int name);
58 void InputUpdateFromConstant(bool constant, int name);
59 void InputUpdateFromSolution(IssmDouble* solution){_error_("Not implemented yet!");}
60 void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("Not implemented yet!");}
61 /*}}}*/
62 /*Node numerical routines {{{*/
63 void Configure(DataSet* nodes,Vertices* vertices);
64 void CreateNodalConstraints(Vector<IssmDouble>* ys);
65 void SetCurrentConfiguration(DataSet* nodes,Vertices* vertices);
66 int Sid(void);
67#ifdef _HAVE_DIAGNOSTIC_
68 void GetCoordinateSystem(IssmDouble* coord_system_out);
69#endif
70 bool InAnalysis(int analysis_type);
71 int GetApproximation();
72 int GetNumberOfDofs(int approximation_enum,int setenum);
73 int IsClone();
74 void ApplyConstraint(int dof,IssmDouble value);
75 void RelaxConstraint(int dof);
76 void DofInSSet(int dof);
77 void DofInFSet(int dof);
78 int GetDof(int dofindex,int setenum);
79 void CreateVecSets(Vector<IssmDouble>* pv_g,Vector<IssmDouble>* pv_f,Vector<IssmDouble>* pv_s);
80 int GetConnectivity();
81 void GetDofList(int* poutdoflist,int approximation_enum,int setenum);
82 void GetLocalDofList(int* poutdoflist,int approximation_enum,int setenum);
83 int GetVertexId(void);
84 int GetVertexPid(void);
85 int GetVertexSid(void);
86 IssmDouble GetX();
87 IssmDouble GetY();
88 IssmDouble GetZ();
89 IssmDouble GetSigma();
90 int IsOnBed();
91 int IsOnSurface();
92 void FreezeDof(int dof);
93 int IsFloating();
94 int IsGrounded();
95 void UpdateSpcs(IssmDouble* ys);
96 void VecMerge(Vector<IssmDouble>* ug, IssmDouble* vector_serial,int setenum);
97 void VecReduce(Vector<IssmDouble>* vector, IssmDouble* ug_serial,int setnum);
98 void DistributeDofs(int* pdofcount,int setenum);
99 void OffsetDofs(int dofcount,int setenum);
100 void ShowTrueDofs(int* truerows,int ncols,int setenum);
101 void UpdateCloneDofs(int* alltruerows,int ncols,int setenum);
102 void SetClone(int* minranks);
103 /*}}}*/
104};
105
106#endif /* _NODE_H_ */
Note: See TracBrowser for help on using the repository browser.