source: issm/trunk/src/c/classes/objects/ElementResults/BoolElementResult.cpp@ 13395

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

merged trunk-jpl and trunk for revision 13393

File size: 3.8 KB
Line 
1/*!\file BoolElementResult.c
2 * \brief: implementation of the BoolElementResult object
3 */
4
5#ifdef HAVE_CONFIG_H
6 #include <config.h>
7#else
8#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
9#endif
10
11#include <stdio.h>
12#include <string.h>
13#include "./ElementResultLocal.h"
14#include "../../classes.h"
15#include "../../../EnumDefinitions/EnumDefinitions.h"
16#include "../../../shared/shared.h"
17#include "../../../Container/Container.h"
18#include "../../../include/include.h"
19
20/*BoolElementResult constructors and destructor*/
21/*FUNCTION BoolElementResult::BoolElementResult(){{{*/
22BoolElementResult::BoolElementResult(){
23 return;
24}
25/*}}}*/
26/*FUNCTION BoolElementResult::BoolElementResult(int in_enum_type,IssmDouble in_value,int in_step, IssmDouble in_time){{{*/
27BoolElementResult::BoolElementResult(int in_enum_type,bool in_value,int in_step, IssmDouble in_time){
28
29 enum_type=in_enum_type;
30 value=in_value;
31 step=in_step;
32 time=in_time;
33}
34/*}}}*/
35/*FUNCTION BoolElementResult::~BoolElementResult(){{{*/
36BoolElementResult::~BoolElementResult(){
37 return;
38}
39/*}}}*/
40
41/*Object virtual functions definitions:*/
42/*FUNCTION BoolElementResult::Echo {{{*/
43void BoolElementResult::Echo(void){
44 this->DeepEcho();
45}
46/*}}}*/
47/*FUNCTION BoolElementResult::DeepEcho{{{*/
48void BoolElementResult::DeepEcho(void){
49
50 _printLine_("BoolElementResult:");
51 _printLine_(" enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")");
52 _printLine_(" value: "<<(this->value?"true":"false"));
53 _printLine_(" step: " << this->step);
54 _printLine_(" time: " << this->time);
55}
56/*}}}*/
57/*FUNCTION BoolElementResult::Id{{{*/
58int BoolElementResult::Id(void){ return -1; }
59/*}}}*/
60/*FUNCTION BoolElementResult::MyRank{{{*/
61int BoolElementResult::MyRank(void){
62 extern int my_rank;
63 return my_rank;
64}
65/*}}}*/
66/*FUNCTION BoolElementResult::ObjectEnum{{{*/
67int BoolElementResult::ObjectEnum(void){
68
69 return BoolElementResultEnum;
70
71}
72/*}}}*/
73/*FUNCTION BoolElementResult::copy{{{*/
74Object* BoolElementResult::copy() {
75
76 return new BoolElementResult(this->enum_type,this->value,this->step,this->time);
77
78}
79/*}}}*/
80
81/*ElementResult management*/
82/*FUNCTION BoolElementResult::InstanceEnum{{{*/
83int BoolElementResult::InstanceEnum(void){
84
85 return this->enum_type;
86
87}
88/*}}}*/
89/*FUNCTION BoolElementResult::SpawnTriaElementResult{{{*/
90ElementResult* BoolElementResult::SpawnTriaElementResult(int* indices){
91
92 /*output*/
93 BoolElementResult* outresult=new BoolElementResult();
94
95 /*copy fields: */
96 outresult->enum_type=this->enum_type;
97 outresult->value=this->value;
98 outresult->time=this->time;
99 outresult->step=this->step;
100
101 /*Assign output*/
102 return outresult;
103
104}
105/*}}}*/
106/*FUNCTION BoolElementResult::ProcessUnits{{{*/
107void BoolElementResult::ProcessUnits(Parameters* parameters){
108// no op
109}
110/*}}}*/
111/*FUNCTION BoolElementResult::NumberOfNodalValues{{{*/
112int BoolElementResult::NumberOfNodalValues(void){
113 return 1;
114}
115/*}}}*/
116/*FUNCTION BoolElementResult::PatchFill{{{*/
117void BoolElementResult::PatchFill(int row, Patch* patch){
118
119 /*Here, we fill the result information into the patch object. First, let's remember what is in a row
120 * of the patch object: enum_type step time element_id interpolation vertices_ids nodal_values
121 * Here, we will supply the enum_type, step, time, interpolation and nodal_values: */
122 IssmDouble IssmDoublevalue=this->value?1:0;
123 patch->fillresultinfo(row,this->enum_type,this->step,this->time,P0Enum,&IssmDoublevalue,1);
124
125}
126/*}}}*/
127/*FUNCTION BoolElementResult::GetVectorFromResults{{{*/
128void BoolElementResult::GetVectorFromResults(Vector<IssmDouble>* vector,int* doflist,int* connectivitylist,int numdofs){
129
130 _error_("cannot return vector on vertices");
131} /*}}}*/
132/*FUNCTION BoolElementResult::GetElementVectorFromResults{{{*/
133void BoolElementResult::GetElementVectorFromResults(Vector<IssmDouble>* vector,int dof){
134
135 vector->SetValue(dof,value,INS_VAL);
136} /*}}}*/
Note: See TracBrowser for help on using the repository browser.