Ice Sheet System Model
4.18
Code documentation
src
c
classes
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 :*/
22
Nodalvalue::Nodalvalue
(){
/*{{{*/
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
/*}}}*/
41
Nodalvalue::~Nodalvalue
(){
/*{{{*/
42
if
(this->
name
)
xDelete
(this->
name
);
43
}
44
/*}}}*/
45
/*Object virtual function resolutoin: */
46
Object
*
Nodalvalue::copy
() {
/*{{{*/
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: */
74
int
Nodalvalue::DefinitionEnum
(){
/*{{{*/
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
/*}}}*/
87
IssmDouble
Nodalvalue::Response
(
FemModel
*
femmodel
){
/*{{{*/
88
89
/*output:*/
90
IssmDouble
value;
91
92
/*set index, which will be used by the NodalValue module: */
93
femmodel
->
parameters
->
SetParam
(
node
,
IndexEnum
);
94
95
/*call Nodalvalue:*/
96
NodalValuex
(&value,
model_enum
,
femmodel
->
elements
,
femmodel
->
nodes
,
femmodel
->
vertices
,
femmodel
->
loads
,
97
femmodel
->
materials
,
femmodel
->
parameters
);
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
Generated on Thu Jul 2 2020 08:09:18 for Ice Sheet System Model by
1.8.19