Changeset 23183
- Timestamp:
- 08/27/18 09:03:24 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r23182 r23183 126 126 iomodel->FetchData(&surface,NULL,NULL,"md.geometry.surface"); 127 127 iomodel->FetchData(&z,NULL,NULL,"md.mesh.z"); 128 switch(pfiniteelement){ 129 case P1Enum: 130 for(i=0;i<iomodel->numberofvertices;i++){ 131 if(iomodel->my_vertices[i]){ 132 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){ 133 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); 134 count++; 128 bool addpressurespc = false; 129 for(i=0;i<iomodel->numberofvertices;i++){ 130 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum && iomodel->my_vertices[i]){ 131 addpressurespc = true; 132 break; 133 } 134 } 135 if(addpressurespc){ 136 switch(pfiniteelement){ 137 case P1Enum: 138 for(i=0;i<iomodel->numberofvertices;i++){ 139 if(iomodel->my_vertices[i]){ 140 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){ 141 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); 142 count++; 143 } 135 144 } 136 145 } 137 }138 break;139 case P1bubbleEnum:140 for(i=0;i<iomodel->numberofvertices;i++){141 if(iomodel->my_vertices[i]){142 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){143 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));144 count++;146 break; 147 case P1bubbleEnum: 148 for(i=0;i<iomodel->numberofvertices;i++){ 149 if(iomodel->my_vertices[i]){ 150 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){ 151 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); 152 count++; 153 } 145 154 } 146 155 } 147 }148 break;149 case P2Enum:150 for(i=0;i<iomodel->numberofvertices;i++){151 if(iomodel->my_vertices[i]){152 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){153 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));154 count++;156 break; 157 case P2Enum: 158 for(i=0;i<iomodel->numberofvertices;i++){ 159 if(iomodel->my_vertices[i]){ 160 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){ 161 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); 162 count++; 163 } 155 164 } 156 165 } 157 }158 break;159 case P2bubbleEnum:160 for(i=0;i<iomodel->numberofvertices;i++){161 if(iomodel->my_vertices[i]){162 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){163 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+iomodel->numberoffaces+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));164 count++;166 break; 167 case P2bubbleEnum: 168 for(i=0;i<iomodel->numberofvertices;i++){ 169 if(iomodel->my_vertices[i]){ 170 if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){ 171 constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+iomodel->numberoffaces+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); 172 count++; 173 } 165 174 } 166 175 } 167 }168 break;169 case P2xP4Enum:170 //Nothing yet171 break;172 default:173 _error_("not implemented yet");176 break; 177 case P2xP4Enum: 178 //Nothing yet 179 break; 180 default: 181 _error_("not implemented yet"); 182 } 174 183 } 175 184 iomodel->DeleteData(vertices_type,"md.flowequation.vertex_equation");
Note:
See TracChangeset
for help on using the changeset viewer.