5 #ifndef _MASSFLUXATGATE_H_
6 #define _MASSFLUXATGATE_H_
11 #include "../datastructures/datastructures.h"
17 template <
class doubletype>
33 this->definitionenum = -1;
35 this->numsegments = 0;
39 Massfluxatgate(
char* in_name,
int in_definitionenum,
int in_numsegments, doubletype* in_segments) {
43 this->definitionenum=in_definitionenum;
45 this->name = xNew<char>(strlen(in_name)+1);
46 xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
48 this->numsegments=in_numsegments;
50 if(this->numsegments){
51 this->x1=xNew<doubletype>(this->numsegments);
52 this->x2=xNew<doubletype>(this->numsegments);
53 this->y1=xNew<doubletype>(this->numsegments);
54 this->y2=xNew<doubletype>(this->numsegments);
55 this->elements=xNew<int>(this->numsegments);
58 this->x1[i]=in_segments[5*i+0];
59 this->y1[i]=in_segments[5*i+1];
60 this->x2[i]=in_segments[5*i+2];
61 this->y2[i]=in_segments[5*i+3];
62 this->elements[i]=reCast<int,doubletype>(in_segments[5*i+4]);
67 Massfluxatgate(
char* in_name,
int in_definitionenum,
int in_numsegments, doubletype* in_x1, doubletype* in_y1, doubletype* in_x2, doubletype* in_y2,
int* in_elements){
69 this->definitionenum=in_definitionenum;
70 this->name = xNew<char>(strlen(in_name)+1);
71 xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
73 this->numsegments=in_numsegments;
75 if(this->numsegments){
76 this->x1=xNew<doubletype>(this->numsegments); xMemCpy<doubletype>(this->x1,in_x1,this->numsegments);
77 this->y1=xNew<doubletype>(this->numsegments); xMemCpy<doubletype>(this->y1,in_y1,this->numsegments);
78 this->x2=xNew<doubletype>(this->numsegments); xMemCpy<doubletype>(this->x2,in_x2,this->numsegments);
79 this->y2=xNew<doubletype>(this->numsegments); xMemCpy<doubletype>(this->y2,in_y2,this->numsegments);
80 this->elements=xNew<int>(this->numsegments); xMemCpy<int>(this->elements,in_elements,this->numsegments);
86 if(this->numsegments){
87 xDelete<doubletype>(this->x1);
88 xDelete<doubletype>(this->y1);
89 xDelete<doubletype>(this->x2);
90 xDelete<doubletype>(this->y2);
91 xDelete<int>(this->elements);
93 xDelete<char>(this->name);
99 return new Massfluxatgate(this->name,this->definitionenum,this->numsegments,this->x1,this->y1,this->x2,this->y2,this->elements);
107 _printf_(
" Massfluxatgate: " << name <<
" " << this->definitionenum <<
"\n");
110 _printf_(
" element: x1, y1, x2, y2:\n");
125 void Marshall(
char** pmarshalled_data,
int* pmarshalled_data_size,
int marshall_direction){
126 _error_(
"not implemented yet!");
137 char* name2=xNew<char>(strlen(this->name)+1);
138 xMemCpy(name2,this->name,strlen(this->name)+1);
155 if (element->
Id()==this->elements[i]){
164 mass_flux=all_mass_flux;