Ice Sheet System Model  4.18
Code documentation
Nodalvalue.cpp
Go to the documentation of this file.
1 
4 #ifdef HAVE_CONFIG_H
5  #include <config.h>
6 #else
7 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
8 #endif
9 
10 /*Headers:*/
11 /*{{{*/
12 #include "./Elements/Element.h"
13 #include "./Elements/Elements.h"
14 #include "./FemModel.h"
15 #include "../modules/SurfaceAreax/SurfaceAreax.h"
16 #include "../classes/Params/Parameters.h"
17 #include "../classes/gauss/Gauss.h"
18 #include "./classes.h"
19 /*}}}*/
20 
21  /*Nodalvalue constructors, destructors :*/
23 
24  this->definitionenum = -1;
25  this->name = NULL;
26  this->model_enum = UNDEF;
27  this->node = -1;
28 
29 }
30 /*}}}*/
31 Nodalvalue::Nodalvalue(char* in_name, int in_definitionenum, int in_model_enum, int in_node){/*{{{*/
32 
33  this->definitionenum=in_definitionenum;
34  this->name = xNew<char>(strlen(in_name)+1);
35  xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
36 
37  this->model_enum=in_model_enum;
38  this->node=in_node;
39 }
40 /*}}}*/
42  if(this->name)xDelete(this->name);
43 }
44 /*}}}*/
45 /*Object virtual function resolutoin: */
47  Nodalvalue* mf = new Nodalvalue(this->name,this->definitionenum, this->model_enum,this->node);
48  return (Object*) mf;
49 }
50 /*}}}*/
51 void Nodalvalue::DeepEcho(void){/*{{{*/
52  this->Echo();
53 }
54 /*}}}*/
55 void Nodalvalue::Echo(void){/*{{{*/
56  _printf_(" Nodalvalue: " << name << " " << this->definitionenum << "\n");
57  _printf_(" model_enum: " << model_enum << " " << EnumToStringx(model_enum) << "\n");
58  _printf_(" node: " << node << "\n");
59 }
60 /*}}}*/
61 int Nodalvalue::Id(void){/*{{{*/
62  return -1;
63 }
64 /*}}}*/
65 void Nodalvalue::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
66  _error_("not implemented yet!");
67 }
68 /*}}}*/
69 int Nodalvalue::ObjectEnum(void){/*{{{*/
70  return NodalvalueEnum;
71 }
72 /*}}}*/
73 /*Definition virtual function resolutoin: */
75 
76  return this->definitionenum;
77 }
78 /*}}}*/
79 char* Nodalvalue::Name(){/*{{{*/
80 
81  char* name2=xNew<char>(strlen(this->name)+1);
82  xMemCpy(name2,this->name,strlen(this->name)+1);
83 
84  return name2;
85 }
86 /*}}}*/
88 
89  /*output:*/
90  IssmDouble value;
91 
92  /*set index, which will be used by the NodalValue module: */
94 
95  /*call Nodalvalue:*/
98 
99  /*done:*/
100  return value;
101  }
102  /*}}}*/
FemModel::vertices
Vertices * vertices
Definition: FemModel.h:49
IndexEnum
@ IndexEnum
Definition: EnumDefinitions.h:201
Nodalvalue::Name
char * Name()
Definition: Nodalvalue.cpp:79
IssmDouble
double IssmDouble
Definition: types.h:37
Nodalvalue::ObjectEnum
int ObjectEnum(void)
Definition: Nodalvalue.cpp:69
Nodalvalue::name
char * name
Definition: Nodalvalue.h:23
_printf_
#define _printf_(StreamArgs)
Definition: Print.h:22
Nodalvalue
Definition: Nodalvalue.h:17
NodalvalueEnum
@ NodalvalueEnum
Definition: EnumDefinitions.h:1199
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
Nodalvalue::Response
IssmDouble Response(FemModel *femmodel)
Definition: Nodalvalue.cpp:87
Elements.h
Nodalvalue::node
int node
Definition: Nodalvalue.h:24
Nodalvalue::~Nodalvalue
~Nodalvalue()
Definition: Nodalvalue.cpp:41
Element.h
abstract class for Element object This class is a place holder for the Tria and the Penta elements....
Parameters::SetParam
void SetParam(bool boolean, int enum_type)
Definition: Parameters.cpp:441
Object
Definition: Object.h:13
FemModel::nodes
Nodes * nodes
Definition: FemModel.h:56
xDelete
void xDelete(T **&aT_pp)
Definition: MemOps.h:97
FemModel::materials
Materials * materials
Definition: FemModel.h:45
EnumToStringx
const char * EnumToStringx(int enum_in)
Definition: EnumToStringx.cpp:15
UNDEF
#define UNDEF
Definition: constants.h:8
Nodalvalue::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: Nodalvalue.cpp:65
NodalValuex
void NodalValuex(IssmDouble *pnodalvalue, int natureofdataenum, Elements *elements, Nodes *nodes, Vertices *vertices, Loads *loads, Materials *materials, Parameters *parameters)
Definition: NodalValuex.cpp:10
FemModel::loads
Loads * loads
Definition: FemModel.h:54
FemModel::elements
Elements * elements
Definition: FemModel.h:44
Nodalvalue::Nodalvalue
Nodalvalue()
Definition: Nodalvalue.cpp:22
Nodalvalue::model_enum
int model_enum
Definition: Nodalvalue.h:22
FemModel
Definition: FemModel.h:31
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
FemModel.h
Nodalvalue::DeepEcho
void DeepEcho(void)
Definition: Nodalvalue.cpp:51
Nodalvalue::Echo
void Echo(void)
Definition: Nodalvalue.cpp:55
xMemCpy
T * xMemCpy(T *dest, const T *src, unsigned int size)
Definition: MemOps.h:152
Nodalvalue::Id
int Id(void)
Definition: Nodalvalue.cpp:61
Nodalvalue::DefinitionEnum
int DefinitionEnum()
Definition: Nodalvalue.cpp:74
Nodalvalue::definitionenum
int definitionenum
Definition: Nodalvalue.h:21
classes.h
Nodalvalue::copy
Object * copy()
Definition: Nodalvalue.cpp:46
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16