Index: ../trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp (revision 15656) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp (revision 15657) @@ -138,13 +138,29 @@ iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum); iomodel->FetchData(&surface,NULL,NULL,SurfaceEnum); iomodel->FetchData(&z,NULL,NULL,MeshZEnum); - for(i=0;inumberofvertices;i++){ - if(iomodel->my_vertices[i]){ - if (reCast(vertices_type[i])==NoneApproximationEnum){ - constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,1,g*rho_ice*(surface[i]-z[i])/FSreconditioning,DiagnosticHorizAnalysisEnum)); - count++; + switch(finiteelement){ + case P1bubbleEnum: + for(i=0;inumberofvertices;i++){ + if(iomodel->my_vertices[i]){ + if (reCast(vertices_type[i])==NoneApproximationEnum){ + constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,1,g*rho_ice*(surface[i]-z[i])/FSreconditioning,DiagnosticHorizAnalysisEnum)); + count++; + } + } } - } + break; + case P2Enum: + for(i=0;inumberofvertices;i++){ + if(iomodel->my_vertices[i]){ + if (reCast(vertices_type[i])==NoneApproximationEnum){ + constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,1,g*rho_ice*(surface[i]-z[i])/FSreconditioning,DiagnosticHorizAnalysisEnum)); + count++; + } + } + } + break; + default: + _error_("not implemented yet"); } iomodel->DeleteData(vertices_type,FlowequationVertexEquationEnum); iomodel->DeleteData(surface,SurfaceEnum); Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp (revision 15656) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp (revision 15657) @@ -168,11 +168,13 @@ EdgesPartitioning(&my_edges,iomodel); for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ + if(IssmComm::GetRank()==0) printf("Creating node id %i\n",iomodel->nodecounter+i+1); nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,analysis,FSvelocityEnum)); } } for(i=0;inumberofedges;i++){ if(my_edges[i]){ + if(IssmComm::GetRank()==0) printf("Creating node id %i\n",iomodel->nodecounter+iomodel->numberofvertices+i+1); nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,0,iomodel,analysis,FSvelocityEnum)); } } @@ -180,6 +182,7 @@ /*P1 pressure*/ for(i=0;inumberofvertices;i++){ if(iomodel->my_vertices[i]){ + if(IssmComm::GetRank()==0) printf("Creating node id %i\n",iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1); nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,i,iomodel,analysis,FSpressureEnum)); } } Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 15656) +++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 15657) @@ -3332,7 +3332,6 @@ penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[6*index+3]; penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[6*index+4]; penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[6*index+5]; - printarray(penta_node_ids,1,21); break; default: _error_("Finite element "<