Changeset 18953


Ignore:
Timestamp:
12/05/14 16:46:55 (10 years ago)
Author:
srebuffi
Message:

NEW : Calving Pi model

Location:
issm/trunk-jpl/src
Files:
4 added
17 edited

Legend:

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

    r18930 r18953  
    6363                                iomodel->FetchDataToInput(elements,CalvinglevermannCoeffEnum);
    6464                                iomodel->FetchDataToInput(elements,CalvinglevermannMeltingrateEnum);
     65                                break;
     66                        case CalvingPiEnum:
     67                                iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
     68                                iomodel->FetchDataToInput(elements,CalvingpiMeltingrateEnum);
    6569                                break;
    6670                        default:
     
    208212                                meltingrate_input = basalelement->GetInput(CalvinglevermannMeltingrateEnum);     _assert_(meltingrate_input);
    209213                                break;
     214                        case CalvingPiEnum:
     215                                if(domaintype==Domain2DhorizontalEnum){
     216                                        calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
     217                                        calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
     218                                }
     219                                else{
     220                                        if(dim==1){
     221                                                calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
     222                                        }
     223                                        if(dim==2){
     224                                                calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
     225                                                calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
     226                                        }
     227                                }
     228                                meltingrate_input = basalelement->GetInput(CalvingpiMeltingrateEnum);     _assert_(meltingrate_input);
     229                                break;
    210230                        default:
    211231                                _error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
     
    262282
    263283                                        break;
     284
    264285                                case CalvingLevermannEnum:
    265286                                        calvingratex_input->GetInputValue(&c[0],gauss); // in 3D case, add mesh velocity
     
    274295                                       
    275296                                        break;
     297
     298                                case CalvingPiEnum:
     299                                        calvingratex_input->GetInputValue(&c[0],gauss); // in 3D case, add mesh velocity
     300                                        if(dim==2) calvingratey_input->GetInputValue(&c[1],gauss);
     301                                        meltingrate_input->GetInputValue(&meltingrate,gauss);
     302
     303                                        norm_calving=0.;
     304                                        for(i=0;i<dim;i++) norm_calving+=pow(c[i],2);
     305                                        norm_calving=sqrt(norm_calving)+1.e-14;
     306
     307                                        for(i=0;i<dim;i++) m[i]=meltingrate*c[i]/norm_calving;
     308
     309                                        break;
     310
    276311                                default:
    277312                                        _error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
     
    349384        xDelete<IssmDouble>(w);
    350385        xDelete<IssmDouble>(c);
    351         xDelete<IssmDouble>(m);
    352386        xDelete<IssmDouble>(dlsf);
    353387        delete gauss;
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r18946 r18953  
    13691369                                this->StrainRateparallel();
    13701370                                this->StrainRateperpendicular();
    1371                                 this->CalvingRateLevermann();
     1371                                int calvinglaw;
     1372                                this->FindParam(&calvinglaw,CalvingLawEnum);
     1373                                switch(calvinglaw){
     1374                                                 case CalvingLevermannEnum:
     1375                                                                        this->CalvingRateLevermann();
     1376                                                                        break;
     1377                                                                case CalvingPiEnum:
     1378                                                                        this->CalvingRatePi();
     1379                                                                        break;
     1380                                                                default:
     1381                                                                        _error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
     1382                                }
    13721383                                input=this->inputs->GetInput(output_enum);
    13731384                                break;
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r18913 r18953  
    170170                virtual void       AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part)=0;
    171171                virtual void        CalvingRateLevermann(void)=0;
     172                virtual void       CalvingRatePi(void)=0;
    172173                virtual IssmDouble CharacteristicLength(void)=0;
    173174                virtual void       ComputeBasalStress(Vector<IssmDouble>* sigma_b)=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r18951 r18953  
    201201                        calvingrate[iv]=0;
    202202                }
    203                 calvingratex[iv]=calvingrate[iv]*vx/(vel+1.e-6);
    204                 calvingratey[iv]=calvingrate[iv]*vy/(vel+1.e-6);
     203                calvingratex[iv]=calvingrate[iv]*vx/(sqrt(vel)+1.e-14);
     204                calvingratey[iv]=calvingrate[iv]*vy/(sqrt(vel)+1.e-14);
     205        }
     206
     207        /*Add input*/
     208        this->inputs->AddInput(new PentaInput(CalvingratexEnum,&calvingratex[0],P1Enum));
     209        this->inputs->AddInput(new PentaInput(CalvingrateyEnum,&calvingratey[0],P1Enum));
     210        this->inputs->AddInput(new PentaInput(CalvingCalvingrateEnum,&calvingrate[0],P1Enum));
     211
     212        /*Clean up and return*/
     213        delete gauss;
     214
     215}
     216/*}}}*/
     217void       Penta::CalvingRatePi(){/*{{{*/
     218
     219        IssmDouble  xyz_list[NUMVERTICES][3];
     220        GaussPenta* gauss=NULL;
     221        IssmDouble  vx,vy,vel;
     222        IssmDouble  strainparallel;
     223        IssmDouble  sxx;
     224        IssmDouble  sxy;
     225        IssmDouble  syy;
     226        IssmDouble  sigVM;
     227        IssmDouble  thickness;
     228        IssmDouble  base;
     229        IssmDouble  hAB;
     230        IssmDouble  propcoeff;
     231        IssmDouble  calvingratex[NUMVERTICES];
     232        IssmDouble  calvingratey[NUMVERTICES];
     233        IssmDouble  calvingrate[NUMVERTICES];
     234
     235
     236        /* Get node coordinates and dof list: */
     237        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     238
     239        /*Retrieve all inputs and parameters we will need*/
     240        Input* vx_input=inputs->GetInput(VxEnum);                                                    _assert_(vx_input);
     241        Input* vy_input=inputs->GetInput(VyEnum);                                                    _assert_(vy_input);
     242        Input* strainparallel_input=inputs->GetInput(StrainRateparallelEnum);                        _assert_(strainparallel_input);
     243        Input* sxx_input=inputs->GetInput(DeviatoricStressxxEnum);                                   _assert_(sxx_input);
     244        Input* sxy_input=inputs->GetInput(DeviatoricStressxyEnum);                                   _assert_(sxy_input);
     245        Input* syy_input=inputs->GetInput(DeviatoricStressyyEnum);                                   _assert_(syy_input);
     246        Input* thickness_input=inputs->GetInput(ThicknessEnum);                                      _assert_(thickness_input);
     247        Input* base_input=inputs->GetInput(BaseEnum);                                                _assert_(base_input);
     248        Input* picoeff_input=inputs->GetInput(CalvingpiCoeffEnum);                                   _assert_(picoeff_input);
     249
     250        /* Start looping on the number of vertices: */
     251        gauss=new GaussPenta();
     252        for (int iv=0;iv<NUMVERTICES;iv++){
     253                gauss->GaussVertex(iv);
     254
     255                /* Get the value we need*/
     256                vx_input->GetInputValue(&vx,gauss);
     257                vy_input->GetInputValue(&vy,gauss);
     258                vel=vx*vx+vy*vy;
     259                strainparallel_input->GetInputValue(&strainparallel,gauss);
     260                sxx_input->GetInputValue(&sxx,gauss);
     261                sxy_input->GetInputValue(&sxy,gauss);
     262                syy_input->GetInputValue(&syy,gauss);
     263                thickness_input->GetInputValue(&thickness,gauss);
     264                base_input->GetInputValue(&base,gauss);
     265                picoeff_input->GetInputValue(&propcoeff,gauss);
     266
     267                /* Computing sigma Von Mises*/
     268                sigVM=sqrt(sxx*sxx+syy*syy+3*sxy*sxy-sxx*syy);
     269
     270                /* Computing heigth above buoyancy*/
     271                hAB=thickness+1028/920*base;
     272
     273                /*Calving rate for Pi criterion proportionnal to the product of the strain rate along the ice flow direction and the Von Mises stress and the square of the glacier width (hardcoded) divided by the height above buoyancy and the max of the ice velocity power 3 and the ice density (ignored here)*/
     274                calvingrate[iv]=propcoeff*strainparallel*sigVM*25.e6/hAB/1e9;
     275                if(calvingrate[iv]<0){
     276                        calvingrate[iv]=0;
     277                }
     278                calvingratex[iv]=calvingrate[iv]*vx/(sqrt(vel)+1.e-6);
     279                calvingratey[iv]=calvingrate[iv]*vy/(sqrt(vel)+1.e-6);
    205280        }
    206281
     
    24332508
    24342509                /*strainparallel= Strain rate along the ice flow direction */
    2435                 strainparallel[iv]=(vx*vx*(strainxx)+vy*vy*(strainyy)+2*vy*vx*strainxy)/(vel+1.e-6);
     2510                strainparallel[iv]=(vx*vx*(strainxx)+vy*vy*(strainyy)+2*vy*vx*strainxy)/(vel+1.e-14);
    24362511        }
    24372512
     
    24802555
    24812556                /*strainperpendicular= Strain rate perpendicular to the ice flow direction */
    2482                 strainperpendicular[iv]=(vx*vx*(strainyy)+vy*vy*(strainxx)-2*vy*vx*strainxy)/(vel+1.e-6);
     2557                strainperpendicular[iv]=(vx*vx*(strainyy)+vy*vy*(strainxx)-2*vy*vx*strainxy)/(vel+1.e-14);
    24832558        }
    24842559
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r18922 r18953  
    4949                IssmDouble     CharacteristicLength(void){_error_("not implemented yet");};
    5050                void           CalvingRateLevermann();
     51                void           CalvingRatePi();
    5152                void           ComputeBasalStress(Vector<IssmDouble>* sigma_b);
    5253                void           ComputeDeviatoricStressTensor();
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r18924 r18953  
    4949                void        ComputeSigmaNN(){_error_("not implemented yet");};
    5050                void        ComputeStressTensor(){_error_("not implemented yet");};
     51                void        CalvingRatePi(void){_error_("not implemented yet");};
    5152                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
    5253                void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.h

    r18923 r18953  
    4949                void        ComputeStressTensor(){_error_("not implemented yet");};
    5050                void        ComputeDeviatoricStressTensor(){_error_("not implemented yet");};
     51                void        CalvingRatePi(void){_error_("not implemented yet");};
    5152                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
    5253                void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r18951 r18953  
    234234                        calvingrate[iv]=0;
    235235                }
    236                 calvingratex[iv]=calvingrate[iv]*vx/(vel+1.e-6);
    237                 calvingratey[iv]=calvingrate[iv]*vy/(vel+1.e-6);
     236                calvingratex[iv]=calvingrate[iv]*vx/(sqrt(vel)+1.e-14);
     237                calvingratey[iv]=calvingrate[iv]*vy/(sqrt(vel)+1.e-14);
     238        }
     239
     240        /*Add input*/
     241        this->inputs->AddInput(new TriaInput(CalvingratexEnum,&calvingratex[0],P1Enum));
     242        this->inputs->AddInput(new TriaInput(CalvingrateyEnum,&calvingratey[0],P1Enum));
     243        this->inputs->AddInput(new TriaInput(CalvingCalvingrateEnum,&calvingrate[0],P1Enum));
     244
     245        /*Clean up and return*/
     246        delete gauss;
     247
     248}
     249/*}}}*/
     250void       Tria::CalvingRatePi(){/*{{{*/
     251
     252        IssmDouble  xyz_list[NUMVERTICES][3];
     253        GaussTria* gauss=NULL;
     254        IssmDouble  vx,vy,vel;
     255        IssmDouble  strainparallel;
     256        IssmDouble  sxx;
     257        IssmDouble  sxy;
     258        IssmDouble  syy;
     259        IssmDouble  sigVM;
     260        IssmDouble  thickness;
     261        IssmDouble  base;
     262        IssmDouble  hAB;
     263        IssmDouble  propcoeff;
     264        IssmDouble  calvingratex[NUMVERTICES];
     265        IssmDouble  calvingratey[NUMVERTICES];
     266        IssmDouble  calvingrate[NUMVERTICES];
     267
     268
     269        /* Get node coordinates and dof list: */
     270        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     271
     272        /*Retrieve all inputs and parameters we will need*/
     273        Input* vx_input=inputs->GetInput(VxEnum);                                                    _assert_(vx_input);
     274        Input* vy_input=inputs->GetInput(VyEnum);                                                    _assert_(vy_input);
     275        Input* strainparallel_input=inputs->GetInput(StrainRateparallelEnum);                        _assert_(strainparallel_input);
     276        Input* sxx_input=inputs->GetInput(DeviatoricStressxxEnum);                                   _assert_(sxx_input);
     277        Input* sxy_input=inputs->GetInput(DeviatoricStressxyEnum);                                   _assert_(sxy_input);
     278        Input* syy_input=inputs->GetInput(DeviatoricStressyyEnum);                                   _assert_(syy_input);
     279        Input* thickness_input=inputs->GetInput(ThicknessEnum);                                      _assert_(thickness_input);
     280        Input* base_input=inputs->GetInput(BaseEnum);                                                _assert_(base_input);
     281        Input* picoeff_input=inputs->GetInput(CalvingpiCoeffEnum);                                   _assert_(picoeff_input);
     282
     283
     284
     285        /* Start looping on the number of vertices: */
     286        gauss=new GaussTria();
     287        for (int iv=0;iv<NUMVERTICES;iv++){
     288                gauss->GaussVertex(iv);
     289
     290                /* Get the value we need*/
     291                vx_input->GetInputValue(&vx,gauss);
     292                vy_input->GetInputValue(&vy,gauss);
     293                vel=vx*vx+vy*vy;
     294                strainparallel_input->GetInputValue(&strainparallel,gauss);
     295                sxx_input->GetInputValue(&sxx,gauss);
     296                sxy_input->GetInputValue(&sxy,gauss);
     297                syy_input->GetInputValue(&syy,gauss);
     298                thickness_input->GetInputValue(&thickness,gauss);
     299                base_input->GetInputValue(&base,gauss);
     300                picoeff_input->GetInputValue(&propcoeff,gauss);
     301
     302                /* Computing sigma Von Mises*/
     303                sigVM=sqrt(sxx*sxx+syy*syy+3*sxy*sxy-sxx*syy);
     304
     305                /* Computing heigth above buoyancy*/
     306                hAB=thickness+1028/920*base;
     307
     308                /*Calving rate for Pi criterion proportionnal to the product of the strain rate along the ice flow direction and the Von Mises stress and the square of the glacier width (hardcoded) divided by the height above buoyancy and the max of the ice velocity power 3 and the ice density (ignored here)*/
     309
     310                calvingrate[iv]=propcoeff*strainparallel*sigVM*25.e6/hAB/1e9;
     311                if(calvingrate[iv]<0){
     312                        calvingrate[iv]=0;
     313                }
     314                calvingratex[iv]=calvingrate[iv]*vx/(sqrt(vel)+1.e-14);
     315                calvingratey[iv]=calvingrate[iv]*vy/(sqrt(vel)+1.e-14);
    238316        }
    239317
     
    25842662
    25852663                /*strainparallel= Strain rate along the ice flow direction */
    2586                 strainparallel[iv]=(vx*vx*(strainxx)+vy*vy*(strainyy)+2*vy*vx*strainxy)/(vel+1.e-6);
     2664                strainparallel[iv]=(vx*vx*(strainxx)+vy*vy*(strainyy)+2*vy*vx*strainxy)/(vel+1.e-14);
    25872665        }
    25882666
     
    26302708
    26312709                /*strainperpendicular= Strain rate perpendicular to the ice flow direction */
    2632                 strainperpendicular[iv]=(vx*vx*(strainyy)+vy*vy*(strainxx)-2*vy*vx*strainxy)/(vel+1.e-6);
     2710                strainperpendicular[iv]=(vx*vx*(strainyy)+vy*vy*(strainxx)-2*vy*vx*strainxy)/(vel+1.e-14);
    26332711        }
    26342712
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r18911 r18953  
    5858                void        ComputeStressTensor();
    5959                void        ComputeSurfaceNormalVelocity();
     60                void                    CalvingRatePi();
    6061                void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
    6162                void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r18938 r18953  
    17351735}
    17361736/*}}}*/
     1737void FemModel::CalvingRatePix(){/*{{{*/
     1738
     1739           for(int i=0;i<elements->Size();i++){
     1740                              Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));
     1741                                              element->CalvingRatePi();
     1742                                                           }
     1743}
     1744/*}}}*/
    17371745void FemModel::StrainRateparallelx(){/*{{{*/
    17381746
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r18872 r18953  
    8686                void StrainRateperpendicularx();
    8787                void CalvingRateLevermannx();
     88                void CalvingRatePix();
    8889                #ifdef  _HAVE_DAKOTA_
    8990                void DakotaResponsesx(double* d_responses,char** responses_descriptors,int numresponsedescriptors,int d_numresponses);
  • issm/trunk-jpl/src/c/cores/transient_core.cpp

    r18850 r18953  
    109109                                femmodel->CalvingRateLevermannx();
    110110                        }
     111                        if(iscalving && calvinglaw==CalvingPiEnum){
     112                                if(VerboseSolution()) _printf0_("   computing calving rate\n");
     113                                femmodel->StrainRateparallelx();
     114                                femmodel->CalvingRatePix();
     115                        }
    111116                        if(VerboseSolution()) _printf0_("   computing movement of ice boundaries\n");
    112117                        /* smoothen slope of lsf for computation of normal on ice domain*/
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r18950 r18953  
    215215        CalvingMeltingrateEnum,
    216216        CalvingLevermannEnum,
     217        CalvingPiEnum,
    217218        DefaultCalvingEnum,
    218219        CalvingRequestedOutputsEnum,
    219220        CalvinglevermannCoeffEnum,
    220221        CalvinglevermannMeltingrateEnum,
     222        CalvingpiCoeffEnum,
     223        CalvingpiMeltingrateEnum,
    221224        CalvingratexEnum,
    222225        CalvingrateyEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r18950 r18953  
    223223                case CalvingMeltingrateEnum : return "CalvingMeltingrate";
    224224                case CalvingLevermannEnum : return "CalvingLevermann";
     225                case CalvingPiEnum : return "CalvingPi";
    225226                case DefaultCalvingEnum : return "DefaultCalving";
    226227                case CalvingRequestedOutputsEnum : return "CalvingRequestedOutputs";
    227228                case CalvinglevermannCoeffEnum : return "CalvinglevermannCoeff";
    228229                case CalvinglevermannMeltingrateEnum : return "CalvinglevermannMeltingrate";
     230                case CalvingpiCoeffEnum : return "CalvingpiCoeff";
     231                case CalvingpiMeltingrateEnum : return "CalvingpiMeltingrate";
    229232                case CalvingratexEnum : return "Calvingratex";
    230233                case CalvingrateyEnum : return "Calvingratey";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r18950 r18953  
    226226              else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
    227227              else if (strcmp(name,"CalvingLevermann")==0) return CalvingLevermannEnum;
     228              else if (strcmp(name,"CalvingPi")==0) return CalvingPiEnum;
    228229              else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
    229230              else if (strcmp(name,"CalvingRequestedOutputs")==0) return CalvingRequestedOutputsEnum;
    230231              else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;
    231232              else if (strcmp(name,"CalvinglevermannMeltingrate")==0) return CalvinglevermannMeltingrateEnum;
     233              else if (strcmp(name,"CalvingpiCoeff")==0) return CalvingpiCoeffEnum;
     234              else if (strcmp(name,"CalvingpiMeltingrate")==0) return CalvingpiMeltingrateEnum;
    232235              else if (strcmp(name,"Calvingratex")==0) return CalvingratexEnum;
    233236              else if (strcmp(name,"Calvingratey")==0) return CalvingrateyEnum;
     
    257260              else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
    258261              else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
    259               else if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
    260               else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
    261               else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"MeshX")==0) return MeshXEnum;
     265              if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
     266              else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
     267              else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
     268              else if (strcmp(name,"MeshX")==0) return MeshXEnum;
    266269              else if (strcmp(name,"MeshY")==0) return MeshYEnum;
    267270              else if (strcmp(name,"MeshZ")==0) return MeshZEnum;
     
    380383              else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
    381384              else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
    382               else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
    383               else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
    384               else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
     388              if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
     389              else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
     390              else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
     391              else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
    389392              else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
    390393              else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
     
    503506              else if (strcmp(name,"MassconName")==0) return MassconNameEnum;
    504507              else if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
    505               else if (strcmp(name,"MassconLevelset")==0) return MassconLevelsetEnum;
    506               else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
    507               else if (strcmp(name,"MassconaxpbyName")==0) return MassconaxpbyNameEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"MassconaxpbyDefinitionenum")==0) return MassconaxpbyDefinitionenumEnum;
     511              if (strcmp(name,"MassconLevelset")==0) return MassconLevelsetEnum;
     512              else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
     513              else if (strcmp(name,"MassconaxpbyName")==0) return MassconaxpbyNameEnum;
     514              else if (strcmp(name,"MassconaxpbyDefinitionenum")==0) return MassconaxpbyDefinitionenumEnum;
    512515              else if (strcmp(name,"MassconaxpbyNamex")==0) return MassconaxpbyNamexEnum;
    513516              else if (strcmp(name,"MassconaxpbyNamey")==0) return MassconaxpbyNameyEnum;
     
    626629              else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
    627630              else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
    628               else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
    629               else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
    630               else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
     634              if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
     635              else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
     636              else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
     637              else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
    635638              else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
    636639              else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum;
     
    749752              else if (strcmp(name,"Index")==0) return IndexEnum;
    750753              else if (strcmp(name,"Indexed")==0) return IndexedEnum;
    751               else if (strcmp(name,"Intersect")==0) return IntersectEnum;
    752               else if (strcmp(name,"Nodal")==0) return NodalEnum;
    753               else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
     757              if (strcmp(name,"Intersect")==0) return IntersectEnum;
     758              else if (strcmp(name,"Nodal")==0) return NodalEnum;
     759              else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
     760              else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
    758761              else if (strcmp(name,"ToolkitsFileName")==0) return ToolkitsFileNameEnum;
    759762              else if (strcmp(name,"RootPath")==0) return RootPathEnum;
  • issm/trunk-jpl/src/m/classes/model.m

    r18798 r18953  
    836836                        if isa(md.calving,'calving'),md.calving.calvingrate=project3d(md,'vector',md.calving.calvingrate,'type','node');end;
    837837                        if isa(md.calving,'calvinglevermann'),md.calving.coeff=project3d(md,'vector',md.calving.coeff,'type','node');end;
     838                        if isa(md.calving,'calvingpi'),md.calving.coeff=project3d(md,'vector',md.calving.coeff,'type','node');end;
    838839
    839840                        % Hydrologydc variables
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r18950 r18953  
    215215def CalvingMeltingrateEnum(): return StringToEnum("CalvingMeltingrate")[0]
    216216def CalvingLevermannEnum(): return StringToEnum("CalvingLevermann")[0]
     217def CalvingPiEnum(): return StringToEnum("CalvingPi")[0]
    217218def DefaultCalvingEnum(): return StringToEnum("DefaultCalving")[0]
    218219def CalvingRequestedOutputsEnum(): return StringToEnum("CalvingRequestedOutputs")[0]
    219220def CalvinglevermannCoeffEnum(): return StringToEnum("CalvinglevermannCoeff")[0]
    220221def CalvinglevermannMeltingrateEnum(): return StringToEnum("CalvinglevermannMeltingrate")[0]
     222def CalvingpiCoeffEnum(): return StringToEnum("CalvingpiCoeff")[0]
     223def CalvingpiMeltingrateEnum(): return StringToEnum("CalvingpiMeltingrate")[0]
    221224def CalvingratexEnum(): return StringToEnum("Calvingratex")[0]
    222225def CalvingrateyEnum(): return StringToEnum("Calvingratey")[0]
Note: See TracChangeset for help on using the changeset viewer.