source:
issm/oecreview/Archive/23390-24306/ISSM-23558-23559.diff@
24307
Last change on this file since 24307 was 24307, checked in by , 5 years ago | |
---|---|
File size: 30.5 KB |
-
../trunk-jpl/src/c/classes/Node.cpp
20 20 this->approximation=0; 21 21 } 22 22 /*}}}*/ 23 Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/23 Node::Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/ 24 24 25 25 /*Intermediary*/ 26 26 int k,l; … … 30 30 this->id = node_id; 31 31 this->sid = node_sid; 32 32 this->lid = node_lid; 33 this->pid = node_pid; 33 34 this->analysis_enum = analysis_enum; 34 35 35 36 /*Initialize coord_system: Identity matrix by default*/ … … 136 137 output->id = this->id; 137 138 output->sid = this->sid; 138 139 output->lid = this->lid; 140 output->pid = this->pid; 139 141 output->analysis_enum = this->analysis_enum; 140 142 output->approximation = this->approximation; 141 143 … … 155 157 MARSHALLING(id); 156 158 MARSHALLING(sid); 157 159 MARSHALLING(lid); 160 MARSHALLING(pid); 158 161 MARSHALLING(indexingupdate); 159 162 indexing.Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); 160 163 MARSHALLING(analysis_enum); … … 181 184 _printf_("Node:\n"); 182 185 _printf_(" id : " << id << "\n"); 183 186 _printf_(" sid: " << sid << "\n"); 187 _printf_(" lid: " << lid << "\n"); 188 _printf_(" pid: " << pid << "\n"); 184 189 _printf_(" analysis_enum: " << EnumToStringx(analysis_enum) << "\n"); 185 190 _printf_(" approximation: " << EnumToStringx(approximation) << "\n"); 186 191 _printf_(" indexingupdate: " << indexingupdate << "\n"); -
../trunk-jpl/src/c/classes/Node.h
31 31 int id; // unique arbitrary id. 32 32 int sid; // "serial" id (rank of this node if the dataset was serial on 1 cpu) 33 33 int lid; // "local" id (rank of this node in current partition) 34 int pid; // parallel id (specific to this partition) 34 35 35 36 int analysis_enum; 36 37 IssmDouble coord_system[3][3]; … … 39 40 40 41 /*Node constructors, destructors*/ 41 42 Node(); 42 Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in);43 Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in); 43 44 ~Node(); 44 45 45 46 /*Object virtual functions definitions:*/ -
../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
98 98 if(iomodel->my_vertices[i]){ 99 99 100 100 /*Create new node if is in this processor's partition*/ 101 node = new Node(i+1,i,lid++, i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));101 node = new Node(i+1,i,lid++,0,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))); 102 102 103 103 /*Deactivate node if not SIA*/ 104 104 if(IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))!=SIAApproximationEnum){ -
../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
557 557 if(iomodel->my_vertices[i]){ 558 558 approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])); 559 559 if(approximation==FSApproximationEnum) approximation=FSvelocityEnum; 560 nodes->AddObject(new Node(i+1,i,lid++, i,iomodel,StressbalanceAnalysisEnum,approximation));560 nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,approximation)); 561 561 } 562 562 } 563 563 for(int i=0;i<iomodel->numberofelements;i++){ 564 564 if(iomodel->my_elements[i]){ 565 node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);565 node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum); 566 566 node->Deactivate(); 567 567 nodes->AddObject(node); 568 568 } … … 571 571 for(int i=0;i<iomodel->numberofvertices;i++){ 572 572 if(iomodel->my_vertices[i]){ 573 573 approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])); 574 node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++, i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);574 node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum); 575 575 if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum){ 576 576 node->Deactivate(); 577 577 } … … 582 582 else{ 583 583 for(int i=0;i<iomodel->numberofvertices;i++){ 584 584 if(iomodel->my_vertices[i]){ 585 nodes->AddObject(new Node(i+1,i,lid++, i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));585 nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])))); 586 586 } 587 587 } 588 588 } -
../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
267 267 int* vertices_ranks = xNew<int>(MAXCONNECTIVITY*iomodel->numberofvertices); 268 268 for(int i=0;i<MAXCONNECTIVITY*iomodel->numberofvertices;i++) vertices_ranks[i] = -1; 269 269 270 /*For all vertices, coun dhow many cpus hold vertex i (initialize with 0)*/270 /*For all vertices, count how many cpus hold vertex i (initialize with 0)*/ 271 271 int* vertices_proc_count = xNewZeroInit<int>(iomodel->numberofvertices); 272 272 273 273 /*Create vector of size total nbv, initialized with -1, that will keep track of local ids*/ -
../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
21 21 case P1Enum: 22 22 for(i=0;i<iomodel->numberofvertices;i++){ 23 23 if(iomodel->my_vertices[i]){ 24 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));24 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 25 25 } 26 26 } 27 27 break; … … 31 31 for(i=0;i<iomodel->numberofelements;i++){ 32 32 for(j=0;j<3;j++){ 33 33 if(my_nodes[3*i+j]){ 34 nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++, iomodel->elements[3*i+j]-1,iomodel,analysis,approximation));34 nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,0,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation)); 35 35 36 36 } 37 37 } … … 41 41 case P1bubbleEnum: 42 42 for(i=0;i<iomodel->numberofvertices;i++){ 43 43 if(iomodel->my_vertices[i]){ 44 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));44 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 45 45 } 46 46 } 47 47 for(i=0;i<iomodel->numberofelements;i++){ 48 48 if(iomodel->my_elements[i]){ 49 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,approximation));49 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation)); 50 50 } 51 51 } 52 52 break; … … 54 54 case P1bubblecondensedEnum: 55 55 for(i=0;i<iomodel->numberofvertices;i++){ 56 56 if(iomodel->my_vertices[i]){ 57 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));57 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 58 58 } 59 59 } 60 60 for(i=0;i<iomodel->numberofelements;i++){ 61 61 if(iomodel->my_elements[i]){ 62 node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,approximation);62 node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation); 63 63 node->HardDeactivate(); 64 64 nodes->AddObject(node); 65 65 } … … 70 70 EdgesPartitioning(iomodel); 71 71 for(i=0;i<iomodel->numberofvertices;i++){ 72 72 if(iomodel->my_vertices[i]){ 73 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));73 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 74 74 } 75 75 } 76 76 … … 78 78 for(i=0;i<iomodel->numberofedges;i++){ 79 79 if(iomodel->edges[i*3+2]==2){ 80 80 if(iomodel->my_edges[i]){ 81 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0, iomodel,analysis,approximation);81 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 82 82 nodes->AddObject(node); 83 83 } 84 84 counter++; … … 90 90 EdgesPartitioning(iomodel); 91 91 for(i=0;i<iomodel->numberofvertices;i++){ 92 92 if(iomodel->my_vertices[i]){ 93 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));93 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 94 94 } 95 95 } 96 96 … … 98 98 for(i=0;i<iomodel->numberofedges;i++){ 99 99 if(iomodel->edges[i*3+2]==2){ 100 100 if(iomodel->my_edges[i]){ 101 node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0, iomodel,analysis,approximation);101 node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 102 102 nodes->AddObject(node); 103 node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0, iomodel,analysis,approximation);103 node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); 104 104 nodes->AddObject(node); 105 105 } 106 106 counter=counter+2; … … 111 111 EdgesPartitioning(iomodel); 112 112 for(i=0;i<iomodel->numberofvertices;i++){ 113 113 if(iomodel->my_vertices[i]){ 114 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));114 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 115 115 } 116 116 } 117 117 counter = iomodel->numberofvertices; … … 118 118 for(i=0;i<iomodel->numberofedges;i++){ 119 119 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 120 120 if(iomodel->my_edges[i]){ 121 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0, iomodel,analysis,approximation);121 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 122 122 nodes->AddObject(node); 123 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0, iomodel,analysis,approximation);123 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); 124 124 nodes->AddObject(node); 125 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0, iomodel,analysis,approximation);125 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation); 126 126 nodes->AddObject(node); 127 127 } 128 128 counter=counter+3; … … 134 134 EdgesPartitioning(iomodel); 135 135 for(i=0;i<iomodel->numberofvertices;i++){ 136 136 if(iomodel->my_vertices[i]){ 137 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));137 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 138 138 } 139 139 } 140 140 … … 142 142 for(i=0;i<iomodel->numberofedges;i++){ 143 143 if(iomodel->edges[i*3+2]!=2){ 144 144 if(iomodel->my_edges[i]){ 145 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0, iomodel,analysis,approximation);145 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 146 146 nodes->AddObject(node); 147 147 } 148 148 counter++; … … 154 154 EdgesPartitioning(iomodel); 155 155 for(i=0;i<iomodel->numberofvertices;i++){ 156 156 if(iomodel->my_vertices[i]){ 157 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));157 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 158 158 } 159 159 } 160 160 for(i=0;i<iomodel->numberofedges;i++){ 161 161 if(iomodel->my_edges[i]){ 162 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,approximation));162 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation)); 163 163 } 164 164 } 165 165 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; … … 168 168 for(i=0;i<iomodel->numberoffaces;i++){ 169 169 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 170 170 if(iomodel->my_faces[i]){ 171 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0, iomodel,analysis,approximation);171 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation); 172 172 nodes->AddObject(node); 173 173 } 174 174 } … … 185 185 EdgesPartitioning(iomodel); 186 186 for(i=0;i<iomodel->numberofvertices;i++){ 187 187 if(iomodel->my_vertices[i]){ 188 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));188 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 189 189 } 190 190 } 191 191 for(i=0;i<iomodel->numberofedges;i++){ 192 192 if(iomodel->my_edges[i]){ 193 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,approximation));193 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation)); 194 194 } 195 195 } 196 196 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; … … 199 199 for(i=0;i<iomodel->numberoffaces;i++){ 200 200 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 201 201 if(iomodel->my_faces[i]){ 202 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0, iomodel,analysis,approximation);202 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation); 203 203 nodes->AddObject(node); 204 204 } 205 205 } … … 214 214 } 215 215 for(i=0;i<iomodel->numberofelements;i++){ 216 216 if(iomodel->my_elements[i]){ 217 nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0, iomodel,analysis,approximation));217 nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,approximation)); 218 218 } 219 219 } 220 220 break; … … 223 223 FacesPartitioning(iomodel); 224 224 for(i=0;i<iomodel->numberofvertices;i++){ 225 225 if(iomodel->my_vertices[i]){ 226 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,approximation));226 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); 227 227 } 228 228 } 229 229 counter = iomodel->numberofvertices; … … 230 230 for(i=0;i<iomodel->numberofedges;i++){ 231 231 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 232 232 if(iomodel->my_edges[i]){ 233 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0, iomodel,analysis,approximation);233 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 234 234 nodes->AddObject(node); 235 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0, iomodel,analysis,approximation);235 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); 236 236 nodes->AddObject(node); 237 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0, iomodel,analysis,approximation);237 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation); 238 238 nodes->AddObject(node); 239 239 } 240 240 counter=counter+3; … … 241 241 } 242 242 else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/ 243 243 if(iomodel->my_edges[i]){ 244 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0, iomodel,analysis,approximation);244 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 245 245 nodes->AddObject(node); 246 246 } 247 247 counter=counter+1; … … 254 254 for(i=0;i<iomodel->numberoffaces;i++){ 255 255 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 256 256 if(iomodel->my_faces[i]){ 257 node = new Node(id0+3*i+1,counter+1,lid++,0, iomodel,analysis,approximation);257 node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); 258 258 nodes->AddObject(node); 259 node = new Node(id0+3*i+2,counter+2,lid++,0, iomodel,analysis,approximation);259 node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); 260 260 nodes->AddObject(node); 261 node = new Node(id0+3*i+3,counter+3,lid++,0, iomodel,analysis,approximation);261 node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation); 262 262 nodes->AddObject(node); 263 263 } 264 264 counter=counter+3; … … 278 278 /*P1 velocity*/ 279 279 for(i=0;i<iomodel->numberofvertices;i++){ 280 280 if(iomodel->my_vertices[i]){ 281 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));281 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 282 282 } 283 283 } 284 284 /*P1 pressure*/ … … 285 285 vnodes = id0+iomodel->numberofvertices; 286 286 for(i=0;i<iomodel->numberofvertices;i++){ 287 287 if(iomodel->my_vertices[i]){ 288 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++, i,iomodel,analysis,FSpressureEnum));288 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); 289 289 } 290 290 } 291 291 break; … … 294 294 /*P1 velocity*/ 295 295 for(i=0;i<iomodel->numberofvertices;i++){ 296 296 if(iomodel->my_vertices[i]){ 297 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));297 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 298 298 } 299 299 } 300 300 /*P1 pressure*/ … … 301 301 vnodes = id0+iomodel->numberofvertices; 302 302 for(i=0;i<iomodel->numberofvertices;i++){ 303 303 if(iomodel->my_vertices[i]){ 304 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++, i,iomodel,analysis,FSpressureEnum));304 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); 305 305 } 306 306 } 307 307 break; … … 310 310 /*P1+ velocity (bubble statically condensed)*/ 311 311 for(i=0;i<iomodel->numberofvertices;i++){ 312 312 if(iomodel->my_vertices[i]){ 313 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));313 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 314 314 } 315 315 } 316 316 for(i=0;i<iomodel->numberofelements;i++){ 317 317 if(iomodel->my_elements[i]){ 318 node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,FSvelocityEnum);318 node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); 319 319 node->HardDeactivate(); 320 320 nodes->AddObject(node); 321 321 } … … 324 324 vnodes = id0+iomodel->numberofvertices+iomodel->numberofelements; 325 325 for(i=0;i<iomodel->numberofvertices;i++){ 326 326 if(iomodel->my_vertices[i]){ 327 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++, i,iomodel,analysis,FSpressureEnum));327 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); 328 328 } 329 329 } 330 330 break; … … 333 333 /*P1+ velocity*/ 334 334 for(i=0;i<iomodel->numberofvertices;i++){ 335 335 if(iomodel->my_vertices[i]){ 336 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));336 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 337 337 } 338 338 } 339 339 for(i=0;i<iomodel->numberofelements;i++){ 340 340 if(iomodel->my_elements[i]){ 341 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,FSvelocityEnum));341 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 342 342 } 343 343 } 344 344 /*P1 pressure*/ … … 345 345 vnodes = id0+iomodel->numberofvertices+iomodel->numberofelements; 346 346 for(i=0;i<iomodel->numberofvertices;i++){ 347 347 if(iomodel->my_vertices[i]){ 348 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++, i,iomodel,analysis,FSpressureEnum));348 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); 349 349 } 350 350 } 351 351 break; … … 356 356 EdgesPartitioning(iomodel); 357 357 for(i=0;i<iomodel->numberofvertices;i++){ 358 358 if(iomodel->my_vertices[i]){ 359 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));359 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 360 360 } 361 361 } 362 362 for(i=0;i<iomodel->numberofedges;i++){ 363 363 if(iomodel->my_edges[i]){ 364 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,FSvelocityEnum));364 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 365 365 } 366 366 } 367 367 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; … … 370 370 for(i=0;i<iomodel->numberoffaces;i++){ 371 371 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 372 372 if(iomodel->my_faces[i]){ 373 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0, iomodel,analysis,FSvelocityEnum);373 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); 374 374 nodes->AddObject(node); 375 375 } 376 376 } … … 393 393 vnodes = id0+numberoffaces; 394 394 for(i=0;i<iomodel->numberofvertices;i++){ 395 395 if(iomodel->my_vertices[i]){ 396 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++, i,iomodel,analysis,FSpressureEnum));396 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); 397 397 } 398 398 } 399 399 break; … … 403 403 EdgesPartitioning(iomodel); 404 404 for(i=0;i<iomodel->numberofvertices;i++){ 405 405 if(iomodel->my_vertices[i]){ 406 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));406 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 407 407 } 408 408 } 409 409 for(i=0;i<iomodel->numberofedges;i++){ 410 410 if(iomodel->my_edges[i]){ 411 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,FSvelocityEnum));411 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 412 412 } 413 413 } 414 414 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; … … 417 417 for(i=0;i<iomodel->numberoffaces;i++){ 418 418 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 419 419 if(iomodel->my_faces[i]){ 420 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0, iomodel,analysis,FSvelocityEnum);420 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); 421 421 nodes->AddObject(node); 422 422 } 423 423 } … … 439 439 /*P2xP4 velocity*/ 440 440 for(i=0;i<iomodel->numberofvertices;i++){ 441 441 if(iomodel->my_vertices[i]){ 442 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));442 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 443 443 } 444 444 } 445 445 counter = iomodel->numberofvertices; … … 446 446 for(i=0;i<iomodel->numberofedges;i++){ 447 447 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 448 448 if(iomodel->my_edges[i]){ 449 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0, iomodel,analysis,FSvelocityEnum);449 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum); 450 450 nodes->AddObject(node); 451 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0, iomodel,analysis,FSvelocityEnum);451 node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum); 452 452 nodes->AddObject(node); 453 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0, iomodel,analysis,FSvelocityEnum);453 node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum); 454 454 nodes->AddObject(node); 455 455 } 456 456 counter=counter+3; … … 457 457 } 458 458 else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/ 459 459 if(iomodel->my_edges[i]){ 460 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0, iomodel,analysis,FSvelocityEnum);460 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum); 461 461 nodes->AddObject(node); 462 462 } 463 463 counter=counter+1; … … 470 470 for(i=0;i<iomodel->numberoffaces;i++){ 471 471 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 472 472 if(iomodel->my_faces[i]){ 473 node = new Node(id0+3*i+1,counter+1,lid++,0, iomodel,analysis,FSvelocityEnum);473 node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum); 474 474 nodes->AddObject(node); 475 node = new Node(id0+3*i+2,counter+2,lid++,0, iomodel,analysis,FSvelocityEnum);475 node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum); 476 476 nodes->AddObject(node); 477 node = new Node(id0+3*i+3,counter+3,lid++,0, iomodel,analysis,FSvelocityEnum);477 node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum); 478 478 nodes->AddObject(node); 479 479 } 480 480 counter=counter+3; … … 491 491 vnodes = id0+3*iomodel->numberoffaces; 492 492 for(i=0;i<iomodel->numberofvertices;i++){ 493 493 if(iomodel->my_vertices[i]){ 494 nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++, i,iomodel,analysis,FSpressureEnum));494 nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,0,i,iomodel,analysis,FSpressureEnum)); 495 495 } 496 496 counter++; 497 497 } … … 502 502 EdgesPartitioning(iomodel); 503 503 for(i=0;i<iomodel->numberofvertices;i++){ 504 504 if(iomodel->my_vertices[i]){ 505 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));505 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 506 506 } 507 507 } 508 508 for(i=0;i<iomodel->numberofedges;i++){ 509 509 if(iomodel->my_edges[i]){ 510 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,FSvelocityEnum));510 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 511 511 } 512 512 } 513 513 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; … … 516 516 for(i=0;i<iomodel->numberoffaces;i++){ 517 517 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 518 518 if(iomodel->my_faces[i]){ 519 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0, iomodel,analysis,FSvelocityEnum);519 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); 520 520 nodes->AddObject(node); 521 521 } 522 522 } … … 531 531 } 532 532 for(i=0;i<iomodel->numberofelements;i++){ 533 533 if(iomodel->my_elements[i]){ 534 nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0, iomodel,analysis,FSvelocityEnum));534 nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 535 535 } 536 536 } 537 537 … … 546 546 for(i=0;i<iomodel->numberofelements;i++){ 547 547 if(iomodel->my_elements[i]){ 548 548 for(j=0;j<elementnbv;j++){ 549 nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++, iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));549 nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,0,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum)); 550 550 551 551 } 552 552 } … … 558 558 EdgesPartitioning(iomodel); 559 559 for(i=0;i<iomodel->numberofvertices;i++){ 560 560 if(iomodel->my_vertices[i]){ 561 nodes->AddObject(new Node(id0+i+1,i,lid++, i,iomodel,analysis,FSvelocityEnum));561 nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); 562 562 } 563 563 } 564 564 for(i=0;i<iomodel->numberofedges;i++){ 565 565 if(iomodel->my_edges[i]){ 566 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0, iomodel,analysis,FSvelocityEnum));566 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 567 567 } 568 568 } 569 569 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; … … 572 572 for(i=0;i<iomodel->numberoffaces;i++){ 573 573 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 574 574 if(iomodel->my_faces[i]){ 575 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0, iomodel,analysis,FSvelocityEnum);575 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); 576 576 nodes->AddObject(node); 577 577 } 578 578 } … … 587 587 } 588 588 for(i=0;i<iomodel->numberofelements;i++){ 589 589 if(iomodel->my_elements[i]){ 590 nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0, iomodel,analysis,FSvelocityEnum));590 nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); 591 591 } 592 592 } 593 593
Note:
See TracBrowser
for help on using the repository browser.