source:
issm/oecreview/Archive/16554-17801/ISSM-17560-17561.diff@
17802
Last change on this file since 17802 was 17802, checked in by , 11 years ago | |
---|---|
File size: 4.0 KB |
-
../trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp
243 243 244 244 int numbervertices; 245 245 if(iomodel->meshtype==Mesh3DEnum){ 246 if((iomodel->faces[6*facenumber+5] -1)==1){246 if((iomodel->faces[6*facenumber+5])==1){ 247 247 numbervertices=3; 248 248 } 249 else if((iomodel->faces[6*facenumber+5] -1)==2){249 else if((iomodel->faces[6*facenumber+5])==2){ 250 250 numbervertices=4; 251 251 } 252 252 else _error_("face marker not supported yet "); … … 258 258 for(int i=0;i<3;i++) facevertices[i]=iomodel->faces[6*facenumber+i]-1; 259 259 } 260 260 else if(numbervertices==4){ 261 int i,j, cols,faceid;261 int i,j,k,cols,faceid; 262 262 int maxnbf,nbf,elementnbf,elementnbv,facemaxnbv; 263 263 int *elementfaces = NULL; 264 264 int *elementfaces_markers = NULL; 265 int elementid=iomodel->faces[6*facenumber+ 4]-1;265 int elementid=iomodel->faces[6*facenumber+3]; 266 266 int counter=0; 267 267 268 268 /*Recreate element properties*/ … … 288 288 for(faceid=2;faceid<5;faceid++){ 289 289 counter=0; 290 290 for(j=0;j<3;j++){ 291 if(iomodel->elements[elementid*6+elementfaces[cols*faceid+j]] == iomodel->faces[6*facenumber+j]) counter++; 291 for(k=1;k<5;k++){ 292 if(iomodel->elements[(elementid-1)*6+elementfaces[cols*faceid+k]] == iomodel->faces[6*facenumber+j]) counter++; 293 } 292 294 } 293 295 if(counter==3) break; 294 296 } 295 297 if(counter!=3) _error_("face not found in element"); 296 298 297 for(j=0;j<3;j++) facevertices[i]=iomodel->elements[elementid*6+elementfaces[cols*faceid+j]]; 299 for(j=0;j<4;j++){ 300 facevertices[j]=iomodel->elements[(elementid-1)*6+elementfaces[cols*faceid+j+1]]; 301 } 298 302 299 303 /*Delete*/ 300 304 xDelete<int>(elementfaces); -
../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
124 124 FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i); 125 125 isnan=0; 126 126 for(j=0;j<numfacevertices;j++){ 127 if(xIsNan<IssmDouble>(spcdata[faceverticesid[j] ])) isnan=1;127 if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]-1])) isnan=1; 128 128 } 129 129 if(isnan==0){ 130 130 value=0; 131 131 for(j=0;j<numfacevertices;j++){ 132 value=value+spcdata[faceverticesid[j] ]/numfacevertices;132 value=value+spcdata[faceverticesid[j]-1]/numfacevertices; 133 133 } 134 134 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1, 135 135 dof,value,analysis_type)); 136 136 count++; 137 137 } 138 xDelete<int>(faceverticesid); 138 139 } 139 140 } 140 141 } … … 183 184 FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i); 184 185 isnan=0; 185 186 for(j=0;j<numfacevertices;j++){ 186 if(xIsNan<IssmDouble>(spcdata[faceverticesid[j] ])) isnan=1;187 if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]-1])) isnan=1; 187 188 } 188 189 if(isnan==0){ 189 190 value=0; 190 191 for(j=0;j<numfacevertices;j++){ 191 value=value+spcdata[faceverticesid[j] ]/numfacevertices;192 value=value+spcdata[faceverticesid[j]-1]/numfacevertices; 192 193 } 193 194 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+1, 194 195 dof,value,analysis_type)); … … 198 199 dof,value,analysis_type)); 199 200 count=count+3; 200 201 } 202 xDelete<int>(faceverticesid); 201 203 } 202 204 } 203 205 } … … 465 467 } 466 468 467 469 /*Free ressources:*/ 468 xDelete<int>(faceverticesid);469 470 xDelete<IssmDouble>(times); 470 471 xDelete<IssmDouble>(values); 471 472 xDelete<bool>(my_edges);
Note:
See TracBrowser
for help on using the repository browser.