Changeset 17063
- Timestamp:
- 01/06/14 12:51:46 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
r17062 r17063 12 12 13 13 /*Intermediaries*/ 14 int i,j,counter, lid=0;14 int i,j,counter,vnodes,lid=0; 15 15 bool *my_edges = NULL; 16 16 bool *my_nodes = NULL; … … 195 195 } 196 196 /*P1 pressure*/ 197 for(i=0;i<iomodel->numberofvertices;i++){ 198 if(iomodel->my_vertices[i]){ 199 nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum)); 197 vnodes = iomodel->nodecounter+iomodel->numberofvertices; 198 for(i=0;i<iomodel->numberofvertices;i++){ 199 if(iomodel->my_vertices[i]){ 200 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum)); 200 201 } 201 202 } … … 210 211 } 211 212 /*P1 pressure*/ 212 for(i=0;i<iomodel->numberofvertices;i++){ 213 if(iomodel->my_vertices[i]){ 214 nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum)); 213 vnodes = iomodel->nodecounter+iomodel->numberofvertices; 214 for(i=0;i<iomodel->numberofvertices;i++){ 215 if(iomodel->my_vertices[i]){ 216 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum)); 215 217 } 216 218 } … … 232 234 } 233 235 /*P1 pressure*/ 234 for(i=0;i<iomodel->numberofvertices;i++){ 235 if(iomodel->my_vertices[i]){ 236 nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum)); 236 vnodes = iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements; 237 for(i=0;i<iomodel->numberofvertices;i++){ 238 if(iomodel->my_vertices[i]){ 239 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum)); 237 240 } 238 241 } … … 252 255 } 253 256 /*P1 pressure*/ 254 for(i=0;i<iomodel->numberofvertices;i++){ 255 if(iomodel->my_vertices[i]){ 256 nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum)); 257 vnodes = iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements; 258 for(i=0;i<iomodel->numberofvertices;i++){ 259 if(iomodel->my_vertices[i]){ 260 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum)); 257 261 } 258 262 } … … 274 278 275 279 /*P1 pressure*/ 276 for(i=0;i<iomodel->numberofvertices;i++){ 277 if(iomodel->my_vertices[i]){ 278 nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,i,iomodel,analysis,FSpressureEnum)); 280 vnodes = iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges; 281 for(i=0;i<iomodel->numberofvertices;i++){ 282 if(iomodel->my_vertices[i]){ 283 nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,i,iomodel,analysis,FSpressureEnum)); 279 284 } 280 285 } … … 282 287 case OneLayerP4zEnum: 283 288 _assert_(approximation==FSApproximationEnum); 289 EdgesPartitioning(&my_edges,iomodel); 284 290 /*P2xP4 velocity*/ 285 EdgesPartitioning(&my_edges,iomodel); 291 for(i=0;i<iomodel->numberofvertices;i++){ 292 if(iomodel->my_vertices[i]){ 293 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,lid++,i,iomodel,analysis,approximation)); 294 } 295 } 296 counter = iomodel->numberofvertices; 297 for(i=0;i<iomodel->numberofedges;i++){ 298 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 299 if(my_edges[i]){ 300 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 301 nodes->AddObject(node); 302 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+2,counter+2,lid++,0,iomodel,analysis,approximation); 303 nodes->AddObject(node); 304 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+3,counter+3,lid++,0,iomodel,analysis,approximation); 305 nodes->AddObject(node); 306 } 307 } 308 else if(iomodel->edges[i*3+2]==1){/*Basal edges*/ 309 if(my_edges[i]){ 310 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 311 nodes->AddObject(node); 312 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+2,counter+2,lid++,0,iomodel,analysis,approximation); 313 nodes->AddObject(node); 314 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+3,counter+3,lid++,0,iomodel,analysis,approximation); 315 nodes->AddObject(node); 316 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+4,counter+4,lid++,0,iomodel,analysis,approximation); 317 nodes->AddObject(node); 318 } 319 } 320 else if(iomodel->edges[i*3+2]==3){/*Top edges*/ 321 if(my_edges[i]){ 322 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+4*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 323 nodes->AddObject(node); 324 } 325 } 326 else{ 327 _error_("not supported"); 328 } 329 counter=counter+4; 330 } 286 331 /*P1xP3 pressure*/ 287 _error_("Not supported"); 332 vnodes = iomodel->nodecounter+iomodel->numberofvertices+4*iomodel->numberofedges; 333 for(i=0;i<iomodel->numberofvertices;i++){ 334 if(iomodel->my_vertices[i]){ 335 nodes->AddObject(new Node(vnodes+i+1,i,lid++,i,iomodel,analysis,approximation)); 336 } 337 } 338 339 counter = iomodel->numberofvertices; 340 for(i=0;i<iomodel->numberofedges;i++){ 341 if(iomodel->edges[i*3+2]==2){ 342 if(my_edges[i]){ 343 node = new Node(vnodes+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 344 nodes->AddObject(node); 345 node = new Node(vnodes+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,iomodel,analysis,approximation); 346 nodes->AddObject(node); 347 } 348 counter=counter+2; 349 } 350 } 288 351 break; 289 352
Note:
See TracChangeset
for help on using the changeset viewer.