source: issm/oecreview/Archive/16554-17801/ISSM-17560-17561.diff@ 17802

Last change on this file since 17802 was 17802, checked in by Mathieu Morlighem, 11 years ago

Added archives

File size: 4.0 KB
  • ../trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp

     
    243243
    244244        int numbervertices;
    245245        if(iomodel->meshtype==Mesh3DEnum){
    246                 if((iomodel->faces[6*facenumber+5]-1)==1){
     246                if((iomodel->faces[6*facenumber+5])==1){
    247247                        numbervertices=3;
    248248                }
    249                 else if((iomodel->faces[6*facenumber+5]-1)==2){
     249                else if((iomodel->faces[6*facenumber+5])==2){
    250250                        numbervertices=4;
    251251                }
    252252                else _error_("face marker not supported yet ");
     
    258258                for(int i=0;i<3;i++) facevertices[i]=iomodel->faces[6*facenumber+i]-1;
    259259        }
    260260        else if(numbervertices==4){
    261                 int  i,j,cols,faceid;
     261                int  i,j,k,cols,faceid;
    262262                int  maxnbf,nbf,elementnbf,elementnbv,facemaxnbv;
    263263                int *elementfaces         = NULL;
    264264                int *elementfaces_markers = NULL;
    265                 int elementid=iomodel->faces[6*facenumber+4]-1;
     265                int elementid=iomodel->faces[6*facenumber+3];
    266266                int counter=0;
    267267
    268268                /*Recreate element properties*/
     
    288288                for(faceid=2;faceid<5;faceid++){
    289289                        counter=0;
    290290                        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                                }
    292294                        }
    293295                        if(counter==3) break;
    294296                }
    295297                if(counter!=3) _error_("face not found in element");
    296298
    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                }
    298302
    299303                /*Delete*/
    300304                xDelete<int>(elementfaces);
  • ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp

     
    124124                                                                FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i);
    125125                                                                isnan=0;
    126126                                                                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;
    128128                                                                }
    129129                                                                if(isnan==0){
    130130                                                                        value=0;
    131131                                                                        for(j=0;j<numfacevertices;j++){
    132                                                                                 value=value+spcdata[faceverticesid[j]]/numfacevertices;
     132                                                                                value=value+spcdata[faceverticesid[j]-1]/numfacevertices;
    133133                                                                        }
    134134                                                                        constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,
    135135                                                                                                        dof,value,analysis_type));
    136136                                                                        count++;
    137137                                                                }
     138                                                                xDelete<int>(faceverticesid);
    138139                                                        }
    139140                                                }
    140141                                        }
     
    183184                                                        FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i);
    184185                                                        isnan=0;
    185186                                                        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;
    187188                                                        }
    188189                                                        if(isnan==0){
    189190                                                                value=0;
    190191                                                                for(j=0;j<numfacevertices;j++){
    191                                                                         value=value+spcdata[faceverticesid[j]]/numfacevertices;
     192                                                                        value=value+spcdata[faceverticesid[j]-1]/numfacevertices;
    192193                                                                }
    193194                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+1,
    194195                                                                                                dof,value,analysis_type));
     
    198199                                                                                                dof,value,analysis_type));
    199200                                                                count=count+3;
    200201                                                        }
     202                                                        xDelete<int>(faceverticesid);
    201203                                                }
    202204                                        }
    203205                                }
     
    465467        }
    466468
    467469        /*Free ressources:*/
    468         xDelete<int>(faceverticesid);
    469470        xDelete<IssmDouble>(times);
    470471        xDelete<IssmDouble>(values);
    471472        xDelete<bool>(my_edges);
Note: See TracBrowser for help on using the repository browser.