Changeset 17508


Ignore:
Timestamp:
03/20/14 16:37:41 (11 years ago)
Author:
seroussi
Message:

BUG: fixed Dirichlet conditions on faces for P2P4

File:
1 edited

Legend:

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

    r17490 r17508  
    181181                                        if(iomodel->faces[i*6+5]==2){/*Vertical quads*/
    182182                                                if(my_faces[i]){
    183                                                         v1 = iomodel->faces[6*i+0]-1;
    184                                                         v2 = iomodel->faces[6*i+1]-1;
    185                                                         if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
     183                                                        FaceGetVertexIndices(iomodel,&numfacevertices,&faceverticesid,i);
     184                                                        isnan=0;
     185                                                        for(j=0;j<numfacevertices;j++){
     186                                                                if(xIsNan<IssmDouble>(spcdata[faceverticesid[j]])) isnan=1;
     187                                                        }
     188                                                        if(isnan==0){
     189                                                                value=0;
     190                                                                for(j=0;j<numfacevertices;j++){
     191                                                                        value=value+spcdata[faceverticesid[j]]/numfacevertices;
     192                                                                }
    186193                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+1,
    187                                                                                                 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
    188                                                                 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+2,
    189                                                                                                 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
    190                                                                 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+3,
    191                                                                                                 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
     194                                                                                                dof,value,analysis_type));
     195                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+2,
     196                                                                                                dof,value,analysis_type));
     197                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+3,
     198                                                                                                dof,value,analysis_type));
    192199                                                                count=count+3;
    193200                                                        }
Note: See TracChangeset for help on using the changeset viewer.