[17802] | 1 | Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp (revision 17560)
|
---|
| 4 | +++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp (revision 17561)
|
---|
| 5 | @@ -243,10 +243,10 @@
|
---|
| 6 |
|
---|
| 7 | int numbervertices;
|
---|
| 8 | if(iomodel->meshtype==Mesh3DEnum){
|
---|
| 9 | - if((iomodel->faces[6*facenumber+5]-1)==1){
|
---|
| 10 | + if((iomodel->faces[6*facenumber+5])==1){
|
---|
| 11 | numbervertices=3;
|
---|
| 12 | }
|
---|
| 13 | - else if((iomodel->faces[6*facenumber+5]-1)==2){
|
---|
| 14 | + else if((iomodel->faces[6*facenumber+5])==2){
|
---|
| 15 | numbervertices=4;
|
---|
| 16 | }
|
---|
| 17 | else _error_("face marker not supported yet ");
|
---|
| 18 | @@ -258,11 +258,11 @@
|
---|
| 19 | for(int i=0;i<3;i++) facevertices[i]=iomodel->faces[6*facenumber+i]-1;
|
---|
| 20 | }
|
---|
| 21 | else if(numbervertices==4){
|
---|
| 22 | - int i,j,cols,faceid;
|
---|
| 23 | + int i,j,k,cols,faceid;
|
---|
| 24 | int maxnbf,nbf,elementnbf,elementnbv,facemaxnbv;
|
---|
| 25 | int *elementfaces = NULL;
|
---|
| 26 | int *elementfaces_markers = NULL;
|
---|
| 27 | - int elementid=iomodel->faces[6*facenumber+4]-1;
|
---|
| 28 | + int elementid=iomodel->faces[6*facenumber+3];
|
---|
| 29 | int counter=0;
|
---|
| 30 |
|
---|
| 31 | /*Recreate element properties*/
|
---|
| 32 | @@ -288,13 +288,17 @@
|
---|
| 33 | for(faceid=2;faceid<5;faceid++){
|
---|
| 34 | counter=0;
|
---|
| 35 | for(j=0;j<3;j++){
|
---|
| 36 | - if(iomodel->elements[elementid*6+elementfaces[cols*faceid+j]] == iomodel->faces[6*facenumber+j]) counter++;
|
---|
| 37 | + for(k=1;k<5;k++){
|
---|
| 38 | + if(iomodel->elements[(elementid-1)*6+elementfaces[cols*faceid+k]] == iomodel->faces[6*facenumber+j]) counter++;
|
---|
| 39 | + }
|
---|
| 40 | }
|
---|
| 41 | if(counter==3) break;
|
---|
| 42 | }
|
---|
| 43 | if(counter!=3) _error_("face not found in element");
|
---|
| 44 |
|
---|
| 45 | - for(j=0;j<3;j++) facevertices[i]=iomodel->elements[elementid*6+elementfaces[cols*faceid+j]];
|
---|
| 46 | + for(j=0;j<4;j++){
|
---|
| 47 | + facevertices[j]=iomodel->elements[(elementid-1)*6+elementfaces[cols*faceid+j+1]];
|
---|
| 48 | + }
|
---|
| 49 |
|
---|
| 50 | /*Delete*/
|
---|
| 51 | xDelete<int>(elementfaces);
|
---|
| 52 | Index: ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
|
---|
| 53 | ===================================================================
|
---|
| 54 | --- ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp (revision 17560)
|
---|
| 55 | +++ ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp (revision 17561)
|
---|
| 56 | @@ -124,17 +124,18 @@
|
---|
| 57 | FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i);
|
---|
| 58 | isnan=0;
|
---|
| 59 | for(j=0;j<numfacevertices;j++){
|
---|
| 60 | - if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]])) isnan=1;
|
---|
| 61 | + if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]-1])) isnan=1;
|
---|
| 62 | }
|
---|
| 63 | if(isnan==0){
|
---|
| 64 | value=0;
|
---|
| 65 | for(j=0;j<numfacevertices;j++){
|
---|
| 66 | - value=value+spcdata[faceverticesid[j]]/numfacevertices;
|
---|
| 67 | + value=value+spcdata[faceverticesid[j]-1]/numfacevertices;
|
---|
| 68 | }
|
---|
| 69 | constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,
|
---|
| 70 | dof,value,analysis_type));
|
---|
| 71 | count++;
|
---|
| 72 | }
|
---|
| 73 | + xDelete<int>(faceverticesid);
|
---|
| 74 | }
|
---|
| 75 | }
|
---|
| 76 | }
|
---|
| 77 | @@ -183,12 +184,12 @@
|
---|
| 78 | FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i);
|
---|
| 79 | isnan=0;
|
---|
| 80 | for(j=0;j<numfacevertices;j++){
|
---|
| 81 | - if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]])) isnan=1;
|
---|
| 82 | + if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]-1])) isnan=1;
|
---|
| 83 | }
|
---|
| 84 | if(isnan==0){
|
---|
| 85 | value=0;
|
---|
| 86 | for(j=0;j<numfacevertices;j++){
|
---|
| 87 | - value=value+spcdata[faceverticesid[j]]/numfacevertices;
|
---|
| 88 | + value=value+spcdata[faceverticesid[j]-1]/numfacevertices;
|
---|
| 89 | }
|
---|
| 90 | constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+1,
|
---|
| 91 | dof,value,analysis_type));
|
---|
| 92 | @@ -198,6 +199,7 @@
|
---|
| 93 | dof,value,analysis_type));
|
---|
| 94 | count=count+3;
|
---|
| 95 | }
|
---|
| 96 | + xDelete<int>(faceverticesid);
|
---|
| 97 | }
|
---|
| 98 | }
|
---|
| 99 | }
|
---|
| 100 | @@ -465,7 +467,6 @@
|
---|
| 101 | }
|
---|
| 102 |
|
---|
| 103 | /*Free ressources:*/
|
---|
| 104 | - xDelete<int>(faceverticesid);
|
---|
| 105 | xDelete<IssmDouble>(times);
|
---|
| 106 | xDelete<IssmDouble>(values);
|
---|
| 107 | xDelete<bool>(my_edges);
|
---|