Changeset 15448
- Timestamp:
- 07/05/13 15:45:34 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp
r15104 r15448 22 22 SpcStatic::SpcStatic(int spc_sid,int spc_nodeid, int spc_dof,IssmDouble spc_value,int spc_analysis_type){ 23 23 24 sid =spc_sid;25 nodeid =spc_nodeid;26 dof =spc_dof;27 value =spc_value;28 analysis_type =spc_analysis_type;24 sid = spc_sid; 25 nodeid = spc_nodeid; 26 dof = spc_dof; 27 value = spc_value; 28 analysis_type = spc_analysis_type; 29 29 30 30 return; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r15428 r15448 18 18 IssmDouble stokesreconditioning; 19 19 bool isstokes,isl1l2,ismacayealpattyn; 20 int fe_ssa; 20 21 bool spcpresent=false; 21 22 int Mx,Nx; … … 50 51 iomodel->Constant(&isl1l2,FlowequationIsl1l2Enum); 51 52 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 53 iomodel->Constant(&fe_ssa,FlowequationFeSsaEnum); 52 54 53 55 /*Recover pointer: */ … … 219 221 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,spcvx[i]/yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 220 222 count++; 223 221 224 } 222 225 else if (Mx==iomodel->numberofvertices+1) { … … 306 309 break; 307 310 default: _error_("Vertex approximation " << EnumToStringx(reCast<int,IssmDouble>(vertices_type[i])) << " not supported"); 311 } 312 } 313 } 314 } 315 316 /*SPC Quadratic elements*/ 317 if(ismacayealpattyn&& fe_ssa==1){ 318 319 int v1,v2,el1,el2; 320 bool my_edge; 321 322 if(Mx!=iomodel->numberofvertices) _error_("transient spc not supported yet"); 323 CreateEdges(iomodel); 324 325 for(i=0;i<iomodel->numberofedges;i++){ 326 327 v1 = iomodel->edges[4*i+0]-1; 328 v2 = iomodel->edges[4*i+1]-1; 329 el1= iomodel->edges[4*i+2]-1; 330 el2= iomodel->edges[4*i+3]-1; 331 332 my_edge = iomodel->my_elements[el1]; 333 if(!my_edge && el2>=0){ 334 my_edge = iomodel->my_elements[el2]; 335 } 336 337 if(my_edge){ 338 if(!xIsNan<IssmDouble>(spcvx[v1]) && !xIsNan<IssmDouble>(spcvx[v2])){ 339 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1, 340 1,(spcvx[v1]+spcvx[v2])/yts,DiagnosticHorizAnalysisEnum)); 341 count++; 342 } 343 if(!xIsNan<IssmDouble>(spcvx[v1]) && !xIsNan<IssmDouble>(spcvx[v2])){ 344 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1, 345 2,(spcvy[v1]+spcvy[v2])/yts,DiagnosticHorizAnalysisEnum)); 346 count++; 347 } 348 if(!xIsNan<IssmDouble>(spcvx[v1]) && !xIsNan<IssmDouble>(spcvx[v2])){ 349 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1, 350 3,(spcvz[v1]+spcvz[v2])/yts,DiagnosticHorizAnalysisEnum)); 351 count++; 308 352 } 309 353 }
Note:
See TracChangeset
for help on using the changeset viewer.