Index: ../trunk-jpl/src/c/classes/Node.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Node.cpp (revision 23558) +++ ../trunk-jpl/src/c/classes/Node.cpp (revision 23559) @@ -20,7 +20,7 @@ this->approximation=0; } /*}}}*/ -Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/ +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){/*{{{*/ /*Intermediary*/ int k,l; @@ -30,6 +30,7 @@ this->id = node_id; this->sid = node_sid; this->lid = node_lid; + this->pid = node_pid; this->analysis_enum = analysis_enum; /*Initialize coord_system: Identity matrix by default*/ @@ -136,6 +137,7 @@ output->id = this->id; output->sid = this->sid; output->lid = this->lid; + output->pid = this->pid; output->analysis_enum = this->analysis_enum; output->approximation = this->approximation; @@ -155,6 +157,7 @@ MARSHALLING(id); MARSHALLING(sid); MARSHALLING(lid); + MARSHALLING(pid); MARSHALLING(indexingupdate); indexing.Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); MARSHALLING(analysis_enum); @@ -181,6 +184,8 @@ _printf_("Node:\n"); _printf_(" id : " << id << "\n"); _printf_(" sid: " << sid << "\n"); + _printf_(" lid: " << lid << "\n"); + _printf_(" pid: " << pid << "\n"); _printf_(" analysis_enum: " << EnumToStringx(analysis_enum) << "\n"); _printf_(" approximation: " << EnumToStringx(approximation) << "\n"); _printf_(" indexingupdate: " << indexingupdate << "\n"); Index: ../trunk-jpl/src/c/classes/Node.h =================================================================== --- ../trunk-jpl/src/c/classes/Node.h (revision 23558) +++ ../trunk-jpl/src/c/classes/Node.h (revision 23559) @@ -31,6 +31,7 @@ int id; // unique arbitrary id. int sid; // "serial" id (rank of this node if the dataset was serial on 1 cpu) int lid; // "local" id (rank of this node in current partition) + int pid; // parallel id (specific to this partition) int analysis_enum; IssmDouble coord_system[3][3]; @@ -39,7 +40,7 @@ /*Node constructors, destructors*/ Node(); - Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in); + Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in); ~Node(); /*Object virtual functions definitions:*/ Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp (revision 23558) +++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp (revision 23559) @@ -98,7 +98,7 @@ if(iomodel->my_vertices[i]){ /*Create new node if is in this processor's partition*/ - node = new Node(i+1,i,lid++,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i]))); + node = new Node(i+1,i,lid++,0,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i]))); /*Deactivate node if not SIA*/ if(IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i]))!=SIAApproximationEnum){ Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 23558) +++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 23559) @@ -557,12 +557,12 @@ if(iomodel->my_vertices[i]){ approximation=IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i])); if(approximation==FSApproximationEnum) approximation=FSvelocityEnum; - nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,approximation)); + nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,approximation)); } } for(int i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum); + node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum); node->Deactivate(); nodes->AddObject(node); } @@ -571,7 +571,7 @@ for(int i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ approximation=IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i])); - node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum); + node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum); if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum){ node->Deactivate(); } @@ -582,7 +582,7 @@ else{ for(int i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i])))); + nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast(iomodel->Data("md.flowequation.vertex_equation")[i])))); } } } Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp (revision 23558) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp (revision 23559) @@ -267,7 +267,7 @@ int* vertices_ranks = xNew(MAXCONNECTIVITY*iomodel->numberofvertices); for(int i=0;inumberofvertices;i++) vertices_ranks[i] = -1; - /*For all vertices, cound how many cpus hold vertex i (initialize with 0)*/ + /*For all vertices, count how many cpus hold vertex i (initialize with 0)*/ int* vertices_proc_count = xNewZeroInit(iomodel->numberofvertices); /*Create vector of size total nbv, initialized with -1, that will keep track of local ids*/ Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp (revision 23558) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp (revision 23559) @@ -21,7 +21,7 @@ case P1Enum: for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } break; @@ -31,7 +31,7 @@ for(i=0;inumberofelements;i++){ for(j=0;j<3;j++){ if(my_nodes[3*i+j]){ - nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,0,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation)); } } @@ -41,12 +41,12 @@ case P1bubbleEnum: for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation)); } } break; @@ -54,12 +54,12 @@ case P1bubblecondensedEnum: for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation); node->HardDeactivate(); nodes->AddObject(node); } @@ -70,7 +70,7 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } @@ -78,7 +78,7 @@ for(i=0;inumberofedges;i++){ if(iomodel->edges[i*3+2]==2){ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter++; @@ -90,7 +90,7 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } @@ -98,9 +98,9 @@ for(i=0;inumberofedges;i++){ if(iomodel->edges[i*3+2]==2){ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter=counter+2; @@ -111,7 +111,7 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } counter = iomodel->numberofvertices; @@ -118,11 +118,11 @@ for(i=0;inumberofedges;i++){ if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter=counter+3; @@ -134,7 +134,7 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } @@ -142,7 +142,7 @@ for(i=0;inumberofedges;i++){ if(iomodel->edges[i*3+2]!=2){ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter++; @@ -154,12 +154,12 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } for(i=0;inumberofedges;i++){ if(iomodel->my_edges[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation)); } } id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; @@ -168,7 +168,7 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } } @@ -185,12 +185,12 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } for(i=0;inumberofedges;i++){ if(iomodel->my_edges[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation)); } } id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; @@ -199,7 +199,7 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } } @@ -214,7 +214,7 @@ } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,approximation)); } } break; @@ -223,7 +223,7 @@ FacesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation)); } } counter = iomodel->numberofvertices; @@ -230,11 +230,11 @@ for(i=0;inumberofedges;i++){ if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter=counter+3; @@ -241,7 +241,7 @@ } else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter=counter+1; @@ -254,11 +254,11 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); - node = new Node(id0+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation); + node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation); nodes->AddObject(node); } counter=counter+3; @@ -278,7 +278,7 @@ /*P1 velocity*/ for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } /*P1 pressure*/ @@ -285,7 +285,7 @@ vnodes = id0+iomodel->numberofvertices; for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); } } break; @@ -294,7 +294,7 @@ /*P1 velocity*/ for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } /*P1 pressure*/ @@ -301,7 +301,7 @@ vnodes = id0+iomodel->numberofvertices; for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); } } break; @@ -310,12 +310,12 @@ /*P1+ velocity (bubble statically condensed)*/ for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); node->HardDeactivate(); nodes->AddObject(node); } @@ -324,7 +324,7 @@ vnodes = id0+iomodel->numberofvertices+iomodel->numberofelements; for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); } } break; @@ -333,12 +333,12 @@ /*P1+ velocity*/ for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } } /*P1 pressure*/ @@ -345,7 +345,7 @@ vnodes = id0+iomodel->numberofvertices+iomodel->numberofelements; for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); } } break; @@ -356,12 +356,12 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofedges;i++){ if(iomodel->my_edges[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } } id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; @@ -370,7 +370,7 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } } @@ -393,7 +393,7 @@ vnodes = id0+numberoffaces; for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,i,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,0,i,iomodel,analysis,FSpressureEnum)); } } break; @@ -403,12 +403,12 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofedges;i++){ if(iomodel->my_edges[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } } id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; @@ -417,7 +417,7 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } } @@ -439,7 +439,7 @@ /*P2xP4 velocity*/ for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } counter = iomodel->numberofvertices; @@ -446,11 +446,11 @@ for(i=0;inumberofedges;i++){ if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); - node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } counter=counter+3; @@ -457,7 +457,7 @@ } else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/ if(iomodel->my_edges[i]){ - node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } counter=counter+1; @@ -470,11 +470,11 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); - node = new Node(id0+3*i+2,counter+2,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); - node = new Node(id0+3*i+3,counter+3,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } counter=counter+3; @@ -491,7 +491,7 @@ vnodes = id0+3*iomodel->numberoffaces; for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,i,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,0,i,iomodel,analysis,FSpressureEnum)); } counter++; } @@ -502,12 +502,12 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofedges;i++){ if(iomodel->my_edges[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } } id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; @@ -516,7 +516,7 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } } @@ -531,7 +531,7 @@ } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } } @@ -546,7 +546,7 @@ for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ for(j=0;jAddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum)); + nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,0,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum)); } } @@ -558,12 +558,12 @@ EdgesPartitioning(iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ - nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofedges;i++){ if(iomodel->my_edges[i]){ - nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } } id0 = id0+iomodel->numberofvertices+iomodel->numberofedges; @@ -572,7 +572,7 @@ for(i=0;inumberoffaces;i++){ if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/ if(iomodel->my_faces[i]){ - node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum); + node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum); nodes->AddObject(node); } } @@ -587,7 +587,7 @@ } for(i=0;inumberofelements;i++){ if(iomodel->my_elements[i]){ - nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,FSvelocityEnum)); + nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum)); } }