Changeset 17561


Ignore:
Timestamp:
03/27/14 10:47:12 (11 years ago)
Author:
seroussi
Message:

CHG: Fixing dirichlet for P2 and P2xP4

Location:
issm/trunk-jpl/src/c/modules
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp

    r17512 r17561  
    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,
     
    136136                                                                        count++;
    137137                                                                }
     138                                                                xDelete<int>(faceverticesid);
    138139                                                        }
    139140                                                }
     
    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,
     
    199200                                                                count=count+3;
    200201                                                        }
     202                                                        xDelete<int>(faceverticesid);
    201203                                                }
    202204                                        }
     
    466468
    467469        /*Free ressources:*/
    468         xDelete<int>(faceverticesid);
    469470        xDelete<IssmDouble>(times);
    470471        xDelete<IssmDouble>(values);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp

    r17397 r17561  
    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                }
     
    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
     
    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;
     
    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*/
Note: See TracChangeset for help on using the changeset viewer.