Ignore:
Timestamp:
12/22/17 10:10:23 (7 years ago)
Author:
Mathieu Morlighem
Message:

CHG: do not call element->GetMaterialParameter(MaterialsRheologyBEnum) anymore since this is NOT a constant

File:
1 edited

Legend:

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

    r22284 r22308  
    522522        int         iseplthickcomp;
    523523        int         domaintype;
    524         IssmDouble  dt,A,B;
     524        IssmDouble  dt,A;
    525525        IssmDouble  EPLgrad2;
    526526        IssmDouble  EPL_N;
     
    534534                Element* element=(Element*)femmodel->elements->GetObjectByOffset(j);
    535535               
    536                 switch(domaintype){
    537                 case Domain2DhorizontalEnum:
    538                         if(!element->IsOnBase()) return;       
    539                         B = element->GetMaterialParameter(MaterialsRheologyBbarEnum);
    540                         break;
    541                 case Domain3DEnum:
    542                         B = element->GetMaterialParameter(MaterialsRheologyBEnum);
    543                         break;
    544                 default:
    545                 _error_("not Implemented Yet");
    546                 }
     536                /*skip element if 3d and not on base*/
     537                if(domaintype==Domain3DEnum && !element->IsOnBase()) continue;
    547538               
    548539                int         numnodes      = element->GetNumberOfNodes();
    549540                IssmDouble* thickness     = xNew<IssmDouble>(numnodes);
     541                IssmDouble* B             = xNew<IssmDouble>(numnodes);
    550542                IssmDouble* eplhead       = xNew<IssmDouble>(numnodes);
    551543                IssmDouble* epl_slopeX    = xNew<IssmDouble>(numnodes);
     
    569561                IssmDouble init_thick       =   element->GetMaterialParameter(HydrologydcEplInitialThicknessEnum);
    570562                IssmDouble max_thick        =   element->GetMaterialParameter(HydrologydcEplMaxThicknessEnum);
    571                
    572                 A=pow(B,-n);
     563
     564                switch(domaintype){
     565                        case Domain2DhorizontalEnum: element->GetInputListOnVertices(&B[0],MaterialsRheologyBbarEnum); break;
     566                        case Domain3DEnum:           element->GetInputListOnVertices(&B[0],MaterialsRheologyBEnum); break;
     567                        default: _error_("not Implemented Yet");
     568                }
    573569               
    574570                element->GetInputListOnVertices(&eplhead[0],EplHeadEnum);
     
    587583                else{
    588584                        for(int i=0;i<numnodes;i++){
     585                                A=pow(B[i],-n);
    589586                                /*Compute first the effective pressure in the EPL*/
    590587                                EPL_N=gravity*((rho_ice*ice_thickness[i])-(rho_water*(eplhead[i]-bed[i])));
Note: See TracChangeset for help on using the changeset viewer.