- Timestamp:
- 08/28/18 09:45:51 (7 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 22823-22871,22873-22887,22894-22903,22905-23090,23092-23185,23187
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c/modules/ModelProcessorx/CreateNodes.cpp
r22758 r23189 15 15 int numberoffaces,elementnbv; 16 16 int id0 = iomodel->nodecounter; 17 bool *my_faces = NULL;18 bool *my_edges = NULL;19 17 bool *my_nodes = NULL; 20 18 Node *node = NULL; … … 70 68 71 69 case P1xP2Enum: 72 EdgesPartitioning( &my_edges,iomodel);70 EdgesPartitioning(iomodel); 73 71 for(i=0;i<iomodel->numberofvertices;i++){ 74 72 if(iomodel->my_vertices[i]){ … … 80 78 for(i=0;i<iomodel->numberofedges;i++){ 81 79 if(iomodel->edges[i*3+2]==2){ 82 if( my_edges[i]){80 if(iomodel->my_edges[i]){ 83 81 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation); 84 82 nodes->AddObject(node); … … 90 88 91 89 case P1xP3Enum: 92 EdgesPartitioning( &my_edges,iomodel);90 EdgesPartitioning(iomodel); 93 91 for(i=0;i<iomodel->numberofvertices;i++){ 94 92 if(iomodel->my_vertices[i]){ … … 100 98 for(i=0;i<iomodel->numberofedges;i++){ 101 99 if(iomodel->edges[i*3+2]==2){ 102 if( my_edges[i]){100 if(iomodel->my_edges[i]){ 103 101 node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 104 102 nodes->AddObject(node); … … 111 109 break; 112 110 case P1xP4Enum: 113 EdgesPartitioning( &my_edges,iomodel);111 EdgesPartitioning(iomodel); 114 112 for(i=0;i<iomodel->numberofvertices;i++){ 115 113 if(iomodel->my_vertices[i]){ … … 120 118 for(i=0;i<iomodel->numberofedges;i++){ 121 119 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 122 if( my_edges[i]){120 if(iomodel->my_edges[i]){ 123 121 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 124 122 nodes->AddObject(node); … … 134 132 135 133 case P2xP1Enum: 136 EdgesPartitioning( &my_edges,iomodel);134 EdgesPartitioning(iomodel); 137 135 for(i=0;i<iomodel->numberofvertices;i++){ 138 136 if(iomodel->my_vertices[i]){ … … 144 142 for(i=0;i<iomodel->numberofedges;i++){ 145 143 if(iomodel->edges[i*3+2]!=2){ 146 if( my_edges[i]){144 if(iomodel->my_edges[i]){ 147 145 node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation); 148 146 nodes->AddObject(node); … … 154 152 155 153 case P2Enum: 156 EdgesPartitioning( &my_edges,iomodel);157 for(i=0;i<iomodel->numberofvertices;i++){ 158 if(iomodel->my_vertices[i]){ 159 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); 160 } 161 } 162 for(i=0;i<iomodel->numberofedges;i++){ 163 if( my_edges[i]){154 EdgesPartitioning(iomodel); 155 for(i=0;i<iomodel->numberofvertices;i++){ 156 if(iomodel->my_vertices[i]){ 157 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); 158 } 159 } 160 for(i=0;i<iomodel->numberofedges;i++){ 161 if(iomodel->my_edges[i]){ 164 162 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation)); 165 163 } … … 167 165 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; 168 166 if(iomodel->meshelementtype==PentaEnum){ 169 FacesPartitioning( &my_faces,iomodel);167 FacesPartitioning(iomodel); 170 168 for(i=0;i<iomodel->numberoffaces;i++){ 171 169 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 172 if( my_faces[i]){170 if(iomodel->my_faces[i]){ 173 171 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation); 174 172 nodes->AddObject(node); … … 185 183 break; 186 184 case P2bubbleEnum: 187 EdgesPartitioning( &my_edges,iomodel);188 for(i=0;i<iomodel->numberofvertices;i++){ 189 if(iomodel->my_vertices[i]){ 190 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); 191 } 192 } 193 for(i=0;i<iomodel->numberofedges;i++){ 194 if( my_edges[i]){185 EdgesPartitioning(iomodel); 186 for(i=0;i<iomodel->numberofvertices;i++){ 187 if(iomodel->my_vertices[i]){ 188 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); 189 } 190 } 191 for(i=0;i<iomodel->numberofedges;i++){ 192 if(iomodel->my_edges[i]){ 195 193 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation)); 196 194 } … … 198 196 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; 199 197 if(iomodel->meshelementtype==PentaEnum){ 200 FacesPartitioning( &my_faces,iomodel);198 FacesPartitioning(iomodel); 201 199 for(i=0;i<iomodel->numberoffaces;i++){ 202 200 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 203 if( my_faces[i]){201 if(iomodel->my_faces[i]){ 204 202 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation); 205 203 nodes->AddObject(node); … … 222 220 break; 223 221 case P2xP4Enum: 224 EdgesPartitioning( &my_edges,iomodel);225 FacesPartitioning( &my_faces,iomodel);222 EdgesPartitioning(iomodel); 223 FacesPartitioning(iomodel); 226 224 for(i=0;i<iomodel->numberofvertices;i++){ 227 225 if(iomodel->my_vertices[i]){ … … 232 230 for(i=0;i<iomodel->numberofedges;i++){ 233 231 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 234 if( my_edges[i]){232 if(iomodel->my_edges[i]){ 235 233 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 236 234 nodes->AddObject(node); … … 243 241 } 244 242 else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/ 245 if( my_edges[i]){243 if(iomodel->my_edges[i]){ 246 244 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 247 245 nodes->AddObject(node); … … 256 254 for(i=0;i<iomodel->numberoffaces;i++){ 257 255 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 258 if( my_faces[i]){256 if(iomodel->my_faces[i]){ 259 257 node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 260 258 nodes->AddObject(node); … … 356 354 _assert_(approximation==FSApproximationEnum); 357 355 /*P2 velocity*/ 358 EdgesPartitioning( &my_edges,iomodel);359 for(i=0;i<iomodel->numberofvertices;i++){ 360 if(iomodel->my_vertices[i]){ 361 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 362 } 363 } 364 for(i=0;i<iomodel->numberofedges;i++){ 365 if( my_edges[i]){356 EdgesPartitioning(iomodel); 357 for(i=0;i<iomodel->numberofvertices;i++){ 358 if(iomodel->my_vertices[i]){ 359 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 360 } 361 } 362 for(i=0;i<iomodel->numberofedges;i++){ 363 if(iomodel->my_edges[i]){ 366 364 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); 367 365 } … … 369 367 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; 370 368 if(iomodel->meshelementtype==PentaEnum){ 371 FacesPartitioning( &my_faces,iomodel);369 FacesPartitioning(iomodel); 372 370 for(i=0;i<iomodel->numberoffaces;i++){ 373 371 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 374 if( my_faces[i]){372 if(iomodel->my_faces[i]){ 375 373 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); 376 374 nodes->AddObject(node); … … 403 401 _assert_(approximation==FSApproximationEnum); 404 402 /*P2 velocity*/ 405 EdgesPartitioning( &my_edges,iomodel);406 for(i=0;i<iomodel->numberofvertices;i++){ 407 if(iomodel->my_vertices[i]){ 408 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 409 } 410 } 411 for(i=0;i<iomodel->numberofedges;i++){ 412 if( my_edges[i]){403 EdgesPartitioning(iomodel); 404 for(i=0;i<iomodel->numberofvertices;i++){ 405 if(iomodel->my_vertices[i]){ 406 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 407 } 408 } 409 for(i=0;i<iomodel->numberofedges;i++){ 410 if(iomodel->my_edges[i]){ 413 411 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); 414 412 } … … 416 414 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; 417 415 if(iomodel->meshelementtype==PentaEnum){ 418 FacesPartitioning( &my_faces,iomodel);416 FacesPartitioning(iomodel); 419 417 for(i=0;i<iomodel->numberoffaces;i++){ 420 418 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 421 if( my_faces[i]){419 if(iomodel->my_faces[i]){ 422 420 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); 423 421 nodes->AddObject(node); … … 437 435 case OneLayerP4zEnum: 438 436 _assert_(approximation==FSApproximationEnum); 439 EdgesPartitioning( &my_edges,iomodel);440 FacesPartitioning( &my_faces,iomodel);437 EdgesPartitioning(iomodel); 438 FacesPartitioning(iomodel); 441 439 /*P2xP4 velocity*/ 442 440 for(i=0;i<iomodel->numberofvertices;i++){ … … 448 446 for(i=0;i<iomodel->numberofedges;i++){ 449 447 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 450 if( my_edges[i]){448 if(iomodel->my_edges[i]){ 451 449 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum); 452 450 nodes->AddObject(node); … … 459 457 } 460 458 else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/ 461 if( my_edges[i]){459 if(iomodel->my_edges[i]){ 462 460 node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum); 463 461 nodes->AddObject(node); … … 472 470 for(i=0;i<iomodel->numberoffaces;i++){ 473 471 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 474 if( my_faces[i]){472 if(iomodel->my_faces[i]){ 475 473 node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum); 476 474 nodes->AddObject(node); … … 502 500 _assert_(approximation==FSApproximationEnum); 503 501 /*P2b velocity*/ 504 EdgesPartitioning( &my_edges,iomodel);505 for(i=0;i<iomodel->numberofvertices;i++){ 506 if(iomodel->my_vertices[i]){ 507 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 508 } 509 } 510 for(i=0;i<iomodel->numberofedges;i++){ 511 if( my_edges[i]){502 EdgesPartitioning(iomodel); 503 for(i=0;i<iomodel->numberofvertices;i++){ 504 if(iomodel->my_vertices[i]){ 505 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 506 } 507 } 508 for(i=0;i<iomodel->numberofedges;i++){ 509 if(iomodel->my_edges[i]){ 512 510 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); 513 511 } … … 515 513 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; 516 514 if(iomodel->meshelementtype==PentaEnum){ 517 FacesPartitioning( &my_faces,iomodel);515 FacesPartitioning(iomodel); 518 516 for(i=0;i<iomodel->numberoffaces;i++){ 519 517 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 520 if( my_faces[i]){518 if(iomodel->my_faces[i]){ 521 519 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); 522 520 nodes->AddObject(node); … … 558 556 _assert_(approximation==FSApproximationEnum); 559 557 /*P2b velocity*/ 560 EdgesPartitioning( &my_edges,iomodel);561 for(i=0;i<iomodel->numberofvertices;i++){ 562 if(iomodel->my_vertices[i]){ 563 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 564 } 565 } 566 for(i=0;i<iomodel->numberofedges;i++){ 567 if( my_edges[i]){558 EdgesPartitioning(iomodel); 559 for(i=0;i<iomodel->numberofvertices;i++){ 560 if(iomodel->my_vertices[i]){ 561 nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); 562 } 563 } 564 for(i=0;i<iomodel->numberofedges;i++){ 565 if(iomodel->my_edges[i]){ 568 566 nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); 569 567 } … … 571 569 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; 572 570 if(iomodel->meshelementtype==PentaEnum){ 573 FacesPartitioning( &my_faces,iomodel);571 FacesPartitioning(iomodel); 574 572 for(i=0;i<iomodel->numberoffaces;i++){ 575 573 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ 576 if( my_faces[i]){574 if(iomodel->my_faces[i]){ 577 575 node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); 578 576 nodes->AddObject(node); … … 602 600 603 601 /*Clean up*/ 604 xDelete<bool>(my_faces);605 xDelete<bool>(my_edges);606 602 xDelete<bool>(my_nodes); 607 603 }
Note:
See TracChangeset
for help on using the changeset viewer.