Changeset 17337


Ignore:
Timestamp:
02/21/14 14:07:16 (11 years ago)
Author:
seroussi
Message:

iBUG: fixed FS basal boundary conditions for tiling

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r17330 r17337  
    715715                                }
    716716                        }
    717 
    718                         /*Constraint at the bedrock interface (v.n = vz = 0) (Coordinates will be updated according to the bed slope)*/
    719                         if (iomodel->meshtype==Mesh3DEnum) if(nodeonbed[i]>0. && groundedice_ls[i]>=0. && nodeonFS[i]>0.){
    720                                  switch(reCast<int,IssmDouble>(vertices_type[i])){
    721                                         case SSAFSApproximationEnum:
    722                                                 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,5,0.,StressbalanceAnalysisEnum));
    723                                                 count++;
    724                                                 break;
    725                                         case HOFSApproximationEnum:
    726                                                 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,5,0.,StressbalanceAnalysisEnum));
    727                                                 count++;
    728                                                 break;
    729                                         case FSApproximationEnum:
    730                                                 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0.,StressbalanceAnalysisEnum));
    731                                                 count++;
    732                                                 break;
    733                                         default: _error_("Vertex approximation " << EnumToStringx(reCast<int,IssmDouble>(vertices_type[i])) << " not supported");
    734                                 }
    735                         }
    736717                }
    737718        }
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r17325 r17337  
    21612161void  Penta::ResetFSBasalBoundaryCondition(void){
    21622162
    2163         int        approximation;
    2164         int        numindices;
    2165         int       *indices = NULL;
    2166         IssmDouble slopex,slopey,groundedice;
    2167         IssmDouble xz_plane[6];
     2163        int          approximation;
     2164        int          numindices;
     2165        int         *indices = NULL;
     2166        IssmDouble   slopex,slopey,groundedice;
     2167        IssmDouble   xz_plane[6];
     2168        IssmDouble*  vertexapproximation= NULL;
    21682169
    21692170        /*For FS only: we want the CS to be tangential to the bedrock*/
     
    21932194                        xz_plane[1]=0.;       xz_plane[4]=-slopey; 
    21942195                        xz_plane[2]=slopex;   xz_plane[5]=1.;         
    2195                         this->nodes[indices[i]]->DofInSSet(2); //vz
     2196                        if(this->nodes[indices[i]]->GetApproximation()==FSApproximationEnum){
     2197                                this->nodes[indices[i]]->DofInSSet(2); //vz
     2198                        }
     2199                        else if(this->nodes[indices[i]]->GetApproximation()==SSAFSApproximationEnum || this->nodes[indices[i]]->GetApproximation()==HOFSApproximationEnum){
     2200                                this->nodes[indices[i]]->DofInSSet(4); //vz
     2201                        }
     2202                        else _error_("approximation not implemented");
    21962203                }
    21972204                else{
     
    22002207                        xz_plane[1]=0.;       xz_plane[4]=0; 
    22012208                        xz_plane[2]=0;        xz_plane[5]=1.;         
    2202                         this->nodes[indices[i]]->DofInFSet(2); //vz
     2209                        if(this->nodes[indices[i]]->GetApproximation()==FSApproximationEnum){
     2210                                this->nodes[indices[i]]->DofInFSet(2); //vz
     2211                        }
     2212                        else if(this->nodes[indices[i]]->GetApproximation()==SSAFSApproximationEnum || this->nodes[indices[i]]->GetApproximation()==HOFSApproximationEnum){
     2213                                this->nodes[indices[i]]->DofInFSet(4); //vz
     2214                        }
     2215                        else _error_("approximation not implemented");
    22032216                }
    22042217
    22052218                XZvectorsToCoordinateSystem(&this->nodes[indices[i]]->coord_system[0][0],&xz_plane[0]);
    2206                
    22072219        }
    22082220
Note: See TracChangeset for help on using the changeset viewer.